]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
人气榜
authorqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 15 Jan 2023 04:19:56 +0000 (12:19 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 15 Jan 2023 04:19:56 +0000 (12:19 +0800)
F/api.go
Json/NEPTUNE_IS_MY_WAIFU.go
Json/roomInfoRes.go

index 88ecddb07338ddf3ea07d4c7372a2665e2955541..24de853542cafdbde9eebb2cb60180af6fb22e1d 100644 (file)
--- a/F/api.go
+++ b/F/api.go
@@ -267,17 +267,16 @@ func (c *GetFunc) Html() (missKey []string) {
                } else {
                        s := tmp.RS[0]
 
+                       var j J.NEPTUNE_IS_MY_WAIFU
+                       if e := json.Unmarshal([]byte(s), &j); e != nil {
+                               apilog.L(`E: `, e)
+                               return
+                       } else if j.RoomInitRes.Code != 0 {
+                               apilog.L(`E: `, j.RoomInitRes.Message)
+                               return
+                       }
                        //Roominitres
                        {
-                               var j J.NEPTUNE_IS_MY_WAIFU
-                               if e := json.Unmarshal([]byte(s), &j); e != nil {
-                                       apilog.L(`E: `, e)
-                                       return
-                               } else if j.RoomInitRes.Code != 0 {
-                                       apilog.L(`E: `, j.RoomInitRes.Message)
-                                       return
-                               }
-
                                //主播uid
                                c.UpUid = j.RoomInitRes.Data.UID
                                //房间号(完整)
@@ -371,37 +370,25 @@ func (c *GetFunc) Html() (missKey []string) {
 
                        //Roominfores
                        {
-                               var j struct {
-                                       Roominfores J.Roominfores `json:"roomInitRes"`
-                               }
-
-                               if e := json.Unmarshal([]byte(s), &j); e != nil {
-                                       apilog.L(`E: `, e)
-                                       return
-                               } else if j.Roominfores.Code != 0 {
-                                       apilog.L(`E: `, j.Roominfores.Message)
-                                       return
-                               }
-
                                //直播间标题
-                               c.Title = j.Roominfores.Data.RoomInfo.Title
+                               c.Title = j.RoomInfoRes.Data.RoomInfo.Title
                                //主播名
-                               c.Uname = j.Roominfores.Data.AnchorInfo.BaseInfo.Uname
+                               c.Uname = j.RoomInfoRes.Data.AnchorInfo.BaseInfo.Uname
                                //分区
-                               c.ParentAreaID = j.Roominfores.Data.RoomInfo.ParentAreaID
+                               c.ParentAreaID = j.RoomInfoRes.Data.RoomInfo.ParentAreaID
                                //子分区
-                               c.AreaID = j.Roominfores.Data.RoomInfo.AreaID
+                               c.AreaID = j.RoomInfoRes.Data.RoomInfo.AreaID
                                //舰长数
-                               c.GuardNum = j.Roominfores.Data.GuardInfo.Count
+                               c.GuardNum = j.RoomInfoRes.Data.GuardInfo.Count
                                //分区排行
-                               c.Note = j.Roominfores.Data.HotRankInfo.AreaName
-                               if rank := j.Roominfores.Data.HotRankInfo.Rank; rank > 50 || rank == 0 {
-                                       c.Note += "50+"
+                               c.Note = j.RoomInfoRes.Data.PopularRankInfo.RankName + " "
+                               if rank := j.RoomInfoRes.Data.PopularRankInfo.Rank; rank > 50 || rank == 0 {
+                                       c.Note += "100+"
                                } else {
                                        c.Note += strconv.Itoa(rank)
                                }
                                //直播间是否被封禁
-                               if j.Roominfores.Data.RoomInfo.LockStatus == 1 {
+                               if j.RoomInfoRes.Data.RoomInfo.LockStatus == 1 {
                                        apilog.L(`W: `, "直播间封禁中")
                                        c.Locked = true
                                        return
@@ -477,9 +464,9 @@ func (c *GetFunc) getInfoByRoom() (missKey []string) {
                        //舰长数
                        c.GuardNum = j.Data.GuardInfo.Count
                        //分区排行
-                       c.Note = j.Data.HotRankInfo.AreaName
-                       if rank := j.Data.HotRankInfo.Rank; rank > 50 || rank == 0 {
-                               c.Note += "50+"
+                       c.Note = j.Data.PopularRankInfo.RankName + " "
+                       if rank := j.Data.PopularRankInfo.Rank; rank > 50 || rank == 0 {
+                               c.Note += "100+"
                        } else {
                                c.Note += strconv.Itoa(rank)
                        }
@@ -1033,78 +1020,78 @@ func (c *GetFunc) getPopularAnchorRank() (missKey []string) {
 
 // Deprecated: 2023-01-15
 func (c *GetFunc) Get_HotRank() (missKey []string) {
-       apilog := apilog.Base_add(`Get_HotRank`)
-
-       if c.UpUid == 0 {
-               missKey = append(missKey, `UpUid`)
-       }
-       if c.Roomid == 0 {
-               missKey = append(missKey, `Roomid`)
-       }
-       if c.ParentAreaID == 0 {
-               missKey = append(missKey, `ParentAreaID`)
-       }
-       if !c.LIVE_BUVID {
-               missKey = append(missKey, `LIVE_BUVID`)
-       }
-       if len(missKey) > 0 {
-               return
-       }
-
-       Roomid := strconv.Itoa(c.Roomid)
-
-       //getHotRank
-       {
-               Cookie := make(map[string]string)
-               c.Cookie.Range(func(k, v interface{}) bool {
-                       Cookie[k.(string)] = v.(string)
-                       return true
-               })
-
-               reqi := c.ReqPool.Get()
-               defer c.ReqPool.Put(reqi)
-               req := reqi.Item.(*reqf.Req)
-               if err := req.Reqf(reqf.Rval{
-                       Url: `https://api.live.bilibili.com/xlive/general-interface/v1/rank/getHotRank?ruid=` + strconv.Itoa(c.UpUid) + `&room_id=` + Roomid + `&is_pre=0&page_size=50&source=2&area_id=` + strconv.Itoa(c.ParentAreaID),
-                       Header: map[string]string{
-                               `Host`:            `api.live.bilibili.com`,
-                               `User-Agent`:      `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0`,
-                               `Accept`:          `application/json, text/plain, */*`,
-                               `Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`,
-                               `Accept-Encoding`: `gzip, deflate, br`,
-                               `Origin`:          `https://live.bilibili.com`,
-                               `Connection`:      `keep-alive`,
-                               `Pragma`:          `no-cache`,
-                               `Cache-Control`:   `no-cache`,
-                               `Referer`:         "https://live.bilibili.com/" + Roomid,
-                               `Cookie`:          reqf.Map_2_Cookies_String(Cookie),
-                       },
-                       Proxy:   c.Proxy,
-                       Timeout: 3 * 1000,
-                       Retry:   2,
-               }); err != nil {
-                       apilog.L(`E: `, err)
-                       return
-               }
-
-               var j J.GetHotRank
-
-               if e := json.Unmarshal([]byte(req.Respon), &j); e != nil {
-                       apilog.L(`E: `, e)
-                       return
-               } else if j.Code != 0 {
-                       apilog.L(`E: `, j.Message)
-                       return
-               }
-
-               //获取排名
-               c.Note = j.Data.Own.AreaName + " "
-               if j.Data.Own.Rank == 0 {
-                       c.Note += "50+"
-               } else {
-                       c.Note += strconv.Itoa(j.Data.Own.Rank)
-               }
-       }
+       // apilog := apilog.Base_add(`Get_HotRank`)
+
+       // if c.UpUid == 0 {
+       //      missKey = append(missKey, `UpUid`)
+       // }
+       // if c.Roomid == 0 {
+       //      missKey = append(missKey, `Roomid`)
+       // }
+       // if c.ParentAreaID == 0 {
+       //      missKey = append(missKey, `ParentAreaID`)
+       // }
+       // if !c.LIVE_BUVID {
+       //      missKey = append(missKey, `LIVE_BUVID`)
+       // }
+       // if len(missKey) > 0 {
+       //      return
+       // }
+
+       // Roomid := strconv.Itoa(c.Roomid)
+
+       // //getHotRank
+       // {
+       //      Cookie := make(map[string]string)
+       //      c.Cookie.Range(func(k, v interface{}) bool {
+       //              Cookie[k.(string)] = v.(string)
+       //              return true
+       //      })
+
+       //      reqi := c.ReqPool.Get()
+       //      defer c.ReqPool.Put(reqi)
+       //      req := reqi.Item.(*reqf.Req)
+       //      if err := req.Reqf(reqf.Rval{
+       //              Url: `https://api.live.bilibili.com/xlive/general-interface/v1/rank/getHotRank?ruid=` + strconv.Itoa(c.UpUid) + `&room_id=` + Roomid + `&is_pre=0&page_size=50&source=2&area_id=` + strconv.Itoa(c.ParentAreaID),
+       //              Header: map[string]string{
+       //                      `Host`:            `api.live.bilibili.com`,
+       //                      `User-Agent`:      `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0`,
+       //                      `Accept`:          `application/json, text/plain, */*`,
+       //                      `Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`,
+       //                      `Accept-Encoding`: `gzip, deflate, br`,
+       //                      `Origin`:          `https://live.bilibili.com`,
+       //                      `Connection`:      `keep-alive`,
+       //                      `Pragma`:          `no-cache`,
+       //                      `Cache-Control`:   `no-cache`,
+       //                      `Referer`:         "https://live.bilibili.com/" + Roomid,
+       //                      `Cookie`:          reqf.Map_2_Cookies_String(Cookie),
+       //              },
+       //              Proxy:   c.Proxy,
+       //              Timeout: 3 * 1000,
+       //              Retry:   2,
+       //      }); err != nil {
+       //              apilog.L(`E: `, err)
+       //              return
+       //      }
+
+       //      var j J.GetHotRank
+
+       //      if e := json.Unmarshal([]byte(req.Respon), &j); e != nil {
+       //              apilog.L(`E: `, e)
+       //              return
+       //      } else if j.Code != 0 {
+       //              apilog.L(`E: `, j.Message)
+       //              return
+       //      }
+
+       //      //获取排名
+       //      c.Note = j.Data.Own.AreaName + " "
+       //      if j.Data.Own.Rank == 0 {
+       //              c.Note += "50+"
+       //      } else {
+       //              c.Note += strconv.Itoa(j.Data.Own.Rank)
+       //      }
+       // }
 
        return
 }
index 42f7dfe3ae1f79e70dfbead5407e8ebabe0412f2..8b1520ffb9e58dcdc1da516ed0db5dfcf247cf1e 100644 (file)
@@ -6,20 +6,20 @@ type NEPTUNE_IS_MY_WAIFU struct {
                Message string `json:"message"`
                TTL     int    `json:"ttl"`
                Data    struct {
-                       RoomID          int   `json:"room_id"`
-                       ShortID         int   `json:"short_id"`
-                       UID             int   `json:"uid"`
-                       IsHidden        bool  `json:"is_hidden"`
-                       IsLocked        bool  `json:"is_locked"`
-                       IsPortrait      bool  `json:"is_portrait"`
-                       LiveStatus      int   `json:"live_status"`
-                       HiddenTill      int   `json:"hidden_till"`
-                       LockTill        int   `json:"lock_till"`
-                       Encrypted       bool  `json:"encrypted"`
-                       PwdVerified     bool  `json:"pwd_verified"`
-                       LiveTime        int   `json:"live_time"`
-                       RoomShield      int   `json:"room_shield"`
-                       AllSpecialTypes []int `json:"all_special_types"`
+                       RoomID          int           `json:"room_id"`
+                       ShortID         int           `json:"short_id"`
+                       UID             int           `json:"uid"`
+                       IsHidden        bool          `json:"is_hidden"`
+                       IsLocked        bool          `json:"is_locked"`
+                       IsPortrait      bool          `json:"is_portrait"`
+                       LiveStatus      int           `json:"live_status"`
+                       HiddenTill      int           `json:"hidden_till"`
+                       LockTill        int           `json:"lock_till"`
+                       Encrypted       bool          `json:"encrypted"`
+                       PwdVerified     bool          `json:"pwd_verified"`
+                       LiveTime        int           `json:"live_time"`
+                       RoomShield      int           `json:"room_shield"`
+                       AllSpecialTypes []interface{} `json:"all_special_types"`
                        PlayurlInfo     struct {
                                ConfJSON string `json:"conf_json"`
                                Playurl  struct {
@@ -51,10 +51,10 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                                } `json:"format"`
                                        } `json:"stream"`
                                        P2PData struct {
-                                               P2P      bool        `json:"p2p"`
-                                               P2PType  int         `json:"p2p_type"`
-                                               MP2P     bool        `json:"m_p2p"`
-                                               MServers interface{} `json:"m_servers"`
+                                               P2P      bool     `json:"p2p"`
+                                               P2PType  int      `json:"p2p_type"`
+                                               MP2P     bool     `json:"m_p2p"`
+                                               MServers []string `json:"m_servers"`
                                        } `json:"p2p_data"`
                                        DolbyQn interface{} `json:"dolby_qn"`
                                } `json:"playurl"`
@@ -101,8 +101,8 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                OnVoiceJoin int `json:"on_voice_join"`
                                Online      int `json:"online"`
                                RoomType    struct {
+                                       Two3    int `json:"2-3"`
                                        Three21 int `json:"3-21"`
-                                       Three50 int `json:"3-50"`
                                } `json:"room_type"`
                        } `json:"room_info"`
                        AnchorInfo struct {
@@ -135,6 +135,7 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                        MedalID   int    `json:"medal_id"`
                                        Fansclub  int    `json:"fansclub"`
                                } `json:"medal_info"`
+                               GiftInfo interface{} `json:"gift_info"`
                        } `json:"anchor_info"`
                        NewsInfo struct {
                                UID     int    `json:"uid"`
@@ -304,6 +305,9 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                RoomMyIdol           int `json:"room-my-idol"`
                                RoomTopic            int `json:"room-topic"`
                                FansClub             int `json:"fans-club"`
+                               RoomPopularRank      int `json:"room-popular-rank"`
+                               MicUserGift          int `json:"mic_user_gift"`
+                               NewRoomAreaRank      int `json:"new-room-area-rank"`
                        } `json:"new_switch_info"`
                        SuperChatInfo struct {
                                Status      int           `json:"status"`
@@ -314,7 +318,7 @@ type NEPTUNE_IS_MY_WAIFU struct {
                        } `json:"super_chat_info"`
                        OnlineGoldRankInfoV2 struct {
                                List []struct {
-                                       UID        int    `json:"uid"`
+                                       UID        int64  `json:"uid"`
                                        Face       string `json:"face"`
                                        Uname      string `json:"uname"`
                                        Score      string `json:"score"`
@@ -370,8 +374,13 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                URL              string `json:"url"`
                        } `json:"second_create_info"`
                        PlayTogetherInfo struct {
-                               Switch   int           `json:"switch"`
-                               IconList []interface{} `json:"icon_list"`
+                               Switch   int `json:"switch"`
+                               IconList []struct {
+                                       Icon    string `json:"icon"`
+                                       Title   string `json:"title"`
+                                       JumpURL string `json:"jump_url"`
+                                       Status  int    `json:"status"`
+                               } `json:"icon_list"`
                        } `json:"play_together_info"`
                        CloudGameInfo struct {
                                IsGaming int `json:"is_gaming"`
@@ -397,6 +406,33 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                SwitchStatus int           `json:"switch_status"`
                                Members      []interface{} `json:"members"`
                        } `json:"multi_voice"`
+                       PopularRankInfo struct {
+                               Rank       int    `json:"rank"`
+                               Countdown  int    `json:"countdown"`
+                               Timestamp  int    `json:"timestamp"`
+                               URL        string `json:"url"`
+                               OnRankName string `json:"on_rank_name"`
+                               RankName   string `json:"rank_name"`
+                       } `json:"popular_rank_info"`
+                       NewAreaRankInfo struct {
+                               Items []struct {
+                                       ConfID      int    `json:"conf_id"`
+                                       RankName    string `json:"rank_name"`
+                                       UID         int    `json:"uid"`
+                                       Rank        int    `json:"rank"`
+                                       IconURLBlue string `json:"icon_url_blue"`
+                                       IconURLPink string `json:"icon_url_pink"`
+                                       IconURLGrey string `json:"icon_url_grey"`
+                                       JumpURLLink string `json:"jump_url_link"`
+                                       JumpURLPc   string `json:"jump_url_pc"`
+                                       JumpURLPink string `json:"jump_url_pink"`
+                                       JumpURLWeb  string `json:"jump_url_web"`
+                               } `json:"items"`
+                               RotationCycleTimeWeb int `json:"rotation_cycle_time_web"`
+                       } `json:"new_area_rank_info"`
+                       GiftStar struct {
+                               Show bool `json:"show"`
+                       } `json:"gift_star"`
                        VideoConnectionInfo interface{} `json:"video_connection_info"`
                        PlayerThrottleInfo  struct {
                                Status              int `json:"status"`
@@ -409,25 +445,7 @@ type NEPTUNE_IS_MY_WAIFU struct {
                                Count                   int `json:"count"`
                                AnchorGuardAchieveLevel int `json:"anchor_guard_achieve_level"`
                        } `json:"guard_info"`
-                       HotRankInfo struct {
-                               Rank      int    `json:"rank"`
-                               Trend     int    `json:"trend"`
-                               Countdown int    `json:"countdown"`
-                               Timestamp int    `json:"timestamp"`
-                               URL       string `json:"url"`
-                               Icon      string `json:"icon"`
-                               AreaName  string `json:"area_name"`
-                               NewData   struct {
-                                       Rank      int    `json:"rank"`
-                                       Trend     int    `json:"trend"`
-                                       Countdown int    `json:"countdown"`
-                                       Timestamp int    `json:"timestamp"`
-                                       URL       string `json:"url"`
-                                       Icon      string `json:"icon"`
-                                       AreaName  string `json:"area_name"`
-                                       RankDesc  string `json:"rank_desc"`
-                               } `json:"new_data"`
-                       } `json:"hot_rank_info"`
+                       HotRankInfo interface{} `json:"hot_rank_info"`
                } `json:"data"`
        } `json:"roomInfoRes"`
        UserLabInfo struct {
index ecab38ac17f987ef55f191f496e78436b306a535..669575b2fd4dae293626a2b78cdc16ef7fbca661 100644 (file)
@@ -40,8 +40,8 @@ type Roominfores struct {
                        OnVoiceJoin int `json:"on_voice_join"`
                        Online      int `json:"online"`
                        RoomType    struct {
-                               Three13 int `json:"3-13"`
-                               Four1   int `json:"4-1"`
+                               Two3    int `json:"2-3"`
+                               Three21 int `json:"3-21"`
                        } `json:"room_type"`
                } `json:"room_info"`
                AnchorInfo struct {
@@ -50,19 +50,21 @@ type Roominfores struct {
                                Face         string `json:"face"`
                                Gender       string `json:"gender"`
                                OfficialInfo struct {
-                                       Role  int    `json:"role"`
-                                       Title string `json:"title"`
-                                       Desc  string `json:"desc"`
+                                       Role     int    `json:"role"`
+                                       Title    string `json:"title"`
+                                       Desc     string `json:"desc"`
+                                       IsNft    int    `json:"is_nft"`
+                                       NftDmark string `json:"nft_dmark"`
                                } `json:"official_info"`
                        } `json:"base_info"`
                        LiveInfo struct {
-                               Level        int    `json:"level"`
-                               LevelColor   int    `json:"level_color"`
-                               Score        int    `json:"score"`
-                               UpgradeScore int    `json:"upgrade_score"`
-                               Current      []int  `json:"current"`
-                               Next         []int  `json:"next"`
-                               Rank         string `json:"rank"`
+                               Level        int           `json:"level"`
+                               LevelColor   int           `json:"level_color"`
+                               Score        int           `json:"score"`
+                               UpgradeScore int           `json:"upgrade_score"`
+                               Current      []int         `json:"current"`
+                               Next         []interface{} `json:"next"`
+                               Rank         string        `json:"rank"`
                        } `json:"live_info"`
                        RelationInfo struct {
                                Attention int `json:"attention"`
@@ -72,6 +74,7 @@ type Roominfores struct {
                                MedalID   int    `json:"medal_id"`
                                Fansclub  int    `json:"fansclub"`
                        } `json:"medal_info"`
+                       GiftInfo interface{} `json:"gift_info"`
                } `json:"anchor_info"`
                NewsInfo struct {
                        UID     int    `json:"uid"`
@@ -87,38 +90,34 @@ type Roominfores struct {
                        Timestamp int    `json:"timestamp"`
                } `json:"rankdb_info"`
                AreaRankInfo struct {
-                       Arearank struct {
+                       AreaRank struct {
                                Index int    `json:"index"`
                                Rank  string `json:"rank"`
                        } `json:"areaRank"`
-                       Liverank struct {
+                       LiveRank struct {
                                Rank string `json:"rank"`
                        } `json:"liveRank"`
                } `json:"area_rank_info"`
-               BattleRankEntryInfo struct {
-                       FirstRankImgURL string `json:"first_rank_img_url"`
-                       RankName        string `json:"rank_name"`
-                       ShowStatus      int    `json:"show_status"`
-               } `json:"battle_rank_entry_info"`
-               TabInfo struct {
+               BattleRankEntryInfo interface{} `json:"battle_rank_entry_info"`
+               TabInfo             struct {
                        List []struct {
                                Type      string `json:"type"`
                                Desc      string `json:"desc"`
-                               Isfirst   int    `json:"isFirst"`
-                               Isevent   int    `json:"isEvent"`
-                               Eventtype string `json:"eventType"`
-                               Listtype  string `json:"listType"`
-                               Apiprefix string `json:"apiPrefix"`
+                               IsFirst   int    `json:"isFirst"`
+                               IsEvent   int    `json:"isEvent"`
+                               EventType string `json:"eventType"`
+                               ListType  string `json:"listType"`
+                               APIPrefix string `json:"apiPrefix"`
                                RankName  string `json:"rank_name"`
                        } `json:"list"`
                } `json:"tab_info"`
                ActivityInitInfo struct {
-                       Eventlist []interface{} `json:"eventList"`
-                       Weekinfo  struct {
-                               Bannerinfo interface{} `json:"bannerInfo"`
-                               Giftname   interface{} `json:"giftName"`
+                       EventList []interface{} `json:"eventList"`
+                       WeekInfo  struct {
+                               BannerInfo interface{} `json:"bannerInfo"`
+                               GiftName   interface{} `json:"giftName"`
                        } `json:"weekInfo"`
-                       Giftname interface{} `json:"giftName"`
+                       GiftName interface{} `json:"giftName"`
                        Lego     struct {
                                Timestamp int    `json:"timestamp"`
                                Config    string `json:"config"`
@@ -146,13 +145,22 @@ type Roominfores struct {
                } `json:"voice_join_info"`
                AdBannerInfo struct {
                        Data []struct {
-                               ID       int    `json:"id"`
-                               Title    string `json:"title"`
-                               Location string `json:"location"`
-                               Position int    `json:"position"`
-                               Pic      string `json:"pic"`
-                               Link     string `json:"link"`
-                               Weight   int    `json:"weight"`
+                               ID                   int         `json:"id"`
+                               Title                string      `json:"title"`
+                               Location             string      `json:"location"`
+                               Position             int         `json:"position"`
+                               Pic                  string      `json:"pic"`
+                               Link                 string      `json:"link"`
+                               Weight               int         `json:"weight"`
+                               RoomID               int         `json:"room_id"`
+                               UpID                 int         `json:"up_id"`
+                               ParentAreaID         int         `json:"parent_area_id"`
+                               AreaID               int         `json:"area_id"`
+                               LiveStatus           int         `json:"live_status"`
+                               AvID                 int         `json:"av_id"`
+                               IsAd                 bool        `json:"is_ad"`
+                               AdTransparentContent interface{} `json:"ad_transparent_content"`
+                               ShowAdIcon           bool        `json:"show_ad_icon"`
                        } `json:"data"`
                } `json:"ad_banner_info"`
                SkinInfo struct {
@@ -183,20 +191,7 @@ type Roominfores struct {
                        InputBorderColor string `json:"input_border_color"`
                        InputSearchColor string `json:"input_search_color"`
                } `json:"web_banner_info"`
-               LolInfo struct {
-                       LolActivity struct {
-                               Status     int    `json:"status"`
-                               GuessCover string `json:"guess_cover"`
-                               VoteCover  string `json:"vote_cover"`
-                               VoteH5URL  string `json:"vote_h5_url"`
-                               VoteUseH5  bool   `json:"vote_use_h5"`
-                       } `json:"lol_activity"`
-               } `json:"lol_info"`
-               WishListInfo struct {
-                       List   []interface{} `json:"list"`
-                       Status int           `json:"status"`
-               } `json:"wish_list_info"`
-               ScoreCardInfo  interface{} `json:"score_card_info"`
+               LolInfo        interface{} `json:"lol_info"`
                PkInfo         interface{} `json:"pk_info"`
                BattleInfo     interface{} `json:"battle_info"`
                SilentRoomInfo struct {
@@ -211,10 +206,8 @@ type Roominfores struct {
                        CloseOnline  bool `json:"close_online"`
                        CloseDanmaku bool `json:"close_danmaku"`
                } `json:"switch_info"`
-               RecordSwitchInfo struct {
-                       RecordTab bool `json:"record_tab"`
-               } `json:"record_switch_info"`
-               RoomConfigInfo struct {
+               RecordSwitchInfo interface{} `json:"record_switch_info"`
+               RoomConfigInfo   struct {
                        DmText string `json:"dm_text"`
                } `json:"room_config_info"`
                GiftMemoryInfo struct {
@@ -245,46 +238,26 @@ type Roominfores struct {
                        RoomSuperChat        int `json:"room-super-chat"`
                        RoomTab              int `json:"room-tab"`
                        RoomHotRank          int `json:"room-hot-rank"`
+                       FansMedalProgress    int `json:"fans-medal-progress"`
+                       GiftBayScreen        int `json:"gift-bay-screen"`
+                       RoomEnter            int `json:"room-enter"`
+                       RoomMyIdol           int `json:"room-my-idol"`
+                       RoomTopic            int `json:"room-topic"`
+                       FansClub             int `json:"fans-club"`
+                       RoomPopularRank      int `json:"room-popular-rank"`
+                       MicUserGift          int `json:"mic_user_gift"`
+                       NewRoomAreaRank      int `json:"new-room-area-rank"`
                } `json:"new_switch_info"`
                SuperChatInfo struct {
-                       Status      int    `json:"status"`
-                       JumpURL     string `json:"jump_url"`
-                       Icon        string `json:"icon"`
-                       RankedMark  int    `json:"ranked_mark"`
-                       MessageList []struct {
-                               ID                    int    `json:"id"`
-                               UID                   int    `json:"uid"`
-                               Price                 int    `json:"price"`
-                               Rate                  int    `json:"rate"`
-                               BackgroundImage       string `json:"background_image"`
-                               BackgroundColor       string `json:"background_color"`
-                               BackgroundIcon        string `json:"background_icon"`
-                               BackgroundPriceColor  string `json:"background_price_color"`
-                               BackgroundBottomColor string `json:"background_bottom_color"`
-                               FontColor             string `json:"font_color"`
-                               Time                  int    `json:"time"`
-                               StartTime             int    `json:"start_time"`
-                               EndTime               int    `json:"end_time"`
-                               Message               string `json:"message"`
-                               TransMark             int    `json:"trans_mark"`
-                               MessageTrans          string `json:"message_trans"`
-                               Token                 string `json:"token"`
-                               Ts                    int    `json:"ts"`
-                               UserInfo              struct {
-                                       Face       string `json:"face"`
-                                       FaceFrame  string `json:"face_frame"`
-                                       Uname      string `json:"uname"`
-                                       UserLevel  int    `json:"user_level"`
-                                       GuardLevel int    `json:"guard_level"`
-                                       IsVip      int    `json:"is_vip"`
-                                       IsSvip     int    `json:"is_svip"`
-                                       IsMainVip  int    `json:"is_main_vip"`
-                               } `json:"user_info"`
-                       } `json:"message_list"`
+                       Status      int           `json:"status"`
+                       JumpURL     string        `json:"jump_url"`
+                       Icon        string        `json:"icon"`
+                       RankedMark  int           `json:"ranked_mark"`
+                       MessageList []interface{} `json:"message_list"`
                } `json:"super_chat_info"`
                OnlineGoldRankInfoV2 struct {
                        List []struct {
-                               UID        int    `json:"uid"`
+                               UID        int64  `json:"uid"`
                                Face       string `json:"face"`
                                Uname      string `json:"uname"`
                                Score      string `json:"score"`
@@ -292,6 +265,113 @@ type Roominfores struct {
                                GuardLevel int    `json:"guard_level"`
                        } `json:"list"`
                } `json:"online_gold_rank_info_v2"`
+               DmBrushInfo struct {
+                       MinTime     int `json:"min_time"`
+                       BrushCount  int `json:"brush_count"`
+                       SliceCount  int `json:"slice_count"`
+                       StorageTime int `json:"storage_time"`
+               } `json:"dm_brush_info"`
+               DmEmoticonInfo struct {
+                       IsOpenEmoticon   int `json:"is_open_emoticon"`
+                       IsShieldEmoticon int `json:"is_shield_emoticon"`
+               } `json:"dm_emoticon_info"`
+               DmTagInfo struct {
+                       DmTag           int           `json:"dm_tag"`
+                       Platform        []interface{} `json:"platform"`
+                       Extra           string        `json:"extra"`
+                       DmChronosExtra  string        `json:"dm_chronos_extra"`
+                       DmMode          []interface{} `json:"dm_mode"`
+                       DmSettingSwitch int           `json:"dm_setting_switch"`
+                       MaterialConf    interface{}   `json:"material_conf"`
+               } `json:"dm_tag_info"`
+               TopicInfo struct {
+                       TopicID   int    `json:"topic_id"`
+                       TopicName string `json:"topic_name"`
+               } `json:"topic_info"`
+               GameInfo struct {
+                       GameStatus int `json:"game_status"`
+               } `json:"game_info"`
+               WatchedShow struct {
+                       Switch       bool   `json:"switch"`
+                       Num          int    `json:"num"`
+                       TextSmall    string `json:"text_small"`
+                       TextLarge    string `json:"text_large"`
+                       Icon         string `json:"icon"`
+                       IconLocation int    `json:"icon_location"`
+                       IconWeb      string `json:"icon_web"`
+               } `json:"watched_show"`
+               TopicRoomInfo struct {
+                       InteractiveH5URL string `json:"interactive_h5_url"`
+                       Watermark        int    `json:"watermark"`
+               } `json:"topic_room_info"`
+               ShowReserveStatus bool `json:"show_reserve_status"`
+               SecondCreateInfo  struct {
+                       ClickPermission  int    `json:"click_permission"`
+                       CommonPermission int    `json:"common_permission"`
+                       IconName         string `json:"icon_name"`
+                       IconURL          string `json:"icon_url"`
+                       URL              string `json:"url"`
+               } `json:"second_create_info"`
+               PlayTogetherInfo struct {
+                       Switch   int `json:"switch"`
+                       IconList []struct {
+                               Icon    string `json:"icon"`
+                               Title   string `json:"title"`
+                               JumpURL string `json:"jump_url"`
+                               Status  int    `json:"status"`
+                       } `json:"icon_list"`
+               } `json:"play_together_info"`
+               CloudGameInfo struct {
+                       IsGaming int `json:"is_gaming"`
+               } `json:"cloud_game_info"`
+               LikeInfoV3 struct {
+                       TotalLikes    int      `json:"total_likes"`
+                       ClickBlock    bool     `json:"click_block"`
+                       CountBlock    bool     `json:"count_block"`
+                       GuildEmoText  string   `json:"guild_emo_text"`
+                       GuildDmText   string   `json:"guild_dm_text"`
+                       LikeDmText    string   `json:"like_dm_text"`
+                       HandIcons     []string `json:"hand_icons"`
+                       DmIcons       []string `json:"dm_icons"`
+                       EggshellsIcon string   `json:"eggshells_icon"`
+                       CountShowTime int      `json:"count_show_time"`
+                       ProcessIcon   string   `json:"process_icon"`
+                       ProcessColor  string   `json:"process_color"`
+               } `json:"like_info_v3"`
+               LivePlayInfo struct {
+                       ShowWidgetBanner bool `json:"show_widget_banner"`
+               } `json:"live_play_info"`
+               MultiVoice struct {
+                       SwitchStatus int           `json:"switch_status"`
+                       Members      []interface{} `json:"members"`
+               } `json:"multi_voice"`
+               PopularRankInfo struct {
+                       Rank       int    `json:"rank"`
+                       Countdown  int    `json:"countdown"`
+                       Timestamp  int    `json:"timestamp"`
+                       URL        string `json:"url"`
+                       OnRankName string `json:"on_rank_name"`
+                       RankName   string `json:"rank_name"`
+               } `json:"popular_rank_info"`
+               NewAreaRankInfo struct {
+                       Items []struct {
+                               ConfID      int    `json:"conf_id"`
+                               RankName    string `json:"rank_name"`
+                               UID         int    `json:"uid"`
+                               Rank        int    `json:"rank"`
+                               IconURLBlue string `json:"icon_url_blue"`
+                               IconURLPink string `json:"icon_url_pink"`
+                               IconURLGrey string `json:"icon_url_grey"`
+                               JumpURLLink string `json:"jump_url_link"`
+                               JumpURLPc   string `json:"jump_url_pc"`
+                               JumpURLPink string `json:"jump_url_pink"`
+                               JumpURLWeb  string `json:"jump_url_web"`
+                       } `json:"items"`
+                       RotationCycleTimeWeb int `json:"rotation_cycle_time_web"`
+               } `json:"new_area_rank_info"`
+               GiftStar struct {
+                       Show bool `json:"show"`
+               } `json:"gift_star"`
                VideoConnectionInfo interface{} `json:"video_connection_info"`
                PlayerThrottleInfo  struct {
                        Status              int `json:"status"`
@@ -304,14 +384,6 @@ type Roominfores struct {
                        Count                   int `json:"count"`
                        AnchorGuardAchieveLevel int `json:"anchor_guard_achieve_level"`
                } `json:"guard_info"`
-               HotRankInfo struct {
-                       Rank      int    `json:"rank"`
-                       Trend     int    `json:"trend"`
-                       Countdown int    `json:"countdown"`
-                       Timestamp int    `json:"timestamp"`
-                       URL       string `json:"url"`
-                       Icon      string `json:"icon"`
-                       AreaName  string `json:"area_name"`
-               } `json:"hot_rank_info"`
+               HotRankInfo interface{} `json:"hot_rank_info"`
        } `json:"data"`
-}
\ No newline at end of file
+}