package model import ( "net/url" xtime "go-common/library/time" ) // ChannelInfoResult . type ChannelInfoResult struct { *CommonResponse Data map[int64]*ArchiveChannelData } // ArchiveChannelData . type ArchiveChannelData struct { Tids []int64 `json:"tids"` ChannelMap map[int64]*Channel `json:"channels"` Archive *Archive `json:"-"` } // Channel . type Channel struct { //Tid int64 `json:"tid"` TName string `json:"tname"` //HitRule string `json:"hit_rule"` //HitNames []string `json:"hit_names"` HitRules []string `json:"hit_rules"` Archive *Archive `json:"archive"` } // Review review struct // http://info.bilibili.co/pages/viewpage.action?pageId=5417343 type Review struct { ReviewID int64 `json:"review_id"` Type int8 `json:"type"` Mid int64 `json:"mid"` MediaName string `json:"media_name"` Title string `json:"title"` Content string `json:"content"` Status int8 `json:"status"` IsDelete int8 `json:"is_delete"` CTime xtime.Time `json:"ctime"` MTime xtime.Time `json:"mtime"` TypeName string `json:"type_name"` Author string `json:"author"` Composer *Account `json:"-"` } // MultiReviewInfoResult response of multi review info api type MultiReviewInfoResult struct { Code int `json:"code"` Result map[int64]*Review `json:"result"` Message string `json:"message"` TTL int64 `json:"ttl"` } // SpecialTag . type SpecialTag struct { MID int64 `json:"mid"` GroupTag string `json:"group_tag"` BGColor string `json:"bg_color"` FontColor string `json:"font_color"` GroupID int `json:"group_id"` } // UperSpecial . // http://info.bilibili.co/pages/viewpage.action?pageId=8479274 type UperSpecial struct { Code int `json:"code"` Message string `json:"message"` TTL int64 `json:"ttl"` Data struct { Page Page `json:"page"` Items []*SpecialTag `json:"items"` } `json:"data"` } // Account account info struct // http://info.bilibili.co/pages/viewpage.action?pageId=8465956#V3HTTP接口-用户全量信息含计数ProfileStat // ignore unused field type Account struct { Mid int64 `json:"mid"` Name string `json:"name"` Rank int32 `json:"rank"` Follower int64 `json:"follower"` Official *Official `json:"official"` SpecialTag []*SpecialTag `json:"special_tag"` } // Official . type Official struct { Role int8 `json:"role"` } // Relation . // http://info.bilibili.co/pages/viewpage.action?pageId=8742464 type Relation struct { Follower int `json:"follower"` } // AccountInfosResult response of account info api type AccountInfosResult struct { Code int `json:"code"` Data *Account `json:"data"` Message string `json:"message"` TTL int64 `json:"ttl"` } // ArchiveComplainGroup is the model for archvie appeal group view type ArchiveComplainGroup struct { Group Archive *Archive `json:"archive"` ChallengeTags ChallTagSlice `json:"challenge_tags"` } // ArchiveAppealGroup is the model for archvie appeal group view type ArchiveAppealGroup struct { ArchiveComplainGroup // Appeal Related Cid int64 `json:"cid"` AppealReason string `json:"appeal_reason"` AppealAttachments []string `json:"appeal_attachments"` } // ArchiveListPage is the model for archive list result type ArchiveListPage struct { Items interface{} `json:"items"` Page *Page `json:"page"` } // Archive is archive info struct // http://info.bilibili.co/pages/viewpage.action?pageId=3686646 type Archive struct { Author string `json:"author"` State int32 `json:"state"` Mid int64 `json:"mid"` TypeID int32 `json:"tid"` Type string `json:"type"` Title string `json:"title"` RejectReason string `json:"reject_reason"` Composer *Account `json:"-"` OPName string `json:"op_name"` OPContent string `json:"op_content"` OPRemark string `json:"op_remark"` } // ArchiveResult is response of archive info api type ArchiveResult struct { *Archive `json:"archive"` } // MultiArchiveInfoResult is response of multi archive info api type MultiArchiveInfoResult struct { Code int `json:"code"` Data map[int64]*ArchiveResult `json:"data"` Message string `json:"message"` TTL int64 `json:"ttl"` } // ArchiveType archive type struct type ArchiveType struct { ID int64 `json:"id"` PID int64 `json:"pid"` Name string `json:"name"` Description string `json:"description"` } // ArchiveTypeResult response of archive type api type ArchiveTypeResult struct { Code int `json:"code"` Data map[int32]*ArchiveType `json:"data"` Message string `json:"message"` TTL int64 `json:"ttl"` } // FixAttachments will fix attachments url as user friendly // ignore https case // FIXME: this should be removed after attachment url is be normed func (ag *ArchiveAppealGroup) FixAttachments() { if ag.AppealAttachments == nil { return } fixed := make([]string, 0, len(ag.AppealAttachments)) for _, a := range ag.AppealAttachments { u, err := url.Parse(a) if err != nil { continue } u.Scheme = "http" fixed = append(fixed, u.String()) } ag.AppealAttachments = fixed } // CreditMeta . type CreditMeta struct { *Business Producer *Account `json:"producer"` } // BlockInfoResp . type BlockInfoResp struct { *CommonResponse Data *struct { Mid int64 `json:"mid"` Status int64 `json:"status"` StartTime int64 `json:"start_time"` EndTime int64 `json:"end_time"` BlockedSum int64 `json:"blocked_sum"` } `json:"data"` } // BlockNumResp . type BlockNumResp struct { *CommonResponse Data *struct { BlockedSum int64 `json:"blockedSum"` } `json:"data"` } // BlockCaseAdd . // http://info.bilibili.co/pages/viewpage.action?pageId=5417571 type BlockCaseAdd struct { Aid int64 `json:"aid"` Mid int64 `json:"mid"` Operator string `json:"operator"` OperID int64 `json:"oper_id"` OriginType int64 `json:"origin_type"` OriginContent string `json:"origin_content"` OriginTitle string `json:"origin_title"` OriginURL string `json:"origin_url"` ReasonType int64 `json:"reason_type"` Oid int64 `json:"oid"` RpID int64 `json:"rp_id"` TagID int64 `json:"tag_id"` Type int64 `json:"type"` Page int64 `json:"page"` BusinessTime int64 `json:"business_time"` }