Documentation
¶
Index ¶
- Constants
- Variables
- func AddSign(form map[string]string, subappType string)
- func Base64URLDecode(originalBuffer string) ([]byte, error)
- func Base64URLEncode(originalBuffer []byte) string
- func BlcpHTTPClientSign(form map[string]any)
- func BoolToTinyInt(b bool) int
- func ClientTypeFallBack(form map[string]string, clientTypeKey string)
- func EncodeInPlace(buffer []byte, inputLength int, mode int) int
- func EncodeTriplet(mp []byte, input []byte, destination []byte, destinationIndex int)
- func EnuidEncode(cuidGalaxy2 string) (string, error)
- func Fetch(_url string, _method string, _body []byte, _headers map[string]string, ...) ([]byte, error)
- func GetBDUKfromUserId(userID string) (string, error)
- func GzipDecode(data []byte) ([]byte, error)
- func ImportCertPool(caFile []byte) bool
- func InitClient(timeout time.Duration, dns string) *http.Client
- func Md5(str string) string
- func MultipartBodyBuilder(_body map[string][]byte, files ...MultipartBodyBinaryFileType) ([]byte, string, error)
- func ParseCookie(cookie string) map[string]string
- func RandomTokenBuilder(n int64) ([]byte, error)
- func Rc442(xyusMd5Str string, cbcSecKey []byte) []byte
- func RemoveLeadingZeros(data []byte) []byte
- func TinyIntToBool(t int) bool
- func VPtr[T any](anyValue T) *T
- func VariableWrapper[T any](anyValue T) T
- func When[T any](c bool, d1, d2 T) T
- func XorWords(state []int32, buffer []byte, length int)
- type AllLevelInfo
- type BB64Table
- type BLCPCore
- func (b *BLCPCore) Connect() error
- func (b *BLCPCore) EnterChatroomClient(roomID, accountType int) (*EnterChatroomClientResponse, error)
- func (b *BLCPCore) ExitChatroomClient(roomID int) (*ExitChatroomClientResponse, error)
- func (b *BLCPCore) FetchMcastMsgClient(roomID, accountType, count int, cursor int64) (*FetchMcastMsgClientResponse, error)
- func (b *BLCPCore) GenerateLcmToken() (*GenerateLcmTokenResponse, error)
- func (b *BLCPCore) GetChatRoomDetail(chatroomID int) (*GetChatRoomDetailResponse, error)
- func (b *BLCPCore) GetRoomListByFid(fid int) (*GetRoomListByFidResponse, error)
- func (b *BLCPCore) GroupChat() (any, error)
- func (b *BLCPCore) GroupChatV1() (any, error)
- func (b *BLCPCore) JoinChatRoom(chatroomID int) error
- func (b *BLCPCore) Login() error
- func (b *BLCPCore) MsgKey(bduk string) string
- func (b *BLCPCore) ParseBLCPResponse(receivedBytes []byte) (*BLCPWaitListContent, error)
- func (b *BLCPCore) QuitChatRoom(chatroomID int) error
- func (b *BLCPCore) SendChatroomMessage(chatroomID int, text string, isVIP bool, ...) (*BLCPWaitListContent, error)
- func (b *BLCPCore) SyncSend(key int64, payload []byte) (*BLCPWaitListContent, error)
- func (b *BLCPCore) SyncSendBLCPData(data *BLCPData) (*BLCPWaitListContent, error)
- type BLCPData
- type BLCPNotify
- type BLCPWaitListContent
- type BaiduUserInfoResponse
- type BatchCheckinActionResponse
- type BatchCheckinActionResponseForumListItem
- type BatchCheckinForumListResponse
- type BawuTask
- type BlcpState
- type ChatroomMessageAtData
- type Client
- func (tc *Client) AESCBCCipher() (cipher.Block, error)
- func (tc *Client) AESCBCSecKey() ([]byte, error)
- func (tc *Client) AESECBCipher() (cipher.Block, error)
- func (tc *Client) AESECBSecKey() ([]byte, error)
- func (tc *Client) C3Aid() (string, error)
- func (tc *Client) Cuid() string
- func (tc *Client) CuidGalaxy2() (string, error)
- func (tc *Client) GetAllForums() (map[int]ForumStatus, error)
- func (tc *Client) GetBaiduUserInfo() (*BaiduUserInfoResponse, error)
- func (tc *Client) GetForumDetail(fid int64) (*tbpb.GetForumDetailResIdl_DataRes, error)
- func (tc *Client) GetForumList(uid string, page int64) (*ForumListResponse[*ForumList], error)
- func (tc *Client) GetForumList2(page int64) (*ForumGuideResponse, error)
- func (tc *Client) GetForumNameShare(name string) (*ForumNameShareResponse, error)
- func (tc *Client) GetLoginQRCode() (*LoginQRCode, error)
- func (tc *Client) GetLoginResponse(tmpBDUSS string) (*LoginResponse, error)
- func (tc *Client) GetManagerInfo(fid uint64) (*tbpb.GetBawuInfoResIdl_DataRes, error)
- func (tc *Client) GetManagerStatus(portrait string, fid int64) (*IsManagerPreCheckResponse, error)
- func (tc *Client) GetManagerTasks(fid int64) (*ManagerTasksResponse, error)
- func (tc *Client) GetMobileWebIndexWithUser() (*UserInfoIncludedShortTbsResponse, error)
- func (tc *Client) GetNewPCForumCard(fid int) (*GetNewPCForumCardResponse, error)
- func (tc *Client) GetNewPCUserCard(portrait string) (*GetNewPCUserCardResponse, error)
- func (tc *Client) GetPrivateInfo(uid uint64) (*tbpb.GetPrivateInfoResIdl_ResData, error)
- func (tc *Client) GetTbs() (*TbsResponse, error)
- func (tc *Client) GetUnicastResponse(sign string) (*WrapUnicastResponse, error)
- func (tc *Client) GetUserInfoByTiebaUID(tbuid string) (*tbpb.GetUserByTiebaUidResIdl_DataRes, error)
- func (tc *Client) GetUserInfoByUsernameOrPortrait(requestType string, value string) (*TiebaPanelUserInfoResponse, error)
- func (tc *Client) GetWebForumList(page int64) (*WebForumListResponse, error)
- func (tc *Client) PostCheckinClient(kw string, fid int32) (*ClientSignResponse, error)
- func (tc *Client) PostClientBatchCheckin(fid []string) (*BatchCheckinActionResponse, error)
- func (tc *Client) PostClientBatchCheckinForumList() (*BatchCheckinForumListResponse, error)
- func (tc *Client) PostForumInfoWidget(fid int32) (any, error)
- func (tc *Client) PostSync() (*PostSyncResponse, error)
- func (tc *Client) RandomAndroidID() string
- func (tc *Client) RandomUUID() string
- func (tc *Client) ShortTbs() string
- func (tc *Client) SyncZid() (string, error)
- func (tc *Client) Tbs() string
- type ClientSignResponse
- type EnterChatroomClientResponse
- type ExitChatroomClientResponse
- type FetchMcastMsgClientResponse
- type FetchMcastMsgClientResponseMessage
- type ForumGuideResponse
- type ForumInfo
- type ForumList
- type ForumListResponse
- type ForumNameShareResponse
- type ForumStatus
- type GenerateLcmTokenResponse
- type GetChatRoomDetailResponse
- type GetNewPCForumCardResponse
- type GetNewPCUserCardResponse
- type GetRoomListByFidResponse
- type Honor
- type IsManagerPreCheckResponse
- type LoginQRCode
- type LoginResponse
- type ManagerTasksResponse
- type McastMessageTextObject
- type McastMessageTextObjectText
- type MultipartBodyBinaryFileType
- type PostSyncResponse
- type SendChatroomMessageContentText
- type SendChatroomMessageExt
- type SendChatroomMessageExtRobot
- type SendChatroomMessageUserMainData
- type SendChatroomMessageUserMainDataIcon
- type SendChatroomMessageUserMainDataText
- type SendChatroomMessageUserMainDataTextColor
- type TbsResponse
- type TiebaPanelUserInfoResponse
- type TypeCookie
- type UnicastResponse
- type UnicastResponseChannelV
- type UserInfo
- type UserInfoIncludedShortTbsResponse
- type VipInfo
- type WebForumListResponse
- type WrapUnicastResponse
Constants ¶
View Source
const ( ChatAppId = 10773430 ChatSdkVersion = 11250036 ChatVersion = "12.68.1.0" // ClientVersion->22... LcmSdkVersion = "3460016" BlcpUserAgent = "okhttp/3.11.0" BlcpPlatform = "android" )
View Source
const ( SubappTypeHarmony = "client_fe" SubappTypePC = "pc" SubappTypeClient = "client_fe" SubappTypeWise = "newwise" SubappTypeShoubaiUgc = "shoubai_ugc" SubappTypeSmallappBaidu = "smallapp" SubappTypeSmallappWeixin = "smallapp_weixin" SubappTypeSmallappQq = "smallapp_qq" ClientTypeHarmony = "8" ClientTypePC = "20" ClientTypeAndroid = "2" ClientTypeIOS = "1" // dead clients ClientTypeWindowsPhone = "3" // Windows Phone ClientTypeUWP = "4" // Windows 8 )
View Source
const BrowserUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36"
View Source
const ClientUserAgent = "tieba/" + ClientVersion
View Source
const ClientVersion = "22.6.5.1"
View Source
const ClientWidgetUserAgent = "TiebaWidgets/" + ClientVersion + " CFNetwork/3826.500.131 Darwin/24.5.0"
View Source
const LegacyClientVersion = "12.64.1.1"
View Source
const MaxBLCPPacketSize = 16 * 1024 * 1024
Variables ¶
View Source
var BB64Alphabet = []byte("qogjOuCRNkfil5p4SQ3LAmxGKZTdesvB6z_YPahMI9t80rJyHW1DEwFbc7nUVX2-")
bb64 by chatgpt && jetbrains ai
View Source
var BlcpMagic = []byte{'l', 'c', 'p', 1}
View Source
var CACertPool *x509.CertPool
View Source
var ClientSignSalt = string([]byte{116, 105, 101, 98, 97, 99, 108, 105, 101, 110, 116, 33, 33, 33})
View Source
var ClientTypeKV = map[string]string{ "harmony": ClientTypeHarmony, "pc": ClientTypePC, "android": ClientTypeAndroid, "ios": ClientTypeIOS, "wp": ClientTypeWindowsPhone, "uwp": ClientTypeUWP, }
View Source
var DefaultClient = new(http.Client)
View Source
var EmptyHeaders = make(map[string]string)
View Source
var IgnoreProxy bool
View Source
var MiniAppSignSalt = string([]byte{48, 48, 51, 57, 100, 55, 57, 100, 99, 51, 99, 99, 50, 48, 55, 53, 49, 50, 57, 55, 52, 53, 97, 51, 48, 50, 51, 55, 97, 51, 99, 52})
['newwise','shoubai_ugc','smallapp','smallapp_weixin','smallapp_qq']
View Source
var PCSignSalt = string([]byte{51, 54, 55, 55, 48, 98, 49, 102, 51, 52, 99, 57, 98, 98, 102, 50, 101, 55, 100, 49, 97, 57, 57, 100, 50, 98, 56, 50, 102, 97, 57, 101})
View Source
var TestMode bool
Functions ¶
func Base64URLDecode ¶
func Base64URLEncode ¶
func BlcpHTTPClientSign ¶
func BoolToTinyInt ¶
func ClientTypeFallBack ¶
func EncodeTriplet ¶
func EnuidEncode ¶
func GetBDUKfromUserId ¶
func GzipDecode ¶
func ImportCertPool ¶
func MultipartBodyBuilder ¶
func RandomTokenBuilder ¶
func TinyIntToBool ¶
func VariableWrapper ¶
func VariableWrapper[T any](anyValue T) T
Types ¶
type AllLevelInfo ¶
type BB64Table ¶
func BuildTable ¶
type BLCPCore ¶
type BLCPCore struct {
Client *Client
Conn net.Conn
BLCPToken string
TTL time.Duration
MessageChan chan *BLCPWaitListContent
PendingRequests *ttlcache.Cache[int64, chan *BLCPWaitListContent]
NotifyCallback func(*BLCPWaitListContent) error // <- NotifyCallback should use goroutine
Ctx context.Context
CloseSignal chan struct{}
LoginID int64
State BlcpState
}
func (*BLCPCore) EnterChatroomClient ¶
func (b *BLCPCore) EnterChatroomClient(roomID, accountType int) (*EnterChatroomClientResponse, error)
func (*BLCPCore) ExitChatroomClient ¶
func (b *BLCPCore) ExitChatroomClient(roomID int) (*ExitChatroomClientResponse, error)
func (*BLCPCore) FetchMcastMsgClient ¶
func (b *BLCPCore) FetchMcastMsgClient(roomID, accountType, count int, cursor int64) (*FetchMcastMsgClientResponse, error)
default count=30
func (*BLCPCore) GenerateLcmToken ¶
func (b *BLCPCore) GenerateLcmToken() (*GenerateLcmTokenResponse, error)
func (*BLCPCore) GetChatRoomDetail ¶
func (b *BLCPCore) GetChatRoomDetail(chatroomID int) (*GetChatRoomDetailResponse, error)
func (*BLCPCore) GetRoomListByFid ¶
func (b *BLCPCore) GetRoomListByFid(fid int) (*GetRoomListByFidResponse, error)
func (*BLCPCore) JoinChatRoom ¶
JoinChatRoom why we need this?
func (*BLCPCore) ParseBLCPResponse ¶
func (b *BLCPCore) ParseBLCPResponse(receivedBytes []byte) (*BLCPWaitListContent, error)
parsePacket will provide full data TODO bytes -> struct -> bytes
func (*BLCPCore) QuitChatRoom ¶
QuitChatRoom is not work at all!!! methodId=202
func (*BLCPCore) SendChatroomMessage ¶
func (b *BLCPCore) SendChatroomMessage(chatroomID int, text string, isVIP bool, forumLevel, growthLevel, fid, robot int, atData []ChatroomMessageAtData) (*BLCPWaitListContent, error)
default robot=-1
func (*BLCPCore) SyncSend ¶
func (b *BLCPCore) SyncSend(key int64, payload []byte) (*BLCPWaitListContent, error)
func (*BLCPCore) SyncSendBLCPData ¶
func (b *BLCPCore) SyncSendBLCPData(data *BLCPData) (*BLCPWaitListContent, error)
type BLCPData ¶
func NewBLCPData ¶
type BLCPNotify ¶
type BLCPNotify struct {
Appid int `json:"appid"`
EventList []struct {
Event string `json:"event"`
TimestampMs int `json:"timestamp_ms"`
} `json:"event_list"`
McastID int `json:"mcast_id"`
McastType int `json:"mcast_type"`
Messages []struct {
Category int `json:"category"`
Contacter int `json:"contacter"`
Content string `json:"content"`
CreateTime int `json:"create_time"`
FromUser int `json:"from_user"`
IsRead int `json:"is_read"`
McastID int `json:"mcast_id"`
MsgKey string `json:"msg_key"`
Msgid int `json:"msgid"`
OriginID int `json:"origin_id,omitempty"`
Priority int `json:"priority"`
Type int `json:"type"`
} `json:"messages"`
Method int `json:"method"`
NotifyID int `json:"notify_id"`
}
type BLCPWaitListContent ¶
type BaiduUserInfoResponse ¶
type BaiduUserInfoResponse struct {
User struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
BDUSS string `json:"BDUSS,omitempty"`
Portrait string `json:"portrait,omitempty"`
} `json:"user"`
Anti struct {
Tbs string `json:"tbs,omitempty"`
} `json:"anti,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
ErrorMsg string `json:"error_msg,omitempty"`
}
type BatchCheckinActionResponse ¶
type BatchCheckinActionResponse struct {
Info json.RawMessage `json:"info"`
ShowDialog string `json:"show_dialog"`
SignNotice string `json:"sign_notice"`
IsTimeout string `json:"is_timeout"`
TimeoutNotice string `json:"timeout_notice"`
Error struct {
Errno string `json:"errno"` // 同上,不过这个是总的
Errmsg string `json:"errmsg"`
Usermsg string `json:"usermsg"`
} `json:"error"`
ErrorCode string `json:"error_code"` // should be "0" without system error
ErrorMsg string `json:"error_msg"`
}
type BatchCheckinActionResponseForumListItem ¶
type BatchCheckinActionResponseForumListItem struct {
ForumID string `json:"forum_id"`
ForumName string `json:"forum_name"`
Signed string `json:"signed"`
IsOn string `json:"is_on"`
IsFilter string `json:"is_filter"`
SignDayCount string `json:"sign_day_count"`
CurScore string `json:"cur_score"`
Error struct {
ErrNo string `json:"err_no"` // "2280001"
Usermsg string `json:"usermsg"` // "this user is in the blacklist of this forum"
Errmsg string `json:"errmsg"` // "您尚在黑名单中,不能操作。"
} `json:"error"`
}
type BatchCheckinForumListResponse ¶
type BatchCheckinForumListResponse struct {
ErrorCode string `json:"error_code"` // "0" means no problem
ErrorMsg string `json:"error_msg"`
// Error struct {
// Errno string `json:"errno"`
// Errmsg string `json:"errmsg"`
// Usermsg string `json:"usermsg"`
// } `json:"error"`
ForumInfo []*struct {
ForumID string `json:"forum_id"`
ForumName string `json:"forum_name"`
// UserLevel string `json:"user_level"`
// UserExp string `json:"user_exp"`
// NeedExp string `json:"need_exp"`
IsSignIn string `json:"is_sign_in"`
} `json:"forum_info"`
// User struct {
// PayMemberInfo struct {
// PropsID string `json:"props_id"`
// EndTime string `json:"end_time"`
// PicURL string `json:"pic_url"`
// } `json:"pay_member_info"`
// VipInfo struct {
// CrownText string `json:"crown_text"`
// SignButtonText string `json:"sign_button_text"`
// VipIconURL string `json:"vip_icon_url"`
// } `json:"vipInfo"`
// TiebaUID string `json:"tieba_uid"`
// UnsignInfo []struct {
// Level string `json:"level"`
// Num string `json:"num"`
// } `json:"unsign_info"`
// } `json:"user"`
// CanUse string `json:"can_use"`
// ButtonContent string `json:"button_content"`
// Content string `json:"content"`
ShowDialog string `json:"show_dialog"`
SignNotice string `json:"sign_notice"`
// Title string `json:"title"`
// TextPre string `json:"text_pre"`
// TextColor string `json:"text_color"`
// TextMid string `json:"text_mid"`
// TextSuf string `json:"text_suf"`
// NumNotice string `json:"num_notice"`
Level string `json:"level"`
SignMaxNum string `json:"sign_max_num"`
Valid string `json:"valid"`
MsignStepNum string `json:"msign_step_num"`
SignNew string `json:"sign_new"`
SignMaxNumNew string `json:"sign_max_num_new"`
TodayExp string `json:"today_exp"`
}
type ChatroomMessageAtData ¶
type ChatroomMessageAtData struct {
AtType string `json:"at_type"`
AtBaiduUk string `json:"at_baidu_uk"`
AtName string `json:"at_name"`
AtVip string `json:"at_vip,omitempty"`
AtCharacter string `json:"at_character,omitempty"`
AtCharacterName string `json:"at_character_name,omitempty"`
AtPortrait string `json:"at_portrait"`
Position int `json:"position"`
}
type Client ¶
type Client struct {
Account *TypeCookie
// for client
AndroidID string
UUID string
HttpClient *http.Client
ClientID string
SampleID string
Zid string
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(cookie *TypeCookie) *Client
func (*Client) AESCBCSecKey ¶
func (*Client) AESECBSecKey ¶
func (*Client) CuidGalaxy2 ¶
CuidGalaxy2 generates CUID Galaxy 2 from device identifiers
func (*Client) GetAllForums ¶
func (tc *Client) GetAllForums() (map[int]ForumStatus, error)
func (*Client) GetBaiduUserInfo ¶
func (tc *Client) GetBaiduUserInfo() (*BaiduUserInfoResponse, error)
func (*Client) GetForumDetail ¶
func (tc *Client) GetForumDetail(fid int64) (*tbpb.GetForumDetailResIdl_DataRes, error)
func (*Client) GetForumList ¶
func (*Client) GetForumList2 ¶
func (tc *Client) GetForumList2(page int64) (*ForumGuideResponse, error)
func (*Client) GetForumNameShare ¶
func (tc *Client) GetForumNameShare(name string) (*ForumNameShareResponse, error)
func (*Client) GetLoginQRCode ¶
func (tc *Client) GetLoginQRCode() (*LoginQRCode, error)
func (*Client) GetLoginResponse ¶
func (tc *Client) GetLoginResponse(tmpBDUSS string) (*LoginResponse, error)
func (*Client) GetManagerInfo ¶
func (tc *Client) GetManagerInfo(fid uint64) (*tbpb.GetBawuInfoResIdl_DataRes, error)
func (*Client) GetManagerStatus ¶
func (tc *Client) GetManagerStatus(portrait string, fid int64) (*IsManagerPreCheckResponse, error)
func (*Client) GetManagerTasks ¶
func (tc *Client) GetManagerTasks(fid int64) (*ManagerTasksResponse, error)
func (*Client) GetMobileWebIndexWithUser ¶
func (tc *Client) GetMobileWebIndexWithUser() (*UserInfoIncludedShortTbsResponse, error)
func (*Client) GetNewPCForumCard ¶
func (tc *Client) GetNewPCForumCard(fid int) (*GetNewPCForumCardResponse, error)
func (*Client) GetNewPCUserCard ¶
func (tc *Client) GetNewPCUserCard(portrait string) (*GetNewPCUserCardResponse, error)
func (*Client) GetPrivateInfo ¶
func (tc *Client) GetPrivateInfo(uid uint64) (*tbpb.GetPrivateInfoResIdl_ResData, error)
GetPrivateInfo uid=0 is ok
func (*Client) GetTbs ¶
func (tc *Client) GetTbs() (*TbsResponse, error)
func (*Client) GetUnicastResponse ¶
func (tc *Client) GetUnicastResponse(sign string) (*WrapUnicastResponse, error)
func (*Client) GetUserInfoByTiebaUID ¶
func (tc *Client) GetUserInfoByTiebaUID(tbuid string) (*tbpb.GetUserByTiebaUidResIdl_DataRes, error)
func (*Client) GetUserInfoByUsernameOrPortrait ¶
func (tc *Client) GetUserInfoByUsernameOrPortrait(requestType string, value string) (*TiebaPanelUserInfoResponse, error)
func (*Client) GetWebForumList ¶
func (tc *Client) GetWebForumList(page int64) (*WebForumListResponse, error)
func (*Client) PostCheckinClient ¶
func (tc *Client) PostCheckinClient(kw string, fid int32) (*ClientSignResponse, error)
func (*Client) PostClientBatchCheckin ¶
func (tc *Client) PostClientBatchCheckin(fid []string) (*BatchCheckinActionResponse, error)
func (*Client) PostClientBatchCheckinForumList ¶
func (tc *Client) PostClientBatchCheckinForumList() (*BatchCheckinForumListResponse, error)
func (*Client) PostSync ¶
func (tc *Client) PostSync() (*PostSyncResponse, error)
!!! Calling this api will change the IP location !!!
func (*Client) RandomAndroidID ¶
func (*Client) RandomUUID ¶
type ClientSignResponse ¶
type ClientSignResponse struct {
UserInfo UserInfo `json:"user_info,omitempty"`
// ContriInfo []any `json:"contri_info,omitempty"`
// ServerTime string `json:"server_time,omitempty"`
// Time int `json:"time,omitempty"`
// Ctime int `json:"ctime,omitempty"`
// Logid int `json:"logid,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
ErrorMsg string `json:"error_msg,omitempty"`
}
type EnterChatroomClientResponse ¶
type EnterChatroomClientResponse struct {
RequestID int `json:"request_id"`
ErrorCode int `json:"error_code"`
ErrorMsg string `json:"error_msg"`
// TraceLocation string `json:"trace_location"`
RoomID int `json:"room_id"`
BaiduUK string `json:"baidu_uk"`
RoomInfo struct {
Appid int `json:"appid"`
RoomID int `json:"room_id"`
ChatMcastID int `json:"chat_mcast_id"`
RoomType int `json:"room_type"`
RoomName string `json:"room_name"`
RoomImage string `json:"room_image"`
RoomNotice string `json:"room_notice"`
ResourceID string `json:"resource_id"`
Ext string `json:"ext"`
State int `json:"state"`
UserCount int `json:"user_count"`
} `json:"room_info"`
UserInfo struct {
Character int `json:"character"`
CharacterName string `json:"character_name"`
Vip int `json:"vip"`
} `json:"user_info"`
}
type FetchMcastMsgClientResponse ¶
type FetchMcastMsgClientResponse struct {
// RequestID int `json:"request_id"`
ErrCode int `json:"err_code"`
ErrMsg string `json:"err_msg"`
// TraceLocation string `json:"trace_location"`
Messages *[]FetchMcastMsgClientResponseMessage `json:"messages,omitempty"`
HasMore bool `json:"has_more"`
ErrorCode int `json:"error_code"`
ErrorMsg string `json:"error_msg"`
}
type FetchMcastMsgClientResponseMessage ¶
type FetchMcastMsgClientResponseMessage struct {
Msgid int64 `json:"msgid"`
UserType int `json:"user_type"`
ContacterType int `json:"contacter_type"`
ContacterUk int `json:"contacter_uk"`
PaUID int `json:"pa_uid"`
Contacter int64 `json:"contacter"`
FromUser int64 `json:"from_user"`
Category int `json:"category"`
Content string `json:"content"`
CreateTime int `json:"create_time"`
ToUser int `json:"to_user"`
GroupID int `json:"group_id"`
McastID int64 `json:"mcast_id"`
GroupMsgid int `json:"group_msgid"`
IsRead int `json:"is_read"`
Type int `json:"type"`
Cmd int `json:"cmd"`
OriginID int `json:"origin_id"`
Appid int `json:"appid"`
MsgKey string `json:"msg_key"`
MsgExpires int `json:"msg_expires"`
BusinessType int `json:"business_type"`
}
type ForumGuideResponse ¶
type ForumGuideResponse struct {
ErrorMsg string `json:"error_msg"`
ErrorCode int `json:"error_code"`
IsLogin int `json:"is_login"`
LikeForumHasMore bool `json:"like_forum_has_more"`
LikeForum []*struct {
// HotNum int `json:"hot_num"`
// SortValue int `json:"sort_value"`
// LevelName string `json:"level_name"`
ForumName string `json:"forum_name"`
IsForbidden int `json:"is_forbidden,omitempty"`
// MemberCount int `json:"member_count"`
IsSign int `json:"is_sign"`
// ThreadNum int `json:"thread_num"`
// NeedTrans bool `json:"need_trans"`
LevelID int `json:"level_id"`
ForumID int `json:"forum_id"`
} `json:"like_forum"`
}
type ForumInfo ¶
type ForumInfo struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
FavoType string `json:"favo_type,omitempty"`
LevelID string `json:"level_id,omitempty"`
LevelName string `json:"level_name,omitempty"`
CurScore string `json:"cur_score,omitempty"`
LevelupScore string `json:"levelup_score,omitempty"`
Avatar string `json:"avatar,omitempty"`
Slogan string `json:"slogan,omitempty"`
}
type ForumListResponse ¶
type ForumListResponse[T any] struct { ForumList T `json:"forum_list,omitempty"` HasMore string `json:"has_more,omitempty"` // ServerTime string `json:"server_time,omitempty"` // Time int `json:"time,omitempty"` // Ctime int `json:"ctime,omitempty"` // Logid int `json:"logid,omitempty"` ErrorCode string `json:"error_code,omitempty"` }
type ForumNameShareResponse ¶
type ForumStatus ¶
type GetChatRoomDetailResponse ¶
type GetChatRoomDetailResponse struct {
ErrorMsg string `json:"error_msg"`
ErrorCode string `json:"error_code"`
Data struct {
BasicInfo struct {
ID string `json:"id"`
ForumID string `json:"forum_id"`
GroupID string `json:"group_id"`
Name string `json:"name"`
Avatar string `json:"avatar"`
IsDelete string `json:"is_delete"`
CreateTime string `json:"create_time"`
DiscussNum string `json:"discuss_num"`
ForumName string `json:"forum_name"`
} `json:"basic_info"`
ExtraInfo struct {
ChatroomID string `json:"chatroom_id"`
Weight string `json:"weight"`
Announce string `json:"announce"`
TalkThresholdLevel string `json:"talk_threshold_level"`
ChatroomViewType string `json:"chatroom_view_type"`
ForumEntranceSwitch string `json:"forum_entrance_switch"`
ForumEntranceCloseType string `json:"forum_entrance_close_type"`
IsFreezing string `json:"is_freezing"`
FreezingType string `json:"freezing_type"`
IsTalkBanned string `json:"is_talk_banned"`
AnnounceOpTime string `json:"announce_op_time"`
OpTime string `json:"op_time"`
TalkType string `json:"talk_type"`
} `json:"extra_info"`
UserInfo struct {
IsCanViewChatroom string `json:"is_can_view_chatroom"`
IsBeenTalkBanned string `json:"is_been_talk_banned"`
IsSubscription string `json:"is_subscription"`
IdentityRole string `json:"identity_role"`
ForumLevel string `json:"forum_level"`
UserGrowthLevel string `json:"user_growth_level"`
IsCanReaction string `json:"is_can_reaction"`
BazhuType string `json:"bazhu_type"`
BubbleInfo struct {
Type string `json:"type"`
ImgInfo struct {
AndroidLeft string `json:"android_left"`
AndroidRight string `json:"android_right"`
IosLeft string `json:"ios_left"`
IosRight string `json:"ios_right"`
AndroidLeftDark string `json:"android_left_dark"`
AndroidRightDark string `json:"android_right_dark"`
IosLeftDark string `json:"ios_left_dark"`
IosRightDark string `json:"ios_right_dark"`
} `json:"img_info"`
EndTime string `json:"end_time"`
ColorInfo struct {
TextColor string `json:"text_color"`
TextColorDark string `json:"text_color_dark"`
AtTextColor string `json:"at_text_color"`
AtTextColorDark string `json:"at_text_color_dark"`
} `json:"color_info"`
JumpURL string `json:"jump_url"`
ID string `json:"id"`
} `json:"bubble_info"`
MainData []struct {
Type string `json:"type"`
Text *struct {
Str string `json:"str"`
Priority string `json:"priority"`
ShortEnable string `json:"short_enable"`
ShortLength string `json:"short_length"`
ShortPriority string `json:"short_priority"`
Suffix string `json:"suffix"`
Type string `json:"type"`
} `json:"text,omitempty"`
Icon *struct {
URL string `json:"url"`
Width string `json:"width"`
Height string `json:"height"`
Priority string `json:"priority"`
Type string `json:"type"`
Schema string `json:"schema"`
} `json:"icon,omitempty"`
} `json:"main_data"`
} `json:"user_info"`
Bots struct {
Guide string `json:"guide"`
BotList []struct {
Scene string `json:"scene"`
Guide string `json:"guide"`
AtGuide string `json:"at_guide"`
Skill []struct {
Type string `json:"type"`
Name string `json:"name"`
Alias string `json:"alias"`
Desc string `json:"desc"`
Exp string `json:"exp"`
Exec string `json:"exec"`
CallType string `json:"call_type"`
Keyboard string `json:"keyboard"`
Items []struct {
Name string `json:"name"`
Value string `json:"value"`
Opts []struct {
Name string `json:"name"`
Default string `json:"default"`
} `json:"opts"`
Type string `json:"type"`
} `json:"items"`
Version struct {
Ios string `json:"ios"`
Android string `json:"android"`
} `json:"version"`
IsShow string `json:"is_show"`
} `json:"skill"`
User struct {
Name string `json:"name"`
Portrait string `json:"portrait"`
NameShow string `json:"name_show"`
Uk string `json:"uk"`
RobotRole string `json:"robot_role"`
ForumLevel string `json:"forum_level"`
} `json:"user"`
} `json:"bot_list"`
} `json:"bots"`
HasChated string `json:"has_chated"`
TextIsShow string `json:"text_is_show"`
ShowText string `json:"show_text"`
MaskInfo []struct {
MaskID string `json:"mask_id"`
Content string `json:"content"`
} `json:"mask_info"`
Conf struct {
ChatroomResourceMaxTimeDelay string `json:"chatroom_resource_max_time_delay"`
} `json:"conf"`
} `json:"data"`
}
type GetNewPCForumCardResponse ¶
type GetNewPCForumCardResponse struct {
// Ctime string `json:"ctime"`
Data struct {
Activityhead *struct {
HeadImgs []struct {
ImgURL string `json:"img_url"`
Type int `json:"type"`
} `json:"head_imgs"`
} `json:"activityhead,omitempty"`
Forum *struct {
ID int `json:"id"`
Name string `json:"name"`
Avatar string `json:"avatar"`
MemberNum int `json:"member_num"`
PostNum int `json:"post_num"`
RecommendTip string `json:"recommend_tip"`
Desc string `json:"desc"`
Slogan string `json:"slogan"`
ForumCtime int `json:"forum_ctime"`
} `json:"forum,omitempty"`
Manager *struct {
NameShow string `json:"name_show"`
Portrait string `json:"portrait"`
} `json:"manager,omitempty"`
} `json:"data"`
ErrorCode int `json:"error_code"`
ErrorMsg string `json:"error_msg,omitempty"`
// Logid string `json:"logid"`
// ServerTime int `json:"server_time"`
Time int `json:"time"`
}
type GetNewPCUserCardResponse ¶
type GetNewPCUserCardResponse struct {
No int `json:"no"`
Error string `json:"error"`
Data struct {
UserInfo *struct {
NameShow string `json:"name_show"`
Portrait string `json:"portrait"`
TotalAgreeNum int `json:"total_agree_num"`
ConcernNum int `json:"concern_num"`
FansNum int `json:"fans_num"`
HasConcerned int `json:"has_concerned"`
TiebaUID string `json:"tieba_uid"`
TbAge string `json:"tb_age"`
IPAddress string `json:"ip_address"`
Intro string `json:"intro"`
IconInfo []struct {
Name string `json:"name"`
Weight int `json:"weight"`
URL string `json:"url"`
Icon string `json:"icon"`
Value int `json:"value"`
} `json:"icon_info"`
Sex int `json:"sex"`
} `json:"user_info,omitempty"`
} `json:"data"`
// Ctime string `json:"ctime"`
ErrorCode int `json:"error_code"`
ErrorMsg string `json:"error_msg,omitempty"`
// Logid string `json:"logid"`
// ServerTime int `json:"server_time"`
Time int `json:"time"`
}
type GetRoomListByFidResponse ¶
type GetRoomListByFidResponse struct {
Data struct {
MidGroupID string `json:"mid_group_id"`
List []struct {
GroupName string `json:"group_name"`
GroupID string `json:"group_id"`
GroupWeight string `json:"group_weight"`
RoomList []struct {
RoomID string `json:"room_id"`
RoomInfo struct {
ForumID string `json:"forum_id"`
ForumName string `json:"forum_name"`
GroupID string `json:"group_id"`
Name string `json:"name"`
Avatar string `json:"avatar"`
UnreadNum string `json:"unread_num"`
} `json:"room_info"`
MsgInfo struct {
FromUID string `json:"from_uid"`
FromName string `json:"from_name"`
Content string `json:"content"`
MsgID string `json:"msg_id"`
MsgTime string `json:"msg_time"`
SpecialMsg string `json:"special_msg"`
SpecialMsgType string `json:"special_msg_type"`
} `json:"msg_info"`
JumpURL string `json:"jump_url"`
RoomWeight string `json:"room_weight"`
} `json:"room_list"`
} `json:"list"`
} `json:"data"`
ErrorMsg string `json:"error_msg"`
ErrorCode string `json:"error_code"`
}
type Honor ¶
type Honor struct {
Manager struct {
Assist struct {
Count int `json:"count,omitempty"`
ForumList []string `json:"forum_list,omitempty"`
} `json:"assist,omitempty"`
Manager struct {
Count int `json:"count,omitempty"`
ForumList []string `json:"forum_list,omitempty"`
} `json:"manager,omitempty"`
} `json:"manager,omitempty"`
Grade map[string]struct {
Count int `json:"count,omitempty"`
ForumList []string `json:"forum_list,omitempty"`
} `json:"grade,omitempty"`
Novice int `json:"novice,omitempty"`
}
type LoginQRCode ¶
type LoginResponse ¶
type LoginResponse struct {
Code string `json:"code,omitempty"`
Message string `json:"message,omitempty"`
Data struct {
Session struct {
Bduss string `json:"bduss,omitempty"`
StokenList string `json:"stokenList,omitempty"`
} `json:"session,omitempty"`
User struct {
Username string `json:"username,omitempty"`
DisplayName string `json:"displayName,omitempty"`
} `json:"user,omitempty"`
} `json:"data,omitempty"`
}
type ManagerTasksResponse ¶
type McastMessageTextObject ¶
type McastMessageTextObject struct {
Text string `json:"text"`
}
type McastMessageTextObjectText ¶
type McastMessageTextObjectText struct {
RoomID string `json:"room_id"`
Type string `json:"type"`
BaiduUk string `json:"baidu_uk"`
Character string `json:"character"`
CharacterName string `json:"character_name"`
Vip string `json:"vip"`
Name string `json:"name"`
Portrait string `json:"portrait"`
ContentType string `json:"content_type"`
ContentBody string `json:"content_body"`
AtData []struct {
AtType string `json:"at_type"`
AtBaiduUk string `json:"at_baidu_uk"`
AtName string `json:"at_name"`
AtVip string `json:"at_vip"`
AtCharacter string `json:"at_character"`
AtCharacterName string `json:"at_character_name"`
AtPortrait string `json:"at_portrait"`
} `json:"at_data"`
Ext string `json:"ext"`
}
type PostSyncResponse ¶
type SendChatroomMessageContentText ¶
type SendChatroomMessageContentText struct {
RoomID string `json:"room_id"`
Type string `json:"type"`
ToUID string `json:"to_uid"`
Vip string `json:"vip"`
Name string `json:"name"`
Portrait string `json:"portrait"`
ContentType string `json:"content_type"`
ContentBody string `json:"content_body"`
Src string `json:"src"`
BaiduUk string `json:"baidu_uk"`
Ext string `json:"ext"`
AtData *[]ChatroomMessageAtData `json:"at_data,omitempty"`
}
type SendChatroomMessageExt ¶
type SendChatroomMessageExt struct {
ForumID int `json:"forum_id"`
Level int `json:"level"`
Content struct {
RobotParams *SendChatroomMessageExtRobot `json:"robot_params,omitempty"`
} `json:"content"`
From string `json:"from"`
Portrait string `json:"portrait"`
MainData []SendChatroomMessageUserMainData `json:"main_data"`
Type int `json:"type"`
UserName string `json:"user_name"`
IsSysMsg int `json:"is_sys_msg"`
Version string `json:"version"`
RobotRole int `json:"robot_role"`
Role int `json:"role"`
SendStatus int `json:"send_status"`
SessionID int `json:"session_id"`
}
type SendChatroomMessageUserMainData ¶
type SendChatroomMessageUserMainData struct {
Type int `json:"type"`
Text *SendChatroomMessageUserMainDataText `json:"text,omitempty"`
Icon *SendChatroomMessageUserMainDataIcon `json:"icon,omitempty"`
}
type SendChatroomMessageUserMainDataText ¶
type SendChatroomMessageUserMainDataText struct {
Str string `json:"str"`
Priority int `json:"priority"`
ShortEnable int `json:"short_enable"`
ShortLength int `json:"short_length"`
ShortPriority int `json:"short_priority"`
Suffix string `json:"suffix"`
Type string `json:"type"`
TextColor *SendChatroomMessageUserMainDataTextColor `json:"text_color,omitempty"`
}
type TbsResponse ¶
type TiebaPanelUserInfoResponse ¶
type TiebaPanelUserInfoResponse struct {
No int `json:"no,omitempty"`
Error string `json:"error,omitempty"`
Data struct {
Name string `json:"name,omitempty"`
// Identity any `json:"identity,omitempty"`
NameShow string `json:"name_show,omitempty"`
ShowNickname string `json:"show_nickname,omitempty"`
ProfessionManagerNickName string `json:"profession_manager_nick_name,omitempty"`
Portrait string `json:"portrait,omitempty"`
TbAge json.RawMessage `json:"tb_age,omitempty"`
PostNum json.RawMessage `json:"post_num,omitempty"`
Honor json.RawMessage `json:"honor,omitempty"`
VipInfo struct {
// AScore string `json:"a_score"`
ETime string `json:"e_time"`
// ExtScore string `json:"ext_score"`
IconURL string `json:"icon_url"`
IconURLNew string `json:"icon_url_new"`
// NScore int `json:"n_score"`
STime string `json:"s_time"`
} `json:"vipInfo"`
TbVip bool `json:"tb_vip,omitempty"`
FollowedCount json.RawMessage `json:"followed_count,omitempty"`
} `json:"data,omitempty"`
}
type TypeCookie ¶
type UnicastResponse ¶
type UnicastResponseChannelV ¶
type UserInfo ¶
type UserInfo struct {
UserID string `json:"user_id,omitempty"`
IsSignIn string `json:"is_sign_in,omitempty"`
UserSignRank string `json:"user_sign_rank,omitempty"`
SignTime string `json:"sign_time,omitempty"`
ContSignNum string `json:"cont_sign_num,omitempty"`
TotalSignNum string `json:"total_sign_num,omitempty"`
CoutTotalSingNum string `json:"cout_total_sing_num,omitempty"`
HunSignNum string `json:"hun_sign_num,omitempty"`
TotalResignNum string `json:"total_resign_num,omitempty"`
IsOrgName string `json:"is_org_name,omitempty"`
SignBonusPoint string `json:"sign_bonus_point,omitempty"`
MissSignNum string `json:"miss_sign_num,omitempty"`
LevelName string `json:"level_name,omitempty"`
LevelupScore string `json:"levelup_score,omitempty"`
AllLevelInfo []AllLevelInfo `json:"all_level_info,omitempty"`
LastLevelScore string `json:"last_level_score,omitempty"`
LastScoreLeft string `json:"last_score_left,omitempty"`
LastLevelName string `json:"last_level_name,omitempty"`
LastLevel string `json:"last_level,omitempty"`
}
type UserInfoIncludedShortTbsResponse ¶
type UserInfoIncludedShortTbsResponse struct {
No int `json:"no"`
Error string `json:"error"`
Data struct {
ID int `json:"id"`
Name string `json:"name"`
// NameShow string `json:"name_show"`
// NameLink any `json:"name_link"`
IsLogin bool `json:"is_login"`
// NoUn string `json:"no_un"`
// Mobilephone string `json:"mobilephone"`
// Email string `json:"email"`
// IsHalfUser int `json:"is_half_user"`
// TempName string `json:"temp_name"`
// SourceID int `json:"source_id"`
// IsVerify bool `json:"is_verify"`
Portrait string `json:"portrait"`
UID int `json:"uid"`
// Sid string `json:"sid"`
// LikeForumNum int `json:"like_forum_num"`
// PostNum int `json:"post_num"`
// ConcernNum int `json:"concern_num"`
// FansNum int `json:"fans_num"`
// Intro string `json:"intro"`
// PortraitURL string `json:"portrait_url"`
// UserSex int `json:"user_sex"`
// IsBusinessAccount int `json:"is_business_account"`
VipInfo struct {
// AScore string `json:"a_score"`
ETime string `json:"e_time"`
} `json:"vipInfo"`
Tbs string `json:"tbs"`
ItbTbs string `json:"itb_tbs"`
} `json:"data"`
}
type VipInfo ¶
type VipInfo struct {
AScore int `json:"a_score,omitempty"`
ETime string `json:"e_time,omitempty"`
ExtScore string `json:"ext_score,omitempty"`
IconURL string `json:"icon_url,omitempty"`
NScore int `json:"n_score,omitempty"`
STime string `json:"s_time,omitempty"`
VLevel int `json:"v_level,omitempty"`
VStatus string `json:"v_status,omitempty"`
YScore int `json:"y_score,omitempty"`
}
type WebForumListResponse ¶
type WebForumListResponse struct {
Data struct {
LikeForum struct {
List []*struct {
Avatar string `json:"avatar,omitempty"`
ForumID int `json:"forum_id,omitempty"`
ForumName string `json:"forum_name,omitempty"`
HotNum int `json:"hot_num,omitempty"`
IsBrandForum int `json:"is_brand_forum,omitempty"`
LevelID int `json:"level_id,omitempty"`
} `json:"list,omitempty"`
Page struct {
CurPage int `json:"cur_page,omitempty"`
TotalPage int `json:"total_page,omitempty"`
} `json:"page,omitempty"`
} `json:"like_forum,omitempty"`
// Tokens struct {
// BottomBanner string `json:"bottom_banner,omitempty"`
// BottomLayer string `json:"bottom_layer,omitempty"`
// IndexFooterClientDown string `json:"index_footer_client_down,omitempty"`
// IndexMessageIcon string `json:"index_message_icon,omitempty"`
// } `json:"tokens,omitempty"`
// UbsAbtestConfig []struct {
// Sid string `json:"sid,omitempty"`
// } `json:"ubs_abtest_config,omitempty"`
// UbsSampleIds string `json:"ubs_sample_ids,omitempty"`
UserInfo struct {
ID int `json:"id,omitempty"`
IsLogin int `json:"is_login,omitempty"`
} `json:"user_info,omitempty"`
} `json:"data,omitempty"`
Errmsg string `json:"errmsg,omitempty"`
Errno int `json:"errno,omitempty"`
}
type WrapUnicastResponse ¶
type WrapUnicastResponse struct {
ChannelV *UnicastResponseChannelV `json:"channel_v,omitempty"`
UnicastResponse
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.