fix gs tts

This commit is contained in:
源文雨 2022-12-03 17:16:45 +08:00
parent 82608d01bb
commit 11f358bcbf
3 changed files with 22 additions and 10 deletions

View File

@ -2,6 +2,7 @@ package aireply
import (
"errors"
"net/url"
"regexp"
"sync"
@ -131,8 +132,8 @@ func getReplyMode(ctx *zero.Ctx) (name string) {
***********************tts************************************
*************************************************************/
type ttsmode struct {
sync.RWMutex
apikey string
sync.RWMutex `json:"-"`
APIKey string
mode map[int64]int64
}
@ -165,8 +166,16 @@ func newttsmode() *ttsmode {
return tts
}
func (tts *ttsmode) getAPIKey() string {
return tts.apikey
func (tts *ttsmode) getAPIKey(ctx *zero.Ctx) string {
if tts.APIKey == "" {
m := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
gid := ctx.Event.GroupID
if gid == 0 {
gid = -ctx.Event.UserID
}
_ = m.Manager.GetExtra(gid, &tts)
}
return url.QueryEscape(tts.APIKey)
}
func (tts *ttsmode) setAPIKey(ctx *zero.Ctx, key string) error {
@ -179,7 +188,7 @@ func (tts *ttsmode) setAPIKey(ctx *zero.Ctx, key string) error {
if err != nil {
return errors.New("内部错误")
}
tts.apikey = key
tts.APIKey = key
return nil
}

View File

@ -27,6 +27,7 @@ func init() { // 插件主体
"- 设置语音模式[原神人物]\n" +
"- 设置默认语音模式[原神人物]\n" +
"- 恢复成默认语音模式\n" +
"- 设置原神语音 api key xxxxxx\n" +
"当前适用的原神人物含有以下:\n" + list(soundList[:], 5),
})
tts := newttsmode()
@ -82,7 +83,7 @@ func init() { // 插件主体
}
return numcn.EncodeFromFloat64(f)
}),
), tts.getAPIKey())).Add("cache", 0)
), tts.getAPIKey(ctx)))
// 发送语音
if ID := ctx.SendChain(record); ID.ID() == 0 {
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text(reply))
@ -108,7 +109,7 @@ func init() { // 插件主体
ctx.SendChain(message.Text("配置的语音人物数据丢失!请重新设置语音人物。"))
return
}
record := message.Record(fmt.Sprintf(cnapi, i, url.QueryEscape(testRecord[soundList[i]]), tts.getAPIKey())).Add("cache", 0)
record := message.Record(fmt.Sprintf(cnapi, i, url.QueryEscape(testRecord[soundList[i]]), tts.getAPIKey(ctx))).Add("cache", 0)
if ID := ctx.SendChain(record); ID.ID() == 0 {
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text("设置失败!无法发送测试语音,请重试。"))
return

View File

@ -54,7 +54,9 @@ func init() {
ctx.SendChain(message.Text("ERROR: plugin tts not found"))
return
}
var key string
var key struct {
APIKey string
}
gid := ctx.Event.GroupID
if gid == 0 {
gid = -ctx.Event.UserID
@ -64,6 +66,6 @@ func init() {
ctx.SendChain(message.Text("ERROR: ", err))
return
}
ctx.SendChain(message.Record(fmt.Sprintf(cnapi, url.QueryEscape(text), id, key)))
ctx.SendChain(message.Record(fmt.Sprintf(cnapi, url.QueryEscape(text), id, url.QueryEscape(key.APIKey))))
})
}