]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
tts 字符替换
authorqydysky <qydysky@foxmail.com>
Thu, 20 May 2021 16:08:32 +0000 (00:08 +0800)
committerqydysky <qydysky@foxmail.com>
Thu, 20 May 2021 16:08:32 +0000 (00:08 +0800)
Reply/tts.go
demo/config/config_tts.json

index 5d299e996211da20e47f7fad2ad4128c12ee170c..f97c481a6f9f319f1a612f876b3ed74c6ba599a2 100644 (file)
@@ -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`,
index e9e05d111e738265d9d3adce27eedaeda7c7d7ca..e4b1f868b04ca94faf7175062a3b6026aaa53cb6 100644 (file)
@@ -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