]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
ws礼物红包,元气赏连抽
authorqydysky <qydysky@foxmail.com>
Sun, 8 May 2022 14:16:05 +0000 (22:16 +0800)
committerqydysky <qydysky@foxmail.com>
Sun, 8 May 2022 14:16:05 +0000 (22:16 +0800)
Reply/Msg.go
Reply/Reply.go
Reply/ws_msg/COMMON_NOTICE_DANMAKU.go [new file with mode: 0644]
Reply/ws_msg/POPULARITY_RED_POCKET_NEW.go [new file with mode: 0644]
Reply/ws_msg/POPULARITY_RED_POCKET_START.go [new file with mode: 0644]

index f1b4c53ee226be7bf1bd9db005c949ce0d4ab159..1d6b2617e75affd604683474f41ff57a579eb3dd 100644 (file)
@@ -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,       //元气赏连抽
 }
 
 //屏蔽不需要的消息
index 81adbd7d63941bacab00358fda550beec01440e9..39a2204542d83690a21c831a91cf541be1c668b5 100644 (file)
@@ -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 (file)
index 0000000..d37b6b2
--- /dev/null
@@ -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 (file)
index 0000000..52794c5
--- /dev/null
@@ -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 (file)
index 0000000..f3a9520
--- /dev/null
@@ -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}}
+*/