From: qydysky Date: Tue, 5 Apr 2022 06:43:46 +0000 (+0800) Subject: 热门榜v2 X-Git-Tag: v0.5.10~41^2~87 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=d72d82917a88fffdfe6a8fec273798ff547ca7d1;p=bili_danmu%2F.git 热门榜v2 --- diff --git a/Reply/Msg.go b/Reply/Msg.go index f79897e..f82d0fe 100644 --- a/Reply/Msg.go +++ b/Reply/Msg.go @@ -29,7 +29,9 @@ var Msg_map = map[string]func(replyF, string){ `LITTLE_MESSAGE_BOX`: replyF.little_message_box, //小消息 `MESSAGEBOX_USER_MEDAL_CHANGE`: replyF.messagebox_user_medal_change, //粉丝牌切换 `HOT_RANK_SETTLEMENT`: replyF.hot_rank_settlement, //热门榜获得 + `HOT_RANK_SETTLEMENT_V2`: replyF.hot_rank_settlement_v2, //热门榜获得v2 `HOT_RANK_CHANGED`: replyF.hot_rank_changed, //热门榜变动 + `HOT_RANK_CHANGED_V2`: replyF.hot_rank_changed_v2, //热门榜变动v2 `CARD_MSG`: nil, //提示关注 `WIDGET_BANNER`: nil, //每日任务 `ROOM_ADMINS`: nil, //房管列表 diff --git a/Reply/Reply.go b/Reply/Reply.go index 3a2810c..b3e47b4 100644 --- a/Reply/Reply.go +++ b/Reply/Reply.go @@ -371,12 +371,20 @@ func (replyF) win_activity(s string) { msglog.Base_add("房").Log_show_control(false).L(`I: `, "活动", title, "已开启") } +var ( + watched int //观看人数 +) + //Msg-观看人数 func (replyF) watched_change(s string) { var data ws_msg.WATCHED_CHANGE json.Unmarshal([]byte(s), &data) - fmt.Printf("\t观看人数:%d\n", data.Data.Num) - msglog.Base_add("房").Log_show_control(false).L(`I: `, "观看人数", data.Data.Num) + if float64(data.Data.Num) < float64(watched)*1.1 && data.Data.Num >= watched { + return + } + watched = data.Data.Num + fmt.Printf("\t观看人数:%d\n", watched) + msglog.Base_add("房").Log_show_control(false).L(`I: `, "观看人数", watched) } //Msg-特殊礼物,当前仅观察到节奏风暴 @@ -744,6 +752,26 @@ func (replyF) hot_rank_changed(s string) { } } +//Msg-热门榜变动V2 +func (replyF) hot_rank_changed_v2(s string) { + msglog := msglog.Base_add("房").Log_show_control(false) + + var type_item ws_msg.HOT_RANK_CHANGED_V2 + if e := json.Unmarshal([]byte(s), &type_item); e != nil { + msglog.L(`E: `, e) + } + if type_item.Data.AreaName != `` { + c.Note = type_item.Data.AreaName + " " + if type_item.Data.Rank == 0 { + c.Note += "50+" + } else { + c.Note += strconv.Itoa(type_item.Data.Rank) + } + fmt.Printf("%s\t%s\n", "热门榜", c.Note) + msglog.L(`I: `, "热门榜", c.Note) + } +} + //Msg-热门榜获得 func (replyF) hot_rank_settlement(s string) { msglog := msglog.Base_add("房") @@ -770,6 +798,32 @@ func (replyF) hot_rank_settlement(s string) { msglog.L(`I: `, "热门榜", tmp) } +//Msg-热门榜获得v2 +func (replyF) hot_rank_settlement_v2(s string) { + msglog := msglog.Base_add("房") + + var type_item ws_msg.HOT_RANK_SETTLEMENT_V2 + if e := json.Unmarshal([]byte(s), &type_item); e != nil { + msglog.L(`E: `, e) + } + var tmp = `获得:` + if type_item.Data.AreaName != `` { + tmp += type_item.Data.AreaName + " 第" + } + if type_item.Data.Rank != 0 { + tmp += strconv.Itoa(type_item.Data.Rank) + } + Gui_show(tmp, "0rank") + c.Danmu_Main_mq.Push_tag(`tts`, Danmu_mq_t{ //传入消息队列 + uid: "0rank", + m: map[string]string{ + `{Area_name}`: type_item.Data.AreaName, + `{Rank}`: strconv.Itoa(type_item.Data.Rank), + }, + }) + msglog.L(`I: `, "热门榜", tmp) +} + //Msg-小消息 func (replyF) little_message_box(s string) { msglog := msglog.Base_add("系统") diff --git a/Reply/gtk.go b/Reply/gtk.go index 92b1582..95639cc 100644 --- a/Reply/gtk.go +++ b/Reply/gtk.go @@ -18,7 +18,6 @@ import ( F "github.com/qydysky/bili_danmu/F" p "github.com/qydysky/part" - s "github.com/qydysky/part/buf" msgq "github.com/qydysky/part/msgq" reqf "github.com/qydysky/part/reqf" @@ -510,12 +509,16 @@ func Gtk_danmu() { o = contrl_win_running //y("sssss",load_face("")) { //加载特定信息驻留时长 - buf := s.New() - buf.Load("config/config_gtk_keep_key.json") + bb, err := ioutil.ReadFile("config/config_gtk_keep_key.json") + if err != nil { + return + } + var buf map[string]interface{} + json.Unmarshal(bb, &buf) for k, _ := range keep_key { delete(keep_key, k) } - for k, v := range buf.B { + for k, v := range buf { keep_key[k] = int(v.(float64)) } } diff --git a/Reply/ws_msg/HOT_RANK_CHANGED_V2.go b/Reply/ws_msg/HOT_RANK_CHANGED_V2.go new file mode 100644 index 0000000..99d0d63 --- /dev/null +++ b/Reply/ws_msg/HOT_RANK_CHANGED_V2.go @@ -0,0 +1,20 @@ +package part + +type HOT_RANK_CHANGED_V2 struct { + Cmd string `json:"cmd"` + Data HOT_RANK_CHANGED_V2_Data `json:"data"` +} +type HOT_RANK_CHANGED_V2_Data struct { + Rank int `json:"rank"` + Trend int `json:"trend"` + Countdown int `json:"countdown"` + Timestamp int `json:"timestamp"` + WebURL string `json:"web_url"` + LiveURL string `json:"live_url"` + BlinkURL string `json:"blink_url"` + LiveLinkURL string `json:"live_link_url"` + PcLinkURL string `json:"pc_link_url"` + Icon string `json:"icon"` + AreaName string `json:"area_name"` + RankDesc string `json:"rank_desc"` +} diff --git a/Reply/ws_msg/HOT_RANK_SETTLEMENT_V2.go b/Reply/ws_msg/HOT_RANK_SETTLEMENT_V2.go new file mode 100644 index 0000000..fab3312 --- /dev/null +++ b/Reply/ws_msg/HOT_RANK_SETTLEMENT_V2.go @@ -0,0 +1,17 @@ +package part + +type HOT_RANK_SETTLEMENT_V2 struct { + Cmd string `json:"cmd"` + Data HOT_RANK_SETTLEMENT_V2_Data `json:"data"` +} +type HOT_RANK_SETTLEMENT_V2_Data struct { + Rank int `json:"rank"` + Uname string `json:"uname"` + Face string `json:"face"` + Timestamp int `json:"timestamp"` + Icon string `json:"icon"` + AreaName string `json:"area_name"` + URL string `json:"url"` + CacheKey string `json:"cache_key"` + DmMsg string `json:"dm_msg"` +}