}
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
}
//Msg类型数据处理方法map
var Msg_map = map[string]func(replyF, string) {
+ `LIVE_INTERACTIVE_GAME`:nil,
`WIDGET_BANNER`:nil,//每日任务
`ROOM_ADMINS`:nil,//房管列表
`room_admin_entrance`:nil,
contrl_win_running bool//控制窗体是否正在运行
)
var win *gtk.Window
+ var win2 *gtk.Window
var scrolledwindow0 *gtk.ScrolledWindow
var viewport0 *gtk.Viewport
var viewport1 *gtk.Viewport
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() {
contrl_win_running = false//关闭后置空
})
application.AddWindow(win2)
- defer win2.ShowAll()
}
{//营收
obj, err := builder2.GetObject("t0")
win.ShowAll()
}
+ //先展示弹幕信息窗
+ win.ShowAll()
+ win2.ShowAll()
Gtk_on = true
})
step := 0.1 * (max - cu)
if step > 0.5 {
+ if step > 50 {step = 50}//限制最大滚动速度
tmp.SetValue(step + cu)
} else {
in_smooth_roll = false
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()
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
}
}()
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`,
"face/0level2":3,
"face/0level3":1,
"face/0superchat":13,
- "face/0tianxuan":5
+ "face/0tianxuan":5,
+ "face/0multi":1
}
\ No newline at end of file
--- /dev/null
+{
+ "0buyguide":"感谢{D}",
+ "0gift":"感谢{D}",
+ "0superchat":"感谢{D}",
+ "0multi":"{D}"
+}
\ No newline at end of file