From a6a73f63df806078078fc334878a694472d8198f Mon Sep 17 00:00:00 2001 From: qydysky Date: Fri, 21 May 2021 00:08:32 +0800 Subject: [PATCH] =?utf8?q?tts=20=E5=AD=97=E7=AC=A6=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Reply/tts.go | 32 +++++++++++++++++++++++--------- demo/config/config_tts.json | 26 +++++++++++++++++--------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Reply/tts.go b/Reply/tts.go index 5d299e9..f97c481 100644 --- a/Reply/tts.go +++ b/Reply/tts.go @@ -13,11 +13,14 @@ import ( limit "github.com/qydysky/part/limit" ) -var tts_setting = map[string]string{ - "0buyguide":"感谢{D}", - "0gift":"感谢{D}", - "0superchat":"感谢{D}", -} +var ( + tts_setting_onoff = map[string]string{ + "0buyguide":"感谢{D}", + "0gift":"感谢{D}", + "0superchat":"感谢{D}", + } + tts_setting_replace = map[string]string{} +) var tts_List = make(chan interface{},20) var tts_limit = limit.New(1,5000,15000)//频率限制1次/5s,最大等待时间15s @@ -49,8 +52,15 @@ func init(){ } } buf.Load("config/config_tts.json") - for k,v := range buf.B { - tts_setting[k] = v.(string) + if onoff,ok := buf.Get(`onoff`);ok { + for k,v := range onoff.(map[string]interface{}) { + tts_setting_onoff[k] = v.(string) + } + } + if replace,ok := buf.Get(`replace`);ok { + for k,v := range replace.(map[string]interface{}) { + tts_setting_replace[k] = v.(string) + } } } //启动程序 @@ -67,7 +77,7 @@ func init(){ //使用带tag的消息队列在功能间传递消息 c.Danmu_Main_mq.Pull_tag(msgq.FuncMap{ `tts`:func(data interface{})(bool){//tts - if _,ok := tts_setting[data.(Danmu_mq_t).uid];ok { + if _,ok := tts_setting_onoff[data.(Danmu_mq_t).uid];ok { tts_List <- data } return false @@ -79,13 +89,17 @@ func init(){ func TTS(uid,msg string) { if tts_limit.TO() {return} - v,ok := tts_setting[uid] + v,ok := tts_setting_onoff[uid] if !ok || v == ``{return} tts_log.L(`I: `,uid, strings.ReplaceAll(msg, "\n", " ")) msg = strings.ReplaceAll(v, "{D}", msg) + for k,v := range tts_setting_replace { + msg = strings.ReplaceAll(msg, k, v) + } + req := reqf.New() if err := req.Reqf(reqf.Rval{ Url:`https://fanyi.baidu.com/gettts?lan=zh&text=`+ url.QueryEscape(msg) +`&spd=5&source=web`, diff --git a/demo/config/config_tts.json b/demo/config/config_tts.json index e9e05d1..e4b1f86 100644 --- a/demo/config/config_tts.json +++ b/demo/config/config_tts.json @@ -1,11 +1,19 @@ { - "help":"空字符串将不触发,{D}会被替换", - "0buyguide": "感谢{D}", - "0gift": "感谢{D}", - "0superchat": "感谢{D}", - "0multi": "观众:{D}", - "0rank":"{D}", - "0level1":"{D}", - "0level2":"", - "0level3":"" + "onoff":{ + "help":"空字符串将不触发,{D}会被替换", + "0buyguide": "感谢{D}", + "0gift": "感谢{D}", + "0superchat": "感谢{D}", + "0multi": "观众:{D}", + "0rank":"{D}", + "0level1":"{D}", + "0level2":"", + "0level3":"" + }, + "replace":{ + "?":"问号", + "?":"问号", + "!":"叹号", + "!":"叹号" + } } \ No newline at end of file -- 2.39.2