From 2d6407e5da7a0bd1efe184ff82d121a614a8ed09 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sun, 8 May 2022 22:16:05 +0800 Subject: [PATCH] =?utf8?q?ws=E7=A4=BC=E7=89=A9=E7=BA=A2=E5=8C=85,=E5=85=83?= =?utf8?q?=E6=B0=94=E8=B5=8F=E8=BF=9E=E6=8A=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Reply/Msg.go | 160 ++++++++++---------- Reply/Reply.go | 64 ++++++++ Reply/ws_msg/COMMON_NOTICE_DANMAKU.go | 18 +++ Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go | 38 +++++ Reply/ws_msg/POPULARITY_RED_POCKET_START.go | 35 +++++ 5 files changed, 237 insertions(+), 78 deletions(-) create mode 100644 Reply/ws_msg/COMMON_NOTICE_DANMAKU.go create mode 100644 Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go create mode 100644 Reply/ws_msg/POPULARITY_RED_POCKET_START.go diff --git a/Reply/Msg.go b/Reply/Msg.go index f1b4c53..1d6b261 100644 --- a/Reply/Msg.go +++ b/Reply/Msg.go @@ -15,84 +15,88 @@ var msglog = c.C.Log.Base(`Msg`) //Msg类型数据处理方法map var Msg_map = map[string]func(replyF, string){ - `VOICE_JOIN_ROOM_COUNT_INFO`: replyF.voice_join_room_count_info, //连麦等待 - `VOICE_JOIN_LIST`: nil, - `VOICE_JOIN_STATUS`: replyF.voice_join_status, //连麦人状态 - `STOP_LIVE_ROOM_LIST`: nil, //停止直播的直播间 - `PK_LOTTERY_START`: replyF.pk_lottery_start, //大乱斗pk - `PK_BATTLE_PRE_NEW`: nil, //pk准备 - `PK_BATTLE_START_NEW`: nil, //pk开始 - `PK_BATTLE_PROCESS_NEW`: replyF.pk_battle_process_new, //pk进行中 - `VTR_GIFT_LOTTERY`: replyF.vtr_gift_lottery, //特别礼物 - `ENTRY_EFFECT_MUST_RECEIVE`: nil, //高能榜前三进入 - `GIFT_BAG_DOT`: nil, - `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, //房管列表 - `ONLINE_RANK_TOP3`: nil, - `ONLINE_RANK_COUNT`: nil, - `ONLINE_RANK_V2`: nil, - "TRADING_SCORE": nil, //每日任务 - "MATCH_ROOM_CONF": nil, //赛事房间配置 - "HOT_ROOM_NOTIFY": nil, //热点房间 - "MATCH_TEAM_GIFT_RANK": nil, //赛事人气比拼 - "ACTIVITY_MATCH_GIFT": nil, //赛事礼物 - "PK_BATTLE_PRE": nil, //人气pk - "PK_BATTLE_START": nil, //人气pk - "PK_BATTLE_PROCESS": nil, //人气pk - "PK_BATTLE_END": nil, //人气pk - "PK_BATTLE_RANK_CHANGE": nil, //人气pk - "PK_BATTLE_SETTLE_USER": nil, //人气pk - "PK_BATTLE_SETTLE_V2": nil, //人气pk - "PK_BATTLE_SETTLE": nil, //人气pk - "SYS_MSG": nil, //系统消息 - "ROOM_SKIN_MSG": nil, - "GUARD_ACHIEVEMENT_ROOM": nil, - "ANCHOR_LOT_START": replyF.anchor_lot_start, //天选之人开始 - "ANCHOR_LOT_CHECKSTATUS": nil, - "ANCHOR_LOT_END": nil, //天选之人结束 - "ANCHOR_LOT_AWARD": replyF.anchor_lot_award, //天选之人获奖 - "COMBO_SEND": nil, - "INTERACT_WORD": replyF.interact_word, //进入信息,包含直播间关注提示 - "ACTIVITY_BANNER_UPDATE_V2": nil, - "NOTICE_MSG": nil, - "ROOM_BANNER": nil, - "ONLINERANK": nil, - "WELCOME": nil, - "HOUR_RANK_AWARDS": nil, - "ROOM_RANK": nil, - "ROOM_SHIELD": nil, - "USER_TOAST_MSG": replyF.user_toast_msg, //大航海购买信息 - "WIN_ACTIVITY": replyF.win_activity, //活动 - "SPECIAL_GIFT": replyF.special_gift, //节奏风暴 - "GUARD_BUY": nil, //replyF.guard_buy,//大航海购买 - "WELCOME_GUARD": nil, //replyF.welcome_guard,//大航海进入 ?已废弃? - "DANMU_MSG": replyF.danmu, //弹幕 - "DANMU_MSG:4:0:2:2:2:0": replyF.danmu, //弹幕 - "ROOM_CHANGE": replyF.room_change, //房间信息分区改变 - "ROOM_SILENT_OFF": replyF.roomsilent, //禁言结束 - "ROOM_SILENT_ON": replyF.roomsilent, //禁言开始 - "SEND_GIFT": replyF.send_gift, //礼物 - "ROOM_BLOCK_MSG": replyF.room_block_msg, //封禁 - "PREPARING": replyF.preparing, //下播 - "LIVE": replyF.live, //开播 - "SUPER_CHAT_ENTRANCE": nil, //SC入口 - "SUPER_CHAT_MESSAGE_DELETE": nil, //SC删除 - "SUPER_CHAT_MESSAGE": nil, //replyF.super_chat_message,//SC - "SUPER_CHAT_MESSAGE_JPN": replyF.super_chat_message, //SC - "PANEL": nil, //replyF.panel,//排行榜 被HOT_RANK_CHANGED替代 - "ENTRY_EFFECT": replyF.entry_effect, //进入特效 - "ROOM_REAL_TIME_MESSAGE_UPDATE": nil, //replyF.roominfo,//粉丝数 - "WATCHED_CHANGE": replyF.watched_change, //Msg-观看人数 - "FULL_SCREEN_SPECIAL_EFFECT": nil, - "GIFT_BOARD_RED_DOT": nil, - "USER_PANEL_RED_ALARM": nil, + `VOICE_JOIN_ROOM_COUNT_INFO`: replyF.voice_join_room_count_info, //连麦等待 + `VOICE_JOIN_LIST`: nil, + `VOICE_JOIN_STATUS`: replyF.voice_join_status, //连麦人状态 + `STOP_LIVE_ROOM_LIST`: nil, //停止直播的直播间 + `PK_LOTTERY_START`: replyF.pk_lottery_start, //大乱斗pk + `PK_BATTLE_PRE_NEW`: nil, //pk准备 + `PK_BATTLE_START_NEW`: nil, //pk开始 + `PK_BATTLE_PROCESS_NEW`: replyF.pk_battle_process_new, //pk进行中 + `VTR_GIFT_LOTTERY`: replyF.vtr_gift_lottery, //特别礼物 + `ENTRY_EFFECT_MUST_RECEIVE`: nil, //高能榜前三进入 + `GIFT_BAG_DOT`: nil, + `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, //房管列表 + `ONLINE_RANK_TOP3`: nil, + `ONLINE_RANK_COUNT`: nil, + `ONLINE_RANK_V2`: nil, + "TRADING_SCORE": nil, //每日任务 + "MATCH_ROOM_CONF": nil, //赛事房间配置 + "HOT_ROOM_NOTIFY": nil, //热点房间 + "MATCH_TEAM_GIFT_RANK": nil, //赛事人气比拼 + "ACTIVITY_MATCH_GIFT": nil, //赛事礼物 + "PK_BATTLE_PRE": nil, //人气pk + "PK_BATTLE_START": nil, //人气pk + "PK_BATTLE_PROCESS": nil, //人气pk + "PK_BATTLE_END": nil, //人气pk + "PK_BATTLE_RANK_CHANGE": nil, //人气pk + "PK_BATTLE_SETTLE_USER": nil, //人气pk + "PK_BATTLE_SETTLE_V2": nil, //人气pk + "PK_BATTLE_SETTLE": nil, //人气pk + "SYS_MSG": nil, //系统消息 + "ROOM_SKIN_MSG": nil, + "GUARD_ACHIEVEMENT_ROOM": nil, + "ANCHOR_LOT_START": replyF.anchor_lot_start, //天选之人开始 + "ANCHOR_LOT_CHECKSTATUS": nil, + "ANCHOR_LOT_END": nil, //天选之人结束 + "ANCHOR_LOT_AWARD": replyF.anchor_lot_award, //天选之人获奖 + "COMBO_SEND": nil, + "INTERACT_WORD": replyF.interact_word, //进入信息,包含直播间关注提示 + "ACTIVITY_BANNER_UPDATE_V2": nil, + "NOTICE_MSG": nil, + "ROOM_BANNER": nil, + "ONLINERANK": nil, + "WELCOME": nil, + "HOUR_RANK_AWARDS": nil, + "ROOM_RANK": nil, + "ROOM_SHIELD": nil, + "USER_TOAST_MSG": replyF.user_toast_msg, //大航海购买信息 + "WIN_ACTIVITY": replyF.win_activity, //活动 + "SPECIAL_GIFT": replyF.special_gift, //节奏风暴 + "GUARD_BUY": nil, //replyF.guard_buy,//大航海购买 + "WELCOME_GUARD": nil, //replyF.welcome_guard,//大航海进入 ?已废弃? + "DANMU_MSG": replyF.danmu, //弹幕 + "DANMU_MSG:4:0:2:2:2:0": replyF.danmu, //弹幕 + "ROOM_CHANGE": replyF.room_change, //房间信息分区改变 + "ROOM_SILENT_OFF": replyF.roomsilent, //禁言结束 + "ROOM_SILENT_ON": replyF.roomsilent, //禁言开始 + "SEND_GIFT": replyF.send_gift, //礼物 + "ROOM_BLOCK_MSG": replyF.room_block_msg, //封禁 + "PREPARING": replyF.preparing, //下播 + "LIVE": replyF.live, //开播 + "SUPER_CHAT_ENTRANCE": nil, //SC入口 + "SUPER_CHAT_MESSAGE_DELETE": nil, //SC删除 + "SUPER_CHAT_MESSAGE": nil, //replyF.super_chat_message,//SC + "SUPER_CHAT_MESSAGE_JPN": replyF.super_chat_message, //SC + "PANEL": nil, //replyF.panel,//排行榜 被HOT_RANK_CHANGED替代 + "ENTRY_EFFECT": replyF.entry_effect, //进入特效 + "ROOM_REAL_TIME_MESSAGE_UPDATE": nil, //replyF.roominfo,//粉丝数 + "WATCHED_CHANGE": replyF.watched_change, //Msg-观看人数 + "FULL_SCREEN_SPECIAL_EFFECT": nil, + "GIFT_BOARD_RED_DOT": nil, + "USER_PANEL_RED_ALARM": nil, + "POPULARITY_RED_POCKET_NEW": replyF.popularity_red_pocket_new, //老板打赏新礼物红包 + "POPULARITY_RED_POCKET_START": replyF.popularity_red_pocket_start, //老板打赏礼物红包开始 + "POPULARITY_RED_POCKET_WINNER_LIST": nil, //老板打赏礼物红包的得奖名单 + "COMMON_NOTICE_DANMAKU": replyF.common_notice_danmaku, //元气赏连抽 } //屏蔽不需要的消息 diff --git a/Reply/Reply.go b/Reply/Reply.go index 81adbd7..39a2204 100644 --- a/Reply/Reply.go +++ b/Reply/Reply.go @@ -837,6 +837,70 @@ func (replyF) hot_rank_settlement_v2(s string) { msglog.L(`I: `, "热门榜", tmp) } +//Msg-老板打赏新礼物红包 +func (replyF) popularity_red_pocket_new(s string) { + msglog := msglog.Base_add("礼") + + var type_item ws_msg.POPULARITY_RED_POCKET_NEW + if e := json.Unmarshal([]byte(s), &type_item); e != nil { + msglog.L(`E: `, e) + } + var tmp = type_item.Data.Uname + type_item.Data.Action + strconv.Itoa(type_item.Data.Num) + `个` + type_item.Data.GiftName + Gui_show(tmp, "0gift") + c.C.Danmu_Main_mq.Push_tag(`tts`, Danmu_mq_t{ //传入消息队列 + uid: "0gift", + m: map[string]string{ + `{num}`: strconv.Itoa(type_item.Data.Num), + `{uname}`: type_item.Data.Uname, + `{action}`: type_item.Data.Action, + `{giftName}`: type_item.Data.GiftName, + }, + }) + msglog.L(`I: `, "礼物红包", tmp) +} + +//Msg-老板打赏礼物红包 +func (replyF) popularity_red_pocket_start(s string) { + msglog := msglog.Base_add("礼") + + var type_item ws_msg.POPULARITY_RED_POCKET_START + if e := json.Unmarshal([]byte(s), &type_item); e != nil { + msglog.L(`E: `, e) + } + var tmp = type_item.Data.SenderName + `送出了礼物红包` + Gui_show(tmp, "0room") + c.C.Danmu_Main_mq.Push_tag(`tts`, Danmu_mq_t{ //传入消息队列 + uid: "0room", + m: map[string]string{ + `{msg}`: tmp, + }, + }) + msglog.L(`I: `, "礼物红包", tmp) +} + +//Msg-元气赏连抽 +func (replyF) common_notice_danmaku(s string) { + msglog := msglog.Base_add("房") + + var type_item ws_msg.COMMON_NOTICE_DANMAKU + if e := json.Unmarshal([]byte(s), &type_item); e != nil { + msglog.L(`E: `, e) + } + var tmp = type_item.Data.ContentSegments + if len(tmp) == 0 { + return + } + + Gui_show(tmp[0].Text, "0room") + c.C.Danmu_Main_mq.Push_tag(`tts`, Danmu_mq_t{ //传入消息队列 + uid: "0room", + m: map[string]string{ + `{msg}`: tmp[0].Text, + }, + }) + msglog.L(`I: `, "元气赏连抽", tmp) +} + //Msg-小消息 func (replyF) little_message_box(s string) { msglog := msglog.Base_add("系统") diff --git a/Reply/ws_msg/COMMON_NOTICE_DANMAKU.go b/Reply/ws_msg/COMMON_NOTICE_DANMAKU.go new file mode 100644 index 0000000..d37b6b2 --- /dev/null +++ b/Reply/ws_msg/COMMON_NOTICE_DANMAKU.go @@ -0,0 +1,18 @@ +package part + +type COMMON_NOTICE_DANMAKU struct { + Cmd string `json:"cmd"` + Data struct { + ContentSegments []struct { + FontColor string `json:"font_color"` + Text string `json:"text"` + Type int `json:"type"` + } `json:"content_segments"` + Dmscore int `json:"dmscore"` + Terminals []int `json:"terminals"` + } `json:"data"` +} + +/* +{"cmd":"COMMON_NOTICE_DANMAKU","data":{"content_segments":[{"font_color":"#FB7299","text":"大肚罐罐子在元气赏中五连抽!送出了好多礼物!","type":1}],"dmscore":144,"terminals":[1,2,3,4,5]}} +*/ diff --git a/Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go b/Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go new file mode 100644 index 0000000..52794c5 --- /dev/null +++ b/Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go @@ -0,0 +1,38 @@ +package part + +type POPULARITY_RED_POCKET_NEW struct { + Cmd string `json:"cmd"` + Data struct { + LotID int `json:"lot_id"` + StartTime int `json:"start_time"` + CurrentTime int `json:"current_time"` + WaitNum int `json:"wait_num"` + Uname string `json:"uname"` + UID int `json:"uid"` + Action string `json:"action"` + Num int `json:"num"` + GiftName string `json:"gift_name"` + GiftID int `json:"gift_id"` + Price int `json:"price"` + NameColor string `json:"name_color"` + MedalInfo struct { + TargetID int `json:"target_id"` + Special string `json:"special"` + IconID int `json:"icon_id"` + AnchorUname string `json:"anchor_uname"` + AnchorRoomid int `json:"anchor_roomid"` + MedalLevel int `json:"medal_level"` + MedalName string `json:"medal_name"` + MedalColor int `json:"medal_color"` + MedalColorStart int `json:"medal_color_start"` + MedalColorEnd int `json:"medal_color_end"` + MedalColorBorder int `json:"medal_color_border"` + IsLighted int `json:"is_lighted"` + GuardLevel int `json:"guard_level"` + } `json:"medal_info"` + } `json:"data"` +} + +/* +{"cmd":"POPULARITY_RED_POCKET_NEW","data":{"lot_id":2495925,"start_time":1652009382,"current_time":1652008665,"wait_num":5,"uname":"一个不想起床的屑","uid":2128651899,"action":"送出","num":1,"gift_name":"红包","gift_id":13000,"price":520,"name_color":"","medal_info":{"target_id":168598,"special":"","icon_id":0,"anchor_uname":"","anchor_roomid":0,"medal_level":4,"medal_name":"刺儿","medal_color":6067854,"medal_color_start":6067854,"medal_color_end":6067854,"medal_color_border":6067854,"is_lighted":1,"guard_level":0}}} +*/ diff --git a/Reply/ws_msg/POPULARITY_RED_POCKET_START.go b/Reply/ws_msg/POPULARITY_RED_POCKET_START.go new file mode 100644 index 0000000..f3a9520 --- /dev/null +++ b/Reply/ws_msg/POPULARITY_RED_POCKET_START.go @@ -0,0 +1,35 @@ +package part + +type POPULARITY_RED_POCKET_START struct { + Cmd string `json:"cmd"` + Data struct { + LotID int `json:"lot_id"` + SenderUID int `json:"sender_uid"` + SenderName string `json:"sender_name"` + SenderFace string `json:"sender_face"` + JoinRequirement int `json:"join_requirement"` + Danmu string `json:"danmu"` + CurrentTime int `json:"current_time"` + StartTime int `json:"start_time"` + EndTime int `json:"end_time"` + LastTime int `json:"last_time"` + RemoveTime int `json:"remove_time"` + ReplaceTime int `json:"replace_time"` + LotStatus int `json:"lot_status"` + H5URL string `json:"h5_url"` + UserStatus int `json:"user_status"` + Awards []struct { + GiftID int `json:"gift_id"` + GiftName string `json:"gift_name"` + GiftPic string `json:"gift_pic"` + Num int `json:"num"` + } `json:"awards"` + LotConfigID int `json:"lot_config_id"` + TotalPrice int `json:"total_price"` + WaitNum int `json:"wait_num"` + } `json:"data"` +} + +/* +{"cmd":"POPULARITY_RED_POCKET_START","data":{"lot_id":2495708,"sender_uid":2128651899,"sender_name":"一个不想起床的屑","sender_face":"http://i0.hdslb.com/bfs/face/e32a3b04c1b60f1070bc22536611525aef3af729.jpg","join_requirement":1,"danmu":"老板大气!点点红包抽礼物!","current_time":1652008432,"start_time":1652008432,"end_time":1652008612,"last_time":180,"remove_time":1652008627,"replace_time":1652008622,"lot_status":1,"h5_url":"https://live.bilibili.com/p/html/live-app-red-envelope/popularity.html?is_live_half_webview=1\u0026hybrid_half_ui=1,5,100p,100p,000000,0,50,0,0,1;2,5,100p,100p,000000,0,50,0,0,1;3,5,100p,100p,000000,0,50,0,0,1;4,5,100p,100p,000000,0,50,0,0,1;5,5,100p,100p,000000,0,50,0,0,1;6,5,100p,100p,000000,0,50,0,0,1;7,5,100p,100p,000000,0,50,0,0,1;8,5,100p,100p,000000,0,50,0,0,1\u0026hybrid_rotate_d=1\u0026hybrid_biz=popularityRedPacket\u0026lotteryId=2495708","user_status":2,"awards":[{"gift_id":31215,"gift_name":"花式夸夸","gift_pic":"https://s1.hdslb.com/bfs/live/ce0efeceae7054d1ee835864eace28f08a54a37d.png","num":1},{"gift_id":31212,"gift_name":"打call","gift_pic":"https://s1.hdslb.com/bfs/live/f75291a0e267425c41e1ce31b5ffd6bfedc6f0b6.png","num":12},{"gift_id":31214,"gift_name":"牛哇","gift_pic":"https://s1.hdslb.com/bfs/live/b8a38b4bd3be120becddfb92650786f00dffad48.png","num":26}],"lot_config_id":5,"total_price":41600,"wait_num":2}} +*/ -- 2.39.2