summaryrefslogtreecommitdiff
path: root/bilibili/room_profile.go
diff options
context:
space:
mode:
Diffstat (limited to 'bilibili/room_profile.go')
-rw-r--r--bilibili/room_profile.go86
1 files changed, 86 insertions, 0 deletions
diff --git a/bilibili/room_profile.go b/bilibili/room_profile.go
new file mode 100644
index 0000000..d75d447
--- /dev/null
+++ b/bilibili/room_profile.go
@@ -0,0 +1,86 @@
+package bilibili
+
+import (
+ "bilibili-livestream-archiver/common"
+ "fmt"
+)
+
+type roomProfile struct {
+ UID int `json:"uid"`
+ RoomID int `json:"room_id"`
+ ShortID int `json:"short_id"`
+ Attention int `json:"attention"`
+ Online int `json:"online"`
+ IsPortrait bool `json:"is_portrait"`
+ Description string `json:"description"`
+ LiveStatus int `json:"live_status"`
+ AreaID int `json:"area_id"`
+ ParentAreaID int `json:"parent_area_id"`
+ ParentAreaName string `json:"parent_area_name"`
+ OldAreaID int `json:"old_area_id"`
+ Background string `json:"background"`
+ Title string `json:"title"`
+ UserCover string `json:"user_cover"`
+ Keyframe string `json:"keyframe"`
+ IsStrictRoom bool `json:"is_strict_room"`
+ LiveTime string `json:"live_time"`
+ Tags string `json:"tags"`
+ IsAnchor int `json:"is_anchor"`
+ RoomSilentType string `json:"room_silent_type"`
+ RoomSilentLevel int `json:"room_silent_level"`
+ RoomSilentSecond int `json:"room_silent_second"`
+ AreaName string `json:"area_name"`
+ Pendants string `json:"pendants"`
+ AreaPendants string `json:"area_pendants"`
+ HotWords []string `json:"hot_words"`
+ HotWordsStatus int `json:"hot_words_status"`
+ Verify string `json:"verify"`
+ NewPendants struct {
+ Frame struct {
+ Name string `json:"name"`
+ Value string `json:"value"`
+ Position int `json:"position"`
+ Desc string `json:"desc"`
+ Area int `json:"area"`
+ AreaOld int `json:"area_old"`
+ BgColor string `json:"bg_color"`
+ BgPic string `json:"bg_pic"`
+ UseOldArea bool `json:"use_old_area"`
+ } `json:"frame"`
+ Badge struct {
+ Name string `json:"name"`
+ Position int `json:"position"`
+ Value string `json:"value"`
+ Desc string `json:"desc"`
+ } `json:"badge"`
+ MobileFrame struct {
+ Name string `json:"name"`
+ Value string `json:"value"`
+ Position int `json:"position"`
+ Desc string `json:"desc"`
+ Area int `json:"area"`
+ AreaOld int `json:"area_old"`
+ BgColor string `json:"bg_color"`
+ BgPic string `json:"bg_pic"`
+ UseOldArea bool `json:"use_old_area"`
+ } `json:"mobile_frame"`
+ MobileBadge interface{} `json:"mobile_badge"`
+ } `json:"new_pendants"`
+ UpSession string `json:"up_session"`
+ PkStatus int `json:"pk_status"`
+ PkID int `json:"pk_id"`
+ BattleID int `json:"battle_id"`
+ AllowChangeAreaTime int `json:"allow_change_area_time"`
+ AllowUploadCoverTime int `json:"allow_upload_cover_time"`
+ StudioInfo struct {
+ Status int `json:"status"`
+ MasterList []interface{} `json:"master_list"`
+ } `json:"studio_info"`
+}
+
+type RoomProfileResponse = BaseResponse[roomProfile]
+
+func (b Bilibili) GetRoomProfile(roomId common.RoomId) (resp RoomProfileResponse, err error) {
+ url := fmt.Sprintf("https://api.live.bilibili.com/room/v1/Room/get_info?room_id=%d", roomId)
+ return callGet[RoomProfileResponse](b, url)
+}