]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
tts自定义提示
authorqydysky <qydysky@foxmail.com>
Mon, 14 Dec 2020 01:15:44 +0000 (09:15 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 14 Dec 2020 01:16:09 +0000 (09:16 +0800)
Reply/F.go
Reply/Msg.go
Reply/gtk.go
Reply/tts.go
demo/config/config_gtk_keep_key.json
demo/config/config_tts.json [new file with mode: 0644]

index 729f0e6b60adb0972d8e0c35c86b06ba7f8cc666..723e9da5ccd5d26a729ffba22f86707ad4f206f8 100644 (file)
@@ -524,7 +524,7 @@ func Autoskipf(s string, maxNum,muteSecond int) int {
                }
                autoskip.num -= 1
                i, ok := autoskip.buf.LoadAndDelete(s);
-               if ok && i.(int) > 1 {Msg_showdanmu(nil, strconv.Itoa(i.(int)) + " x " + s)}
+               if ok && i.(int) > 1 {Msg_showdanmu(nil, strconv.Itoa(i.(int)) + " x " + s,`0multi`)}//多人重复提示
        }()
        return 0
 }
index 139c167a9adabffb00cba9fb851879e5326cde91..d138e887c34f41ef45eb1411016062b5e482e682 100644 (file)
@@ -12,6 +12,7 @@ var msglog = p.Logf().New().Base(-1, "Msg.go").Open("danmu.log").Level(1)
 
 //Msg类型数据处理方法map
 var Msg_map = map[string]func(replyF, string) {
+       `LIVE_INTERACTIVE_GAME`:nil,
        `WIDGET_BANNER`:nil,//每日任务
        `ROOM_ADMINS`:nil,//房管列表
        `room_admin_entrance`:nil,
index 4b307955340280a9030f8f97ec666dd8c7b6b55a..b676869a6f6b5ae8846e342caf6bce86be0a9d13 100644 (file)
@@ -90,6 +90,7 @@ func Gtk_danmu() {
                contrl_win_running bool//控制窗体是否正在运行
        )
        var win *gtk.Window
+       var win2 *gtk.Window
        var scrolledwindow0 *gtk.ScrolledWindow
        var viewport0 *gtk.Viewport
        var viewport1 *gtk.Viewport
@@ -133,12 +134,11 @@ func Gtk_danmu() {
                                danmu_win_running = false//关闭后置空
                        })
                        application.AddWindow(win)
-                       defer win.ShowAll()
                }
                {
                        obj, err := builder2.GetObject("main_window")
                        if err != nil {log.Println(err);return}
-                       win2, err := isWindow(obj)
+                       win2, err = isWindow(obj)
                        if err != nil {log.Println(err);return}
                        contrl_win_running = true
                        win2.Connect("delete-event", func() {
@@ -146,7 +146,6 @@ func Gtk_danmu() {
                                contrl_win_running = false//关闭后置空
                        })
                        application.AddWindow(win2)
-                       defer win2.ShowAll()
                }
                {//营收
                        obj, err := builder2.GetObject("t0")
@@ -396,6 +395,9 @@ func Gtk_danmu() {
                        win.ShowAll()
                }
 
+               //先展示弹幕信息窗
+               win.ShowAll()
+               win2.ShowAll()
 
                Gtk_on = true
        })
@@ -446,6 +448,7 @@ func Gtk_danmu() {
 
                                step := 0.1 * (max - cu)
                                if step > 0.5 {
+                                       if step > 50 {step = 50}//限制最大滚动速度
                                        tmp.SetValue(step + cu)
                                } else {
                                        in_smooth_roll = false
index 5f79df683090fea154ad6ef03f9ed66a99de4217..8f2b34c578140687c014dcd7382f88fb2d4c5faa 100644 (file)
@@ -5,19 +5,28 @@ package reply
 import (
        "log"
        "net/url"
+       "strings"
        p "github.com/qydysky/part"
+       s "github.com/qydysky/part/buf"
 )
 
-var tts_on = map[string]bool{
-       "0buyguide":true,
-       "0gift":true,
-       "0superchat":true,
+var tts_setting = map[string]string{
+       "0buyguide":"感谢{D}",
+       "0gift":"感谢{D}",
+       "0superchat":"感谢{D}",
 }
 var tts_List = make(chan interface{},20)
 
 var tts_limit = p.Limit(1,5000,15000)//频率限制1次/5s,最大等待时间15s
 
 func init(){
+       {//tts配置
+               buf := s.New()
+               buf.Load("config/config_tts.json")
+               for k,v := range buf.B {
+                       tts_setting[k] = v.(string)
+               }
+       }
        go func(){
                var (
                        sig = Danmu_mq.Sig()
@@ -32,7 +41,7 @@ func init(){
 
                for {
                        data,sig = Danmu_mq.Pull(sig)
-                       if v,ok := tts_on[data.(Danmu_mq_t).uid];!ok || !v {continue}
+                       if _,ok := tts_setting[data.(Danmu_mq_t).uid];!ok {continue}
                        tts_List <- data
                }
        }()
@@ -43,6 +52,9 @@ func TTS(uid,msg string) {
        if tts_limit.TO() {return}
        log.Println(`TTS:`, uid, msg)
        req := p.Req()
+       if v,ok := tts_setting[uid];ok{
+               msg = strings.ReplaceAll(v, "{D}", msg)
+       }
        if err := req.Reqf(p.Rval{
                Url:`https://fanyi.baidu.com/gettts?lan=zh&text=`+ url.QueryEscape(msg) +`&spd=5&source=web`,
                SaveToPath:p.Sys().Cdir()+`/tts.mp3`,
index 8d209c7c4f8865c015f65e75ec04b9046d128892..50b98601e9d885bde5acf5b8b3fb9735699e68a4 100644 (file)
@@ -8,5 +8,6 @@
        "face/0level2":3,
        "face/0level3":1,
        "face/0superchat":13,
-       "face/0tianxuan":5
+       "face/0tianxuan":5,
+       "face/0multi":1
 }
\ No newline at end of file
diff --git a/demo/config/config_tts.json b/demo/config/config_tts.json
new file mode 100644 (file)
index 0000000..baac642
--- /dev/null
@@ -0,0 +1,6 @@
+{
+       "0buyguide":"感谢{D}",
+       "0gift":"感谢{D}",
+    "0superchat":"感谢{D}",
+    "0multi":"{D}"
+}
\ No newline at end of file