From: qydysky Date: Mon, 14 Dec 2020 01:15:44 +0000 (+0800) Subject: tts自定义提示 X-Git-Tag: v0.5.4~1^2~3 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=f544b221611b3177e126310f883e926b2096f0a5;p=bili_danmu%2F.git tts自定义提示 --- diff --git a/Reply/F.go b/Reply/F.go index 729f0e6..723e9da 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -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 } diff --git a/Reply/Msg.go b/Reply/Msg.go index 139c167..d138e88 100644 --- a/Reply/Msg.go +++ b/Reply/Msg.go @@ -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, diff --git a/Reply/gtk.go b/Reply/gtk.go index 4b30795..b676869 100644 --- a/Reply/gtk.go +++ b/Reply/gtk.go @@ -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 diff --git a/Reply/tts.go b/Reply/tts.go index 5f79df6..8f2b34c 100644 --- a/Reply/tts.go +++ b/Reply/tts.go @@ -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`, diff --git a/demo/config/config_gtk_keep_key.json b/demo/config/config_gtk_keep_key.json index 8d209c7..50b9860 100644 --- a/demo/config/config_gtk_keep_key.json +++ b/demo/config/config_gtk_keep_key.json @@ -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 index 0000000..baac642 --- /dev/null +++ b/demo/config/config_tts.json @@ -0,0 +1,6 @@ +{ + "0buyguide":"感谢{D}", + "0gift":"感谢{D}", + "0superchat":"感谢{D}", + "0multi":"{D}" +} \ No newline at end of file