From: qydysky <32743305+qydysky@users.noreply.github.com> Date: Sun, 15 Jan 2023 04:19:56 +0000 (+0800) Subject: 人气榜 X-Git-Tag: v0.5.11~58 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=174a5e341cc010d2fe00759f3c0afcd7f61881a4;p=bili_danmu%2F.git 人气榜 --- diff --git a/F/api.go b/F/api.go index 88ecddb..24de853 100644 --- 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 } diff --git a/Json/NEPTUNE_IS_MY_WAIFU.go b/Json/NEPTUNE_IS_MY_WAIFU.go index 42f7dfe..8b1520f 100644 --- a/Json/NEPTUNE_IS_MY_WAIFU.go +++ b/Json/NEPTUNE_IS_MY_WAIFU.go @@ -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 { diff --git a/Json/roomInfoRes.go b/Json/roomInfoRes.go index ecab38a..669575b 100644 --- a/Json/roomInfoRes.go +++ b/Json/roomInfoRes.go @@ -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 +}