return
}
+var guard_num_get_limit = p.Limit(1,1000,2000)//频率限制1次/1s,最大等待时间2s
func (i *api) Get_guardNum() {
if i.Uid == 0 || c.Roomid == 0 {
apilog.Base(1, "Get_guardNum").E("i.Uid == 0 || c.Roomid == 0")
return
}
+ if guard_num_get_limit.TO() {return}//超额请求阻塞,超时将取消
req := p.Req()
if err := req.Reqf(p.Rval{
switch op_type.(float64) {
case 1:
sh = append(sh, "购买了")
- c.GuardNum += 1
case 2:
sh = append(sh, "续费了")
case 3:
sh = append(sh, "自动续费了")
- c.GuardNum += 1
default:
msglog.W(s)
sh = append(sh, op_type)
}
{//额外 ass
Assf(fmt.Sprintln(sh...))
+ c.Danmu_Main_mq.Push(c.Danmu_Main_mq_item{//使用连续付费的新舰长无法区分,刷新舰长数
+ Class:`guard_update`,
+ })
}
fmt.Println("\n====")
fmt.Println(sh...)
return
}
if content != nil {
- sh = append(sh, "节奏风暴", content, "¥ 100")
- c.Danmu_Main_mq.Push(c.Danmu_Main_mq_item{//传入消息队列
- Class:`c.Rev_add`,
- Data:float64(100),
- })
+ sh = append(sh, "节奏风暴", content)
}
{//额外
Assf(fmt.Sprintln(sh...))
}
if len(sh) == 0 {return}
+ msglog.Base(1, "礼").Fileonly(true).I(sh...).Fileonly(false)
//小于3万金瓜子
if allprice < 30 {msglog.T(sh...);return}
// Gui_show("\n====")
Gui_show(Itos(sh), "0gift")
// Gui_show("====\n")
-
- msglog.Base(1, "礼").Fileonly(true).I(sh...).Fileonly(false)
}
//Msg-房间封禁信息
go Saveflvf()
}
{
- c.Rev = 0 //营收
+ c.Rev = 0.0 //营收
c.Liveing = true //直播i标志
c.Live_Start_Time = time.Now() //开播h时间
}
application.Connect("activate", func() {
go func(){
for danmu_win_running {
+ time.Sleep(time.Second)
if len(Gtk_danmuChan) == 0 {continue}
for el := keep_list.Front(); el != nil && time.Now().After(el.Value.(time.Time));el = el.Next() {
keep_list.Remove(el)
y(<-Gtk_danmuChan,load_face(<-Gtk_danmuChan_uid))
return true
})
- time.Sleep(time.Second)
}
}()
if _,ok := c.Default_qn[*live_qn]; ok{c.Live_qn = *live_qn}
- var room = *groomid
- if room == 0 && len(roomid) != 0 {
- room = roomid[0]
- }
+ var exit_sign bool
+ var change_room_chan = make(chan bool,1)
- fmt.Printf("输入房间号: ")
- if room == 0 {
- _, err := fmt.Scanln(&room)
- if err != nil {
- danmulog.E("输入错误", err)
- return
+ go func(){
+ var room = *groomid
+ if room == 0 && len(roomid) != 0 {
+ room = roomid[0]
}
- } else {
- fmt.Print(strconv.Itoa(room), "\n")
- }
- c.Roomid = room
-
- var exit_sign bool
- var change_room_chan = make(chan bool)
+ if room == 0 {
+ fmt.Printf("输入房间号: ")
+ _, err := fmt.Scanln(&room)
+ if err != nil {
+ danmulog.E("输入错误", err)
+ return
+ }
+ } else {
+ fmt.Print("房间号: ", strconv.Itoa(room), "\n")
+ }
+ if c.Roomid == 0 {
+ c.Roomid = room
+ change_room_chan <- true
+ }
+ }()
go func(){
var (
} else {
switch d.Class {
case `change_room`:
- c.Rev = 0 //营收
+ c.Rev = 0.0 //营收
c.Renqi = 1//人气置1
change_room_chan <- true
case `c.Rev_add`:
c.Rev += d.Data.(float64)
case `c.Renqi`:
- c.Renqi = d.Data.(int)
+ if tmp,ok := d.Data.(int);ok{
+ c.Renqi = tmp
+ }
default:
}
}
}
}()
+ <-change_room_chan
+
for !exit_sign {
//获取房间相关信息
api := F.New_api(c.Roomid).Get_host_Token().Get_live()
c.Live = api.Live
c.Cookie = f
//获取过往营收 舰长数量
- go api.Get_OnlineGoldRank()
- go api.Get_guardNum()
+ // go api.Get_OnlineGoldRank()//高能榜显示的是在线观众的打赏
+
+ go func(){//订阅消息,以便刷新舰长数
+ api.Get_guardNum()
+ var (
+ sig = c.Danmu_Main_mq.Sig()
+ data interface{}
+ )
+ for {
+ data,sig = c.Danmu_Main_mq.Pull(sig)
+ if d,ok := data.(c.Danmu_Main_mq_item);!ok {
+ continue
+ } else {
+ switch d.Class {
+ case `guard_update`:
+ go api.Get_guardNum()
+ case `change_room`:
+ return//换房时退出当前房间
+ default:
+ }
+ }
+ }
+ }()
if p.Checkfile().IsExist("cookie.txt") {//附加功能 弹幕机
reply.Danmuji_auto(1)
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">每3s更新一次</property>
<property name="label" translatable="yes">直播时长</property>
</object>
<packing>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">启动后的统计数据</property>
<property name="label" translatable="yes">营收</property>
</object>
<packing>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">每半分钟更新一次</property>
<property name="label" translatable="yes">人气</property>
</object>
<packing>