mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 08:49:40 -05:00
`TikTokEventListener` new method of listening events see it at TestApplication/ListenerExample.java Bugs: - Fixed bug: Websocket was sending ping after it was closed
2094 lines
48 KiB
Protocol Buffer
2094 lines
48 KiB
Protocol Buffer
syntax = "proto3";
|
|
package TikTok;
|
|
|
|
/**
|
|
|
|
This Proto-Schema has been hand-written from
|
|
the current C#-Classes in TikTokLiveSharp.
|
|
|
|
These objects are reverse-engineered from the Server-Messages and are only partially understood:
|
|
- Many of the values are simply called Data{X} as their value is unknown.
|
|
- There are many Timestamps labeled Timestamp{X} as it's unsure which time-value they reflect.
|
|
These are all UNIX-timestamps close to present time.
|
|
- For each (int-)value a relevant size has been picked based on read values
|
|
Some of the uint32-values could potentially be interpreted as boolean types or enums
|
|
|
|
If you have any data to add or contexts/names you can fill
|
|
please add an issue to the Github: https://github.com/frankvHoof93/TikTokLiveSharp
|
|
|
|
*/
|
|
|
|
option java_package = "io.github.jwdeveloper.tiktok.messages";
|
|
option java_multiple_files = true;
|
|
|
|
/**
|
|
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
GENERIC MESSAGES
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
|
|
*/
|
|
|
|
// Acknowledgement-Message for Websocket-Connection
|
|
message WebcastWebsocketAck {
|
|
uint64 id = 2;
|
|
string type = 7;
|
|
}
|
|
|
|
// Websocket-Message as sent by TikTok-Server (outer structure)
|
|
message WebcastWebsocketMessage {
|
|
uint32 data1 = 1;
|
|
uint64 id = 2;
|
|
uint32 data2 = 3;
|
|
uint32 data3 = 4;
|
|
repeated MessageData connectiondata = 5; // CompressionType, ServerTime, etc
|
|
WebsocketMessageDetails data4 = 6; // Unknown additional details
|
|
string type = 7; // "hb" for heartbeat, "msg" for messages
|
|
bytes binary = 8; // Response
|
|
|
|
message MessageData {
|
|
string datatype = 1;
|
|
string value = 2;
|
|
}
|
|
|
|
message WebsocketMessageDetails {
|
|
uint32 data1 = 14;
|
|
}
|
|
}
|
|
|
|
// Response from TikTokServer. Container for Messages
|
|
message WebcastResponse {
|
|
repeated Message messages = 1;
|
|
string cursor = 2;
|
|
int32 fetchInterval = 3;
|
|
uint64 serverTimestamp = 4;
|
|
string ackIds = 5;
|
|
int32 fetchType = 6; // 1 = websocket, 2 = long-polling
|
|
repeated WebsocketRouteParam socketParams = 7;
|
|
int32 heartbeatDuration = 8;
|
|
bool needsAck = 9;
|
|
string socketUrl = 10;
|
|
|
|
// Server-Message. Binary will deserialize into specific message
|
|
message Message {
|
|
string type =1 ; // Message(Class)Name
|
|
bytes binary = 2; // Data for Message
|
|
}
|
|
|
|
message WebsocketRouteParam {
|
|
string name = 1;
|
|
string value = 2;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
TikTok-Objects
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
|
|
*/
|
|
|
|
// Container for uint-Data
|
|
message DataContainer {
|
|
uint64 data1 = 1;
|
|
uint32 data2 = 2;
|
|
uint32 data3 = 3;
|
|
uint32 data4 = 4;
|
|
uint32 data5 = 5;
|
|
uint32 data6 = 6;
|
|
uint32 data7 = 7;
|
|
uint32 data8 = 8;
|
|
uint32 data9 = 9;
|
|
}
|
|
|
|
// Links 2 Ids
|
|
message IdContainer {
|
|
uint64 id1 = 1;
|
|
uint64 id2 = 2;
|
|
}
|
|
|
|
// Links IDs & data
|
|
message IdData
|
|
{
|
|
string data1 = 1;
|
|
string id1 = 2;
|
|
string data2 = 3;
|
|
string id2 = 4;
|
|
}
|
|
|
|
// Container for Strings
|
|
message StringData {
|
|
string data1 = 1;
|
|
string data2 = 2;
|
|
}
|
|
|
|
// Links Data & Timestamp
|
|
message TimeData {
|
|
uint32 data = 1;
|
|
uint64 timeStamp = 2;
|
|
uint64 timeStamp2 = 3;
|
|
}
|
|
|
|
// Container for multiple Timestamps
|
|
message TimeStampContainer {
|
|
uint64 timestamp1 = 1;
|
|
uint64 timestamp2 = 2;
|
|
uint64 timestamp3 = 3;
|
|
}
|
|
|
|
// Type & Value
|
|
message TypeValue {
|
|
string type = 1;
|
|
uint32 data = 2;
|
|
}
|
|
|
|
message UserContainer {
|
|
User user = 1;
|
|
uint32 data1 = 2;
|
|
}
|
|
|
|
message ValueLabel {
|
|
uint32 data = 1;
|
|
string label = 2;
|
|
string label2 = 3;
|
|
string label3 = 11;
|
|
}
|
|
|
|
// @Text
|
|
message Text {
|
|
string key = 1;
|
|
string defaultPattern = 2;
|
|
TextFormat defaultFormat = 3;
|
|
repeated TextPiece piecesList = 4;
|
|
|
|
message TextPiece {
|
|
int32 type = 1;
|
|
TextFormat format = 2;
|
|
string stringValue = 11;
|
|
TextPieceUser userValue = 21;
|
|
TextPieceGift giftValue = 22;
|
|
TextPiecePatternRef patternRefValue = 24;
|
|
}
|
|
|
|
message TextFormat {
|
|
string color = 1;
|
|
bool bold = 2;
|
|
bool italic = 3;
|
|
int32 weight = 4;
|
|
int32 italicAngle = 5;
|
|
int32 fontSize = 6;
|
|
bool useHeighLightColor = 7;
|
|
bool useRemoteClor = 8;
|
|
}
|
|
|
|
message TextPieceGift {
|
|
int64 giftId = 1;
|
|
// PatternRef nameRef = 2;
|
|
// ShowType showType = 3; // Enum
|
|
int64 colorId = 4;
|
|
}
|
|
|
|
message TextPiecePatternRef {
|
|
string key = 1;
|
|
string defaultPattern = 2;
|
|
}
|
|
|
|
message TextPieceUser {
|
|
User user = 1;
|
|
bool withColon = 2;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @Image
|
|
message Image {
|
|
repeated string urlList = 1;
|
|
string uri = 2;
|
|
int64 height = 3;
|
|
int64 width = 4;
|
|
string avgColor = 5;
|
|
int32 imageType = 6;
|
|
string openWebUrl = 7;
|
|
Content content = 8;
|
|
bool isAnimated = 9;
|
|
|
|
|
|
// @Content
|
|
// proto.webcast.data.Image
|
|
message Content {
|
|
string name = 1;
|
|
string fontColor = 2;
|
|
int64 level = 3;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @Common (header)
|
|
message Common {
|
|
string method = 1;
|
|
int64 msgId = 2;
|
|
int64 roomId = 3;
|
|
int64 createTime = 4;
|
|
int32 monitor = 5;
|
|
bool isShowMsg = 6;
|
|
string describe = 7;
|
|
Text displayText = 8;
|
|
int64 foldType = 9;
|
|
int64 anchorFoldType = 10;
|
|
int64 priorityScore = 11;
|
|
string logId = 12;
|
|
string msgProcessFilterK = 13;
|
|
string msgProcessFilterV = 14;
|
|
string fromIdc = 15;
|
|
string toIdc = 16;
|
|
repeated string filterMsgTagsList = 17;
|
|
LiveMessageSEI sei = 18;
|
|
LiveMessageID dependRootId = 19;
|
|
LiveMessageID dependId = 20;
|
|
int64 anchorPriorityScore = 21;
|
|
int64 roomMessageHeatLevel = 22;
|
|
int64 foldTypeForWeb = 23;
|
|
int64 anchorFoldTypeForWeb = 24;
|
|
int64 clientSendTime = 25;
|
|
IMDispatchStrategy dispatchStrategy = 26; // Enum
|
|
|
|
message LiveMessageSEI {
|
|
LiveMessageID uniqueId = 1;
|
|
int64 timestamp = 2;
|
|
}
|
|
|
|
message LiveMessageID {
|
|
string primaryId = 1;
|
|
string messageScene = 2;
|
|
}
|
|
|
|
enum IMDispatchStrategy {
|
|
IM_DISPATCH_STRATEGY_DEFAULT = 0;
|
|
IM_DISPATCH_STRATEGY_BYPASS_DISPATCH_QUEUE = 1;
|
|
}
|
|
}
|
|
|
|
|
|
// @Badge
|
|
message BadgeStruct {
|
|
BadgeDisplayType displayType = 1; // Enum
|
|
BadgePriorityType priorityType = 2; // Enum
|
|
BadgeSceneType sceneType = 3; // Enum
|
|
Position position = 4; // Enum
|
|
DisplayStatus displayStatus = 5; // Enum
|
|
int64 greyedByClient = 6;
|
|
ExhibitionType exhibitionType = 7; // Enum
|
|
string openweburl = 10;
|
|
bool display = 11;
|
|
// PrivilegeLogExtra privilegeLogExtra = 12;
|
|
repeated ImageBadge image = 20;
|
|
repeated TextBadge text = 21;
|
|
StringBadge str = 22;
|
|
CombineBadge combine = 23;
|
|
|
|
|
|
message CombineBadge {
|
|
BadgeDisplayType displayType = 1; // Enum
|
|
Image icon = 2;
|
|
TextBadge text = 3;
|
|
string str = 4;
|
|
// repeated PaddingInfo padding = 5;
|
|
// FontStyle fontStyle = 6;
|
|
ProfileCardPanel profileCardPanel = 7;
|
|
CombineBadgeBackground background = 11;
|
|
CombineBadgeBackground backgroundDarkMode = 12;
|
|
bool iconAutoMirrored = 13;
|
|
bool backgroundAutoMirrored = 14;
|
|
int32 publicScreenShowStyle = 15;
|
|
int32 personalCardShowStyle = 16;
|
|
int32 ranklistOnlineAudienceShowStyle = 17;
|
|
int32 multiGuestShowStyle = 18;
|
|
// repeated PaddingInfo paddingNewFont = 20;
|
|
}
|
|
|
|
message ProfileContent {
|
|
bool useContent = 1;
|
|
repeated IconConfig iconList = 2;
|
|
NumberConfig numberConfig = 3;
|
|
}
|
|
|
|
message ProjectionConfig {
|
|
bool useProjection = 1;
|
|
Image icon = 2;
|
|
}
|
|
|
|
message NumberConfig {
|
|
int64 number = 1;
|
|
//FontStyle fontStyle = 2;
|
|
CombineBadgeBackground background = 3;
|
|
}
|
|
|
|
|
|
message ProfileCardPanel {
|
|
bool useNewProfileCardStyle = 1;
|
|
BadgeTextPosition badgeTextPosition = 2; // Enum
|
|
ProjectionConfig projectionConfig = 3;
|
|
ProfileContent profileContent = 4;
|
|
}
|
|
|
|
message CombineBadgeBackground {
|
|
Image image = 1;
|
|
string backgroundColorCode = 2;
|
|
string borderColorCode = 3;
|
|
}
|
|
|
|
message ImageBadge {
|
|
BadgeDisplayType displayType = 1; // Enum
|
|
Image image = 2;
|
|
}
|
|
|
|
message TextBadge {
|
|
BadgeDisplayType displayType = 1; // Enum
|
|
string key = 2;
|
|
string defaultPattern = 3;
|
|
repeated string piecesList = 4;
|
|
}
|
|
|
|
message IconConfig {
|
|
Image icon = 1;
|
|
CombineBadgeBackground background = 2;
|
|
}
|
|
|
|
|
|
message StringBadge {
|
|
BadgeDisplayType displayType = 1; // Enum
|
|
string str = 2;
|
|
}
|
|
|
|
enum DataCase {
|
|
DATA_NOT_SET = 0;
|
|
IMAGE = 20;
|
|
TEXT = 21;
|
|
STR = 22;
|
|
COMBINE = 23;
|
|
}
|
|
|
|
enum BadgeDisplayType {
|
|
BADGEDISPLAYTYPE_UNKNOWN = 0;
|
|
BADGEDISPLAYTYPE_IMAGE = 1;
|
|
BADGEDISPLAYTYPE_TEXT = 2;
|
|
BADGEDISPLAYTYPE_STRING = 3;
|
|
BADGEDISPLAYTYPE_COMBINE = 4;
|
|
}
|
|
|
|
enum BadgePriorityType {
|
|
BADGEPRIORITYTYPE_UNKNOWN = 0;
|
|
BADGEPRIORITYTYPE_STRONGRELATION = 10;
|
|
BADGEPRIORITYTYPE_PLATFORM = 20;
|
|
BADGEPRIORITYTYPE_RELATION = 30;
|
|
BADGEPRIORITYTYPE_ACTIVITY = 40;
|
|
BADGEPRIORITYTYPE_RANKLIST = 50;
|
|
}
|
|
|
|
enum BadgeSceneType {
|
|
BADGESCENETYPE_UNKNOWN = 0;
|
|
BADGESCENETYPE_ADMIN = 1;
|
|
BADGESCENETYPE_FIRSTRECHARGE = 2;
|
|
BADGESCENETYPE_FRIENDS = 3;
|
|
BADGESCENETYPE_SUBSCRIBER = 4;
|
|
BADGESCENETYPE_ACTIVITY = 5;
|
|
BADGESCENETYPE_RANKLIST = 6;
|
|
BADGESCENETYPE_NEWSUBSCRIBER = 7;
|
|
BADGESCENETYPE_USERGRADE = 8;
|
|
BADGESCENETYPE_STATECONTROLLEDMEDIA = 9;
|
|
BADGESCENETYPE_FANS = 10;
|
|
BADGESCENETYPE_LIVEPRO = 11;
|
|
}
|
|
|
|
enum DisplayStatus {
|
|
DISPLAYSTATUSNORMAL = 0;
|
|
DISPLAYSTATUSSHADOW = 1;
|
|
}
|
|
|
|
enum ExhibitionType {
|
|
EXHIBITIONTYPE_DEFAULT = 0;
|
|
EXHIBITIONTYPE_FOLD = 1;
|
|
EXHIBITIONTYPE_PUBLICSCREEN = 2;
|
|
}
|
|
enum BadgeTextPosition {
|
|
BADGETEXTPOSITIONUNKNOWN = 0;
|
|
BADGETEXTPOSITIONRIGHT = 1;
|
|
BADGETEXTPOSITIONBELOW = 2;
|
|
}
|
|
|
|
enum Position {
|
|
POSITIONUNKNOWN = 0;
|
|
POSITIONLEFT = 1;
|
|
POSITIONRIGHT = 2;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
message WebcastGiftMessage {
|
|
Common common = 1;
|
|
int64 giftId = 2;
|
|
int64 fanTicketCount = 3;
|
|
int64 groupCount = 4;
|
|
int64 repeatCount = 5;
|
|
int64 comboCount = 6;
|
|
User user = 7;
|
|
User toUser = 8;
|
|
int32 repeatEnd = 9;
|
|
//TextEffect textEffect = 10;
|
|
int64 groupId = 11;
|
|
int64 incomeTaskgifts = 12;
|
|
int64 roomFanTicketCount = 13;
|
|
GiftIMPriority priority = 14;
|
|
GiftStruct gift = 15;
|
|
string logId = 16;
|
|
int64 sendType = 17;
|
|
PublicAreaCommon publicAreaCommon = 18;
|
|
Text trayDisplayText = 19;
|
|
int64 bannedDisplayEffects = 20;
|
|
GiftTrayInfo trayInfo = 21;
|
|
string monitorExtra = 22;
|
|
GiftMonitorInfo monitorInfo = 23;
|
|
int64 colorId = 24;
|
|
bool isFirstSent = 25;
|
|
Text displayTextForAnchor = 26;
|
|
Text displayTextForAudience = 27;
|
|
string orderId = 28;
|
|
MsgFilter msgFilter = 30;
|
|
repeated LynxGiftExtra lynxExtraList = 31;
|
|
UserIdentity userIdentity = 32;
|
|
// LinkmicGiftExpressionStrategy linkmicGiftExpressionStrategy = 34; // Enum
|
|
// FlyingMicResources flyingMicResources = 35;
|
|
bool disableGiftTracking = 36;
|
|
|
|
message GiftIMPriority {
|
|
repeated int64 queueSizesList = 1;
|
|
int64 selfQueuePriority = 2;
|
|
int64 priority = 3;
|
|
}
|
|
|
|
message PublicAreaCommon {
|
|
Image userLabel = 1;
|
|
int64 userConsumeInRoom = 2;
|
|
}
|
|
|
|
message GiftTrayInfo {
|
|
Image trayDynamicImg = 1;
|
|
bool canMirror = 2;
|
|
}
|
|
|
|
message GiftMonitorInfo {
|
|
int64 anchorId = 1;
|
|
int64 profitapiMessageDur = 2;
|
|
int64 sendGiftProfitApiStartMs = 3;
|
|
int64 sendGiftProfitCoreStartMs = 4;
|
|
int64 sendGiftReqStartMs = 5;
|
|
int64 sendGiftSendMessageSuccessMs = 6;
|
|
int64 sendProfitapiDur = 7;
|
|
int64 toUserId = 8;
|
|
int64 sendGiftStartClientLocalMs = 9;
|
|
string fromPlatform = 10;
|
|
string fromVersion = 11;
|
|
}
|
|
|
|
message MsgFilter {
|
|
bool isGifter = 1;
|
|
bool isSubscribedToAnchor = 2;
|
|
}
|
|
|
|
message LynxGiftExtra {
|
|
int64 id = 1;
|
|
int64 code = 2;
|
|
int64 type = 3;
|
|
repeated string paramsList = 4;
|
|
string extra = 5;
|
|
}
|
|
|
|
message UserIdentity {
|
|
bool isGiftGiverOfAnchor = 1;
|
|
bool isSubscriberOfAnchor = 2;
|
|
bool isMutualFollowingWithAnchor = 3;
|
|
bool isFollowerOfAnchor = 4;
|
|
bool isModeratorOfAnchor = 5;
|
|
bool isAnchor = 6;
|
|
}
|
|
}
|
|
|
|
// @Gift
|
|
message GiftStruct {
|
|
Image image = 1;
|
|
string describe = 2;
|
|
int64 duration = 4;
|
|
int64 id = 5;
|
|
bool forLinkmic = 7;
|
|
bool combo = 10;
|
|
int32 type = 11;
|
|
int32 diamondCount = 12;
|
|
bool isDisplayedOnPanel = 13;
|
|
int64 primaryEffectId = 14;
|
|
Image giftLabelIcon = 15;
|
|
string name = 16;
|
|
Image icon = 21;
|
|
string goldEffect = 24;
|
|
Image previewImage = 47;
|
|
GiftPanelBanner giftPanelBanner = 48;
|
|
bool isBroadcastGift = 49;
|
|
bool isEffectBefview = 50;
|
|
bool isRandomGift = 51;
|
|
bool isBoxGift = 52;
|
|
bool canPutInGiftBox = 53;
|
|
// GiftBoxInfo giftBoxInfo = 54;
|
|
|
|
|
|
// @GiftPanelBanner
|
|
// proto.webcast.data.GiftStruct
|
|
message GiftPanelBanner {
|
|
Text displayText = 1;
|
|
Image leftIcon = 2;
|
|
string schemaUrl = 3;
|
|
repeated string bgColorValuesList = 5;
|
|
string bannerLynxUrl = 6;
|
|
}
|
|
|
|
|
|
// @GiftRandomEffectInfo
|
|
// proto.webcast.data.GiftStruct
|
|
message GiftRandomEffectInfo {
|
|
RandomGiftPanelBanner randomGiftPanelBanner = 1;
|
|
repeated int64 effectIdsList = 2;
|
|
string hostKey = 3;
|
|
string audienceKey = 4;
|
|
RandomGiftBubble randomGiftBubble = 5;
|
|
}
|
|
|
|
|
|
// @RandomGiftBubble
|
|
// proto.webcast.data.GiftStruct
|
|
message RandomGiftBubble {
|
|
string displayText = 1;
|
|
Image iconDynamicEffect = 2;
|
|
}
|
|
|
|
|
|
// @RandomGiftPanelBanner
|
|
// proto.webcast.data.GiftStruct
|
|
message RandomGiftPanelBanner {
|
|
Image bgImage = 1;
|
|
Image shadingImage = 2;
|
|
int64 targetNum = 3;
|
|
int64 collectNum = 4;
|
|
string displayText = 5;
|
|
Image leftIcon = 6;
|
|
string schemaUrl = 7;
|
|
repeated string bgColorValuesList = 8;
|
|
int64 round = 9;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @User
|
|
message User {
|
|
int64 id = 1;
|
|
string nickname = 3;
|
|
string bioDescription = 5;
|
|
Image avatarThumb = 9;
|
|
Image avatarMedium = 10;
|
|
Image avatarLarge = 11;
|
|
bool verified = 12;
|
|
int32 status = 15;
|
|
int64 createTime = 16;
|
|
int64 modifyTime = 17;
|
|
int32 secret = 18;
|
|
string shareQrcodeUri = 19;
|
|
repeated Image badgeImageList = 21;
|
|
FollowInfo followInfo = 22;
|
|
PayGrade payGrade = 23;
|
|
FansClub fansClub = 24;
|
|
Border border = 25;
|
|
string specialId = 26;
|
|
Image avatarBorder = 27;
|
|
Image medal = 28;
|
|
repeated Image realTimeIconsList = 29;
|
|
repeated Image newRealTimeIconsList = 30;
|
|
int64 topVipNo = 31;
|
|
UserAttr userAttr = 32;
|
|
OwnRoom ownRoom = 33;
|
|
int64 payScore = 34;
|
|
int64 ticketCount = 35;
|
|
int64 linkMicStats = 37; // @warning Enum not found, should be LinkMicStats
|
|
string displayId = 38;
|
|
bool withCommercePermission = 39;
|
|
bool withFusionShopEntry = 40;
|
|
AnchorLevel webcastAnchorLevel = 42;
|
|
string verifiedContent = 43;
|
|
AuthorStats authorStats = 44;
|
|
repeated User topFansList = 45;
|
|
string secUid = 46;
|
|
int32 userRole = 47;
|
|
ActivityInfo activityReward = 49;
|
|
Image personalCard = 52;
|
|
AuthenticationInfo authenticationInfo = 53;
|
|
repeated Image mediaBadgeImageList = 57;
|
|
repeated int64 commerceWebcastConfigIdsList = 60;
|
|
repeated Border borderList = 61;
|
|
ComboBadgeInfo comboBadgeInfo = 62;
|
|
SubscribeInfo subscribeInfo = 63;
|
|
repeated BadgeStruct badgeList = 64;
|
|
repeated int64 mintTypeLabelList = 65;
|
|
FansClubInfo fansClubInfo = 66;
|
|
bool allowFindByContacts = 1002;
|
|
bool allowOthersDownloadVideo = 1003;
|
|
bool allowOthersDownloadWhenSharingVideo = 1004;
|
|
bool allowShareShowProfile = 1005;
|
|
bool allowShowInGossip = 1006;
|
|
bool allowShowMyAction = 1007;
|
|
bool allowStrangeComment = 1008;
|
|
bool allowUnfollowerComment = 1009;
|
|
bool allowUseLinkmic = 1010;
|
|
AnchorLevel anchorLevel = 1011;
|
|
Image avatarJpg = 1012;
|
|
string bgImgUrl = 1013;
|
|
int32 blockStatus = 1016;
|
|
int32 commentRestrict = 1017;
|
|
string constellation = 1018;
|
|
int32 disableIchat = 1019;
|
|
int64 enableIchatImg = 1020;
|
|
int32 exp = 1021;
|
|
int64 fanTicketCount = 1022;
|
|
bool foldStrangerChat = 1023;
|
|
int64 followStatus = 1024;
|
|
int32 ichatRestrictType = 1027;
|
|
string idStr = 1028;
|
|
bool isFollower = 1029;
|
|
bool isFollowing = 1030;
|
|
bool needProfileGuide = 1031;
|
|
int64 payScores = 1032;
|
|
bool pushCommentStatus = 1033;
|
|
bool pushDigg = 1034;
|
|
bool pushFollow = 1035;
|
|
bool pushFriendAction = 1036;
|
|
bool pushIchat = 1037;
|
|
bool pushStatus = 1038;
|
|
bool pushVideoPost = 1039;
|
|
bool pushVideoRecommend = 1040;
|
|
UserStats stats = 1041;
|
|
string verifiedReason = 1043;
|
|
bool withCarManagementPermission = 1044;
|
|
repeated LiveEventInfo upcomingEventList = 1045;
|
|
string scmLabel = 1046;
|
|
EcommerceEntrance ecommerceEntrance = 1047;
|
|
bool isBlock = 1048;
|
|
|
|
message LiveEventInfo {
|
|
int64 eventId = 1;
|
|
int64 startTime = 2;
|
|
int64 duration = 3;
|
|
string title = 4;
|
|
string description = 5;
|
|
bool hasSubscribed = 6;
|
|
bool isPaidEvent = 7;
|
|
int64 ticketAmount = 8;
|
|
int64 payMethod = 9; // @warning Enum not found, should be PayMethod
|
|
|
|
|
|
// @EventPayMethod
|
|
// webcast.data.LiveEventInfo
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum EventPayMethod {
|
|
EVENTPAYMETHODINVALID = 0;
|
|
EVENTPAYMETHODCOINS = 1;
|
|
EVENTPAYMETHODCASH = 2;
|
|
}
|
|
|
|
|
|
// @WalletPackage
|
|
// proto.webcast.data.LiveEventInfo
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message WalletPackage {
|
|
string iapId = 1;
|
|
string usdPriceShow = 2;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @ActivityInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message ActivityInfo {
|
|
Image badge = 1;
|
|
Image storytag = 2;
|
|
}
|
|
|
|
|
|
|
|
// @AnchorLevel
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message AnchorLevel {
|
|
int64 level = 1;
|
|
int64 experience = 2;
|
|
int64 lowestExperienceThisLevel = 3;
|
|
int64 highestExperienceThisLevel = 4;
|
|
int64 taskStartExperience = 5;
|
|
int64 taskStartTime = 6;
|
|
int64 taskDecreaseExperience = 7;
|
|
int64 taskTargetExperience = 8;
|
|
int64 taskEndTime = 9;
|
|
Image profileDialogBg = 10;
|
|
Image profileDialogBgBack = 11;
|
|
Image stageLevel = 12;
|
|
Image smallIcon = 13;
|
|
}
|
|
|
|
|
|
// @AuthenticationInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message AuthenticationInfo {
|
|
string customVerify = 1;
|
|
string enterpriseVerifyReason = 2;
|
|
Image authenticationBadge = 3;
|
|
}
|
|
|
|
|
|
// @AuthorStats
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message AuthorStats {
|
|
int64 videoTotalCount = 1;
|
|
int64 videoTotalPlayCount = 2;
|
|
int64 videoTotalShareCount = 3;
|
|
int64 videoTotalSeriesCount = 4;
|
|
int64 varietyShowPlayCount = 5;
|
|
int64 videoTotalFavoriteCount = 6;
|
|
}
|
|
|
|
|
|
// @Border
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message Border {
|
|
Image icon = 1;
|
|
int64 level = 2;
|
|
string source = 3;
|
|
Image profileDecorationRibbon = 4;
|
|
string avatarBackgroundColor = 7;
|
|
string avatarBackgroundBorderColor = 8;
|
|
}
|
|
|
|
|
|
// @ComboBadgeInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message ComboBadgeInfo {
|
|
Image icon = 1;
|
|
int64 comboCount = 2;
|
|
}
|
|
|
|
|
|
// @EcommerceEntrance
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message EcommerceEntrance {
|
|
EntranceType entranceType = 1; // Enum
|
|
CreatorType creatorType = 2; // Enum
|
|
string schema = 3;
|
|
ShopEntranceInfo shopEntranceInfo = 4;
|
|
ShowcaseEntranceInfo showcaseEntranceInfo = 5;
|
|
|
|
|
|
// @CreatorType
|
|
// webcast.data.User.EcommerceEntrance
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum CreatorType {
|
|
UNDEFINED = 0;
|
|
OFFICIAL = 1;
|
|
MARKET = 2;
|
|
NORMAL = 3;
|
|
}
|
|
|
|
|
|
// @EntranceType
|
|
// webcast.data.User.EcommerceEntrance
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum EntranceType {
|
|
PROFILE = 0;
|
|
SHOWCASE = 1;
|
|
SHOP = 2;
|
|
}
|
|
|
|
|
|
// @ShopEntranceInfo
|
|
// proto.webcast.data.User.EcommerceEntrance
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message ShopEntranceInfo {
|
|
string shopId = 1;
|
|
string shopName = 2;
|
|
string shopRating = 3;
|
|
StoreLabel storeLabel = 4;
|
|
string formatSoldCount = 5;
|
|
int64 soldCount = 6;
|
|
int32 expRatePercentile = 7;
|
|
string expRateTopDisplay = 8;
|
|
int32 rateDisplayStyle = 9;
|
|
bool showRateNotApplicable = 10;
|
|
|
|
|
|
// @StoreLabel
|
|
// proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message StoreLabel {
|
|
StoreOfficialLabel officialLabel = 1;
|
|
bool isBytemall = 2;
|
|
|
|
|
|
// @StoreBrandLabelType
|
|
// webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum StoreBrandLabelType {
|
|
NONE = 0;
|
|
OFFICIAL = 1;
|
|
AUTHORIZED = 2;
|
|
STORE_BRAND_LABEL_TYPE_BLUE_V = 3;
|
|
STORE_BRAND_LABEL_TYPE_TOP_CHOICE = 4;
|
|
}
|
|
|
|
|
|
// @StoreOfficialLabel
|
|
// proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message StoreOfficialLabel {
|
|
ShopLabelImage labelImageLight = 1;
|
|
ShopLabelImage labelImageDark = 2;
|
|
int64 labelType = 3; // @warning Enum not found, should be LabelType
|
|
string labelTypeStr = 4;
|
|
|
|
|
|
// @ShopLabelImage
|
|
// proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel.StoreOfficialLabel
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message ShopLabelImage {
|
|
int32 height = 1;
|
|
int32 width = 2;
|
|
string minetype = 3;
|
|
string thumbUri = 4;
|
|
repeated string thumbUriList = 5;
|
|
string uri = 6;
|
|
repeated string urlList = 7;
|
|
string color = 8;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @ShowcaseEntranceInfo
|
|
// proto.webcast.data.User.EcommerceEntrance
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message ShowcaseEntranceInfo {
|
|
string formatSoldCount = 1;
|
|
int64 soldCount = 2;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @FansClub
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message FansClub {
|
|
FansClubData data = 1;
|
|
|
|
|
|
// @FansClubData
|
|
// proto.webcast.data.User.FansClub
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message FansClubData {
|
|
string clubName = 1;
|
|
int32 level = 2;
|
|
UserFansClubStatus userFansClubStatus = 3; // Enum
|
|
repeated int64 availableGiftIdsList = 5;
|
|
int64 anchorId = 6;
|
|
|
|
|
|
// @BadgeIcon
|
|
// webcast.data.User.FansClub.FansClubData
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum BadgeIcon {
|
|
UNKNOWN = 0;
|
|
ICON = 1;
|
|
SMALLICON = 2;
|
|
}
|
|
|
|
|
|
// @UserFansClubStatus
|
|
// webcast.data.User.FansClub.FansClubData
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum UserFansClubStatus {
|
|
NOTJOINED = 0;
|
|
ACTIVE = 1;
|
|
INACTIVE = 2;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @PreferntialType
|
|
// webcast.data.User.FansClub
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
enum PreferntialType {
|
|
PRESONALPROFILE = 0;
|
|
OTHERROOM = 1;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @FansClubInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message FansClubInfo {
|
|
bool isSleeping = 1;
|
|
int64 fansLevel = 2;
|
|
int64 fansScore = 3;
|
|
Image badge = 4;
|
|
int64 fansCount = 5;
|
|
}
|
|
|
|
|
|
// @FollowInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message FollowInfo {
|
|
int64 followingCount = 1;
|
|
int64 followerCount = 2;
|
|
int64 followStatus = 3;
|
|
int64 pushStatus = 4;
|
|
}
|
|
|
|
|
|
// @OwnRoom
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message OwnRoom {
|
|
repeated int64 roomIdsList = 1;
|
|
repeated string roomIdsStrList = 2;
|
|
}
|
|
|
|
|
|
// @PayGrade
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message PayGrade {
|
|
Image diamondIcon = 2;
|
|
string name = 3;
|
|
Image icon = 4;
|
|
string nextName = 5;
|
|
int64 level = 6;
|
|
Image nextIcon = 7;
|
|
string gradeDescribe = 13;
|
|
repeated GradeIcon gradeIconList = 14;
|
|
int64 screenChatType = 15;
|
|
Image imIcon = 16;
|
|
Image imIconWithLevel = 17;
|
|
Image liveIcon = 18;
|
|
Image newImIconWithLevel = 19;
|
|
Image newLiveIcon = 20;
|
|
int64 upgradeNeedConsume = 21;
|
|
string nextPrivileges = 22;
|
|
Image background = 23;
|
|
Image backgroundBack = 24;
|
|
int64 score = 25;
|
|
string gradeBanner = 1001;
|
|
Image profileDialogBg = 1002;
|
|
Image profileDialogBgBack = 1003;
|
|
|
|
|
|
// @GradeIcon
|
|
// proto.webcast.data.User.PayGrade
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message GradeIcon {
|
|
Image icon = 1;
|
|
int64 iconDiamond = 2;
|
|
int64 level = 3;
|
|
string levelStr = 4;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// @SubscribeBadge
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message SubscribeBadge {
|
|
Image originImg = 3;
|
|
Image previewImg = 4;
|
|
}
|
|
|
|
|
|
// @SubscribeInfo
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message SubscribeInfo {
|
|
bool qualification = 1;
|
|
bool isSubscribe = 2;
|
|
SubscribeBadge badge = 3;
|
|
bool enableSubscription = 4;
|
|
int64 subscriberCount = 5;
|
|
bool isInGracePeriod = 6;
|
|
bool isSubscribedToAnchor = 7;
|
|
bool userGiftSubAuth = 9;
|
|
bool anchorGiftSubAuth = 10;
|
|
}
|
|
|
|
|
|
// @UserAttr
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message UserAttr {
|
|
bool isMuted = 1;
|
|
bool isAdmin = 2;
|
|
bool isSuperAdmin = 3;
|
|
int64 muteDuration = 4;
|
|
}
|
|
|
|
|
|
// @UserStats
|
|
// proto.webcast.data.User
|
|
// C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js
|
|
message UserStats {
|
|
int64 id = 1;
|
|
string idStr = 2;
|
|
int64 followingCount = 3;
|
|
int64 followerCount = 4;
|
|
int64 recordCount = 5;
|
|
int64 totalDuration = 6;
|
|
int64 dailyFanTicketCount = 7;
|
|
int64 dailyIncome = 8;
|
|
int64 itemCount = 9;
|
|
int64 favoriteItemCount = 10;
|
|
int64 diamondConsumedCount = 12;
|
|
int64 tuwenItemCount = 13;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Receipt for sending a Gift. Names are mostly taken from JSON
|
|
message GiftReceipt {
|
|
uint64 anchorId = 1;
|
|
uint64 profitApiStartTimeStamp = 3; // send_gift_profit_api_start_ms
|
|
uint64 profitCoreStartTimeStamp = 4; // send_gift_profit_core_start_ms
|
|
uint64 sendGiftRequestTimeStamp = 5; // send_gift_req_start_ms
|
|
uint64 timeStamp = 6; // send_gift_send_message_success_ms
|
|
uint64 profitApiDuration = 7; // send_profitapi_dur
|
|
uint64 receiverUserId = 8; // UserId for receiver
|
|
uint64 timeStamp1 = 9; // Unknown timestamp. Earliest in message (Possibly Request-Start?)
|
|
string operatingSystem = 10;
|
|
string data1 = 11; // 270504 (Id?)
|
|
}
|
|
|
|
message GoalUpdateData {
|
|
uint64 id = 1;
|
|
uint32 data1 = 2;
|
|
uint32 data2 = 3;
|
|
GoalUpdateDetails details = 4;
|
|
string label = 5;
|
|
uint32 data3 = 6;
|
|
uint32 data4 = 7;
|
|
uint64 timeStamp2 = 8;
|
|
uint64 timeStamp3 = 9;
|
|
repeated GoalUpdateUser users = 11;
|
|
uint32 data5 = 12;
|
|
string idString = 13;
|
|
string label2 = 14; // same as label?
|
|
}
|
|
|
|
message GoalUpdateDetails {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
uint32 data3 = 3;
|
|
uint32 data4 = 4;
|
|
GoalUpdateGiftData data5 = 5;
|
|
string data6 = 6;
|
|
|
|
message GoalUpdateGiftData {
|
|
string name = 1;
|
|
Image Image = 2;
|
|
uint32 data1 = 3;
|
|
uint32 data2 = 4;
|
|
}
|
|
}
|
|
|
|
message GoalUpdateUser {
|
|
uint64 id = 1;
|
|
Image profileImage = 2;
|
|
string nickname = 3;
|
|
uint64 timeStamp = 4;
|
|
string idString = 5;
|
|
uint32 data1 = 6;
|
|
uint32 data2 = 7;
|
|
GoalUpdateUserDetails details = 10;
|
|
|
|
message GoalUpdateUserDetails {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
uint32 data3 = 3;
|
|
GoalUserImageContainer links = 10;
|
|
|
|
message GoalUserImageContainer {
|
|
uint32 data1 = 1;
|
|
Image links = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
message LikeData {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
LikeUserContainer user = 4;
|
|
|
|
message LikeUserContainer {
|
|
uint64 data1 = 1;
|
|
UserContainer user = 21;
|
|
}
|
|
}
|
|
|
|
message LinkMicArmiesItems {
|
|
uint64 hostUserId = 1;
|
|
repeated LinkMicArmiesGroup battleGroups = 2;
|
|
|
|
message LinkMicArmiesGroup {
|
|
repeated User users = 1;
|
|
uint32 points = 2;
|
|
}
|
|
}
|
|
|
|
message MessageDetails {
|
|
uint32 data1 = 1;
|
|
TikTokColor color = 2;
|
|
string category = 11;
|
|
UserContainer user = 21;
|
|
}
|
|
|
|
message MemberMessageData {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated MessageDetails details = 4; // UserContainer-Data is empty
|
|
}
|
|
|
|
message SocialMessageData {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated MessageDetails details = 4; // UserContainer-Data is sometimes empty
|
|
}
|
|
|
|
message RankTextMessage {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated MessageDetails details = 4;
|
|
}
|
|
|
|
|
|
message Ranking {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated ValueLabel details = 4;
|
|
}
|
|
|
|
message TikTokColor {
|
|
string color = 1;
|
|
uint64 id = 4;
|
|
uint32 data1 = 6;
|
|
}
|
|
|
|
message TopViewer {
|
|
uint32 coinsGiven = 1; // Coins given to Room
|
|
User user = 2; //
|
|
uint32 rank = 3; // Index in list
|
|
}
|
|
|
|
|
|
// Is part of WebcastGiftBroadcastMessage. Thus far not seen sent seperately
|
|
message WebcastRoomNotifyMessage {
|
|
string type = 1;
|
|
uint64 id1 = 2;
|
|
uint64 id2 = 3;
|
|
uint64 timeStamp = 4;
|
|
uint32 data1 = 6;
|
|
NotifyData data = 8;
|
|
|
|
message NotifyData {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated GiftDetailsData data = 4;
|
|
}
|
|
|
|
|
|
message GiftDetailsData {
|
|
uint32 data1 = 1;
|
|
TikTokColor color = 2;
|
|
string data2 = 11;
|
|
UserContainer user = 21;
|
|
GiftDataDetailed details = 22;
|
|
}
|
|
|
|
message GiftDataDetailed {
|
|
uint32 data1 = 1;
|
|
StringData strings = 2;
|
|
uint32 data2 = 3;
|
|
int32 data3 = 4;
|
|
}
|
|
}
|
|
|
|
/**
|
|
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
Server-Messages
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
|
|
*/
|
|
|
|
// Separate from WebcastLinkMicMethod. This contains RTC-Data
|
|
message LinkMicMethod {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
uint64 rtcChannelId = 8;
|
|
uint32 data2 = 9; // Either data2 or data3 is probably RTC_Vendor
|
|
uint32 data3 = 10;
|
|
uint32 data4 = 11;
|
|
uint64 data5 = 13;
|
|
uint64 id1 = 24;
|
|
uint64 data6 = 28;
|
|
uint64 data7 = 29; // Either data7 or data9 is probably RTC_MixType
|
|
string data8 = 31;
|
|
string json = 32; // RTC-Data in JSON-Format
|
|
string rtcUserId = 37;
|
|
uint32 data9 = 43;
|
|
uint32 data10 = 51;
|
|
}
|
|
|
|
message RoomMessage {
|
|
MessageHeader header = 1;
|
|
string message = 2;
|
|
uint32 data1 = 7;
|
|
}
|
|
|
|
message SystemMessage {
|
|
MessageHeader header = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message WebcastBarrageMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 3;
|
|
Image image = 4;
|
|
BarrageMessage message = 5;
|
|
uint32 data3 = 6;
|
|
Image image2 = 7;
|
|
Image image3 = 8;
|
|
BarrageUser userData = 100;
|
|
|
|
message BarrageMessage {
|
|
string eventType = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
repeated BarrageData data1 = 4;
|
|
|
|
message BarrageData {
|
|
uint64 data1 = 1;
|
|
string data2 = 11;
|
|
UserContainer user = 21;
|
|
}
|
|
}
|
|
|
|
message BarrageUser {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
string userId = 3;
|
|
User user = 4;
|
|
}
|
|
}
|
|
|
|
// Closed Captioning for Video
|
|
message WebcastCaptionMessage {
|
|
MessageHeader header = 1;
|
|
uint64 timeStamp = 2;
|
|
uint32 data1 = 3;
|
|
CaptionData captionData = 4;
|
|
|
|
message CaptionData {
|
|
string ISOLanguage = 1;
|
|
string Text = 2;
|
|
}
|
|
}
|
|
|
|
// Variety of Meta-Data about a (Chat-)Message
|
|
message ModerationData {
|
|
string type = 1;
|
|
uint64 value = 2;
|
|
}
|
|
|
|
// Comment sent by User
|
|
message WebcastChatMessage {
|
|
MessageHeader header = 1;
|
|
User sender = 2; // User who sent message
|
|
string comment = 3; // Text for Chat-Message
|
|
uint64 data1 = 11;
|
|
repeated User mentionedUsers = 12; // Users mentioned in comment
|
|
repeated ChatImage images = 13;
|
|
string language = 14; // Language for sender
|
|
DataContainer chatData = 18;
|
|
repeated ModerationData moderationData = 19;
|
|
|
|
message ChatImage {
|
|
uint64 data1 = 1;
|
|
Image Image = 2;
|
|
}
|
|
}
|
|
|
|
// System-Control Message from Room (e.g. Host ended Stream)
|
|
message WebcastControlMessage {
|
|
enum ControlAction {
|
|
UNKNOWN = 0;
|
|
STREAM_PAUSED = 1; // Stream Paused by Host
|
|
STREAM_ENDED = 3; // Stream Ended by Host
|
|
}
|
|
|
|
MessageHeader header = 1;
|
|
ControlAction action = 2;
|
|
ControlDetails details = 4;
|
|
|
|
message ControlDetails {
|
|
string type = 8;
|
|
}
|
|
}
|
|
|
|
// Emote sent by user
|
|
message WebcastEmoteChatMessage {
|
|
MessageHeader header = 1;
|
|
User sender = 2;
|
|
EmoteDetails details = 3;
|
|
|
|
message EmoteDetails {
|
|
string id = 1;
|
|
EmoteImage image = 2;
|
|
|
|
message EmoteImage {
|
|
string url = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Envelope
|
|
message WebcastEnvelopeMessage {
|
|
MessageHeader header = 1;
|
|
EnvelopeUser user = 2;
|
|
uint32 data1 = 3;
|
|
|
|
message EnvelopeUser {
|
|
string id = 1;
|
|
uint32 data1 = 2;
|
|
string username = 3;
|
|
string id2 = 4;
|
|
uint32 data2 = 5;
|
|
uint32 data3 = 6;
|
|
uint64 timestamp1 = 7;
|
|
string id1string = 8;
|
|
Image Image = 9;
|
|
string timestamp2string = 10;
|
|
string id2string = 11;
|
|
uint32 data4 = 12;
|
|
}
|
|
}
|
|
|
|
// Gift Broadcast (Unsure of exact event)
|
|
message WebcastGiftBroadcastMessage {
|
|
GiftMessageHeader header = 1;
|
|
uint64 data1 = 2;
|
|
Image Image = 3;
|
|
GiftBroadcastData data = 4;
|
|
|
|
message GiftBroadcastData {
|
|
WebcastRoomNotifyMessage roomNotifyMessage = 1;
|
|
string uri = 2;
|
|
uint32 data1 = 3;
|
|
GiftBroadCastImageDataContainer imageData = 6;
|
|
string notifyType = 9;
|
|
uint64 data2 = 10;
|
|
StringData data3 = 11;
|
|
|
|
message GiftBroadCastImageDataContainer {
|
|
uint32 data1 = 1;
|
|
GiftBroadcastImageData image = 2;
|
|
|
|
message GiftBroadcastImageData {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
repeated string urls = 3;
|
|
string uri = 4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
message WebcastGoalUpdateMessage {
|
|
MessageHeader header = 1;
|
|
TypeValue data = 2;
|
|
GoalUpdateData updateData = 3;
|
|
uint64 id = 4;
|
|
Image Image = 5;
|
|
string userId = 6;
|
|
GoalUpdateDetails details = 7;
|
|
uint32 data2 = 9;
|
|
uint32 data3 = 10;
|
|
uint32 data4 = 11;
|
|
string idString = 12;
|
|
TimeData timeData = 15;
|
|
}
|
|
|
|
message WebcastHourlyRankMessage {
|
|
MessageHeader header = 1;
|
|
RankContainer data = 2;
|
|
uint32 data2 = 3;
|
|
|
|
message RankContainer {
|
|
uint32 data1 = 1;
|
|
RankingData rankingdata = 2;
|
|
uint32 data2 = 3;
|
|
Ranking rankings = 4;
|
|
RankingData2 rankingdata2 = 5;
|
|
uint32 data3 = 6;
|
|
uint32 data4 = 7;
|
|
|
|
message RankingData {
|
|
uint32 data1 = 1;
|
|
Ranking rankdata = 2;
|
|
string data2 = 3;
|
|
}
|
|
|
|
message RankingData2 {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
Ranking rankdata = 3;
|
|
string data3 = 4;
|
|
uint32 data4 = 5;
|
|
uint32 data5 = 6;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Message related to Chat-moderation?
|
|
message WebcastImDeleteMessage {
|
|
MessageHeader header = 1;
|
|
bytes data = 3;
|
|
}
|
|
|
|
message WebcastInRoomBannerMessage {
|
|
MessageHeader header = 1;
|
|
string json = 2; // Json-Data for BannerMessage
|
|
}
|
|
|
|
// User sent one or multiple likes to Stream. Maxes at 15 likes per message
|
|
message WebcastLikeMessage {
|
|
LikeMessageHeader header = 1;
|
|
uint32 count = 2; // Number of Likes for this message. Maxes at 15
|
|
uint64 totalLikes = 3;
|
|
User sender = 5; // Sender of Like(s)
|
|
LikeDataContainer likeData = 8; // Not always filled. The one in Header IS filled.
|
|
uint32 data1 = 9;
|
|
|
|
message LikeDataContainer {
|
|
uint64 data1 = 1;
|
|
LikeData likeData = 2;
|
|
}
|
|
}
|
|
|
|
message WebcastLinkLayerMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
uint64 id = 3;
|
|
uint32 data2 = 4;
|
|
LinkLayerDetails details = 100;
|
|
LinkLayerData dataContainer = 102;
|
|
LinkLayerIdContainer idContainer1 = 110;
|
|
LinkLayerIdContainer idContainer2 = 111;
|
|
|
|
message LinkLayerDetails {
|
|
IdContainer ids = 1;
|
|
string idString = 2;
|
|
StringData data = 3; // Only data2 is filled
|
|
uint64 id2 = 4;
|
|
string data2 = 5;
|
|
}
|
|
|
|
message LinkLayerData {
|
|
uint32 data1 = 1;
|
|
LinkLayerDetailsContainer details = 2;
|
|
|
|
message LinkLayerDetailsContainer {
|
|
LinkLayerDetails data1 = 2;
|
|
repeated LinkLayerDetails data2 = 3;
|
|
}
|
|
}
|
|
|
|
message LinkLayerIdContainer {
|
|
IdContainer ids = 1;
|
|
uint32 data1 = 2;
|
|
}
|
|
}
|
|
|
|
message WebcastLinkMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
uint64 data2 = 3;
|
|
uint32 data3 = 4;
|
|
LinkMessageData data = 18;
|
|
LinkMessageUserContainer user = 20;
|
|
string token = 200;
|
|
|
|
message LinkMessageData {
|
|
DataContainer data = 1; // index 1 is an Id
|
|
}
|
|
|
|
message LinkMessageUserContainer {
|
|
LinkMessageUser user = 1;
|
|
repeated LinkMessageUser otherUsers = 2;
|
|
|
|
message LinkMessageUser {
|
|
User user = 1;
|
|
uint64 timeStamp = 2;
|
|
uint32 data1 = 4;
|
|
string idString = 5;
|
|
uint32 data2 = 7;
|
|
}
|
|
}
|
|
}
|
|
|
|
message WebcastLinkMicArmies {
|
|
MessageHeader header = 1;
|
|
uint64 id = 2;
|
|
repeated LinkMicArmiesItems battleItems = 3;
|
|
uint64 id2 = 4;
|
|
uint64 timeStamp1 = 5;
|
|
uint64 timeStamp2 = 6;
|
|
int32 battleStatus = 7; // SHOULD BE AN ENUM
|
|
uint64 data1 = 8;
|
|
uint64 data2 = 9;
|
|
uint32 data3 = 10;
|
|
Image Image = 11;
|
|
uint32 data4 = 12;
|
|
uint32 data5 = 13;
|
|
}
|
|
|
|
// Battle Start?
|
|
message WebcastLinkMicBattle {
|
|
MessageHeader header = 1;
|
|
uint64 id = 2;
|
|
LinkMicBattleConfig battleConfig = 3;
|
|
uint32 data2 = 4;
|
|
repeated LinkMicBattleDetails details = 5;
|
|
repeated LinkMicBattleTeam teams1 = 9;
|
|
repeated LinkMicBattleTeam teams2 = 10;
|
|
repeated LinkMicBattleTeamData teamData = 13;
|
|
|
|
message LinkMicBattleConfig {
|
|
uint64 id1 = 1;
|
|
uint64 timestamp = 2;
|
|
uint32 data1 = 3;
|
|
uint64 id2 = 4;
|
|
uint32 data2 = 5;
|
|
}
|
|
|
|
message LinkMicBattleData {
|
|
uint64 id = 1;
|
|
uint32 data1 = 2;
|
|
uint32 data2 = 3;
|
|
uint32 data3 = 5;
|
|
string url = 6;
|
|
}
|
|
|
|
message LinkMicBattleDetails {
|
|
uint64 id = 1;
|
|
LinkMicBattleData details = 2;
|
|
}
|
|
|
|
message LinkMicBattleTeam {
|
|
uint64 id = 1;
|
|
repeated User users = 2;
|
|
}
|
|
|
|
message LinkMicBattleTeamData {
|
|
uint64 teamId = 1;
|
|
LinkMicBattleData data = 2;
|
|
}
|
|
}
|
|
|
|
message WebcastLinkMicFanTicketMethod {
|
|
MessageHeader header = 1;
|
|
FanTicketDataContainer data = 2;
|
|
|
|
message FanTicketDataContainer {
|
|
FanTicketData details = 1;
|
|
uint32 data1 = 2;
|
|
string icon = 5;
|
|
|
|
message FanTicketData {
|
|
uint64 id = 1;
|
|
uint32 data = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
message WebcastLinkMicMethod {
|
|
MessageHeader header = 1;
|
|
uint64 data1 = 2;
|
|
uint64 id1 = 5;
|
|
uint32 data2 = 6;
|
|
uint32 data3 = 7;
|
|
uint64 id2 = 8;
|
|
uint32 data4 = 9;
|
|
uint64 data5 = 10;
|
|
uint64 id3 = 38;
|
|
uint32 data6 = 39;
|
|
string data7 = 40; // Combines data6 & id
|
|
uint32 data8 = 43;
|
|
}
|
|
|
|
message WebcastLiveIntroMessage {
|
|
MessageHeader header = 1;
|
|
uint64 roomId = 2;
|
|
uint64 data1 = 3;
|
|
string description = 4;
|
|
User host = 5;
|
|
uint32 data2 = 6;
|
|
IntroData messageData = 7;
|
|
string language = 8; // ISO-language of Host
|
|
|
|
message IntroData {
|
|
uint32 data1 = 1;
|
|
ValueLabel details = 21;
|
|
}
|
|
}
|
|
|
|
// Sent for a variety of events, including Join & Subscribe
|
|
message WebcastMemberMessage {
|
|
enum MemberMessageAction {
|
|
UNKNOWN = 0;
|
|
JOINED = 1; // User Joined the Stream
|
|
SUBSCRIBED = 3; // User Subscribed to the Host
|
|
//?? = 26
|
|
//?? = 27
|
|
//?? = 50 (share?)
|
|
}
|
|
|
|
MemberMessageHeader header = 1;
|
|
User user = 2;
|
|
uint64 totalViewers = 3; // Available in Join-Message
|
|
User user2 = 4;
|
|
MemberMessageAction action = 10;
|
|
MemberMessageData eventDetails = 18; // Identical to details in Header
|
|
string data1 = 19; // "unknown"/"homepage_hot-live_cell"
|
|
string data2 = 20; // "click"
|
|
string data3 = 21; // "rec"
|
|
string data4 = 23; // "other"
|
|
uint32 data5 = 24;
|
|
}
|
|
|
|
message WebcastMsgDetectMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
DataContainer data2 = 3; // Only uses index 1, 2 & 4
|
|
TimeStampContainer timestamps = 4;
|
|
string language = 6;
|
|
}
|
|
|
|
message WebcastOecLiveShoppingMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
LiveShoppingData shopData = 4;
|
|
TimeStampContainer shopTimings = 5; // Uses index 1, 2 & 3
|
|
LiveShoppingDetails details = 9;
|
|
|
|
message LiveShoppingData {
|
|
string title = 1;
|
|
string priceString = 2; // $55.99
|
|
string imageUrl = 3;
|
|
string shopUrl = 4;
|
|
uint64 data1 = 6;
|
|
string shopName = 7; // "Shopify"
|
|
uint64 data2 = 8;
|
|
string shopUrl2 = 9;
|
|
uint64 data3 = 10;
|
|
uint64 data4 = 11;
|
|
}
|
|
|
|
message LiveShoppingDetails {
|
|
string id1 = 1;
|
|
string data1 = 3;
|
|
uint32 data2 = 4;
|
|
uint64 timestamp = 5;
|
|
ValueLabel data = 6;
|
|
}
|
|
}
|
|
|
|
message WebcastPollMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
uint64 id = 3;
|
|
PollMessageData pollData = 4;
|
|
PollMessageOptionsContainer options1 = 5;
|
|
PollMessageOptionsContainer options2 = 6;
|
|
|
|
message PollMessageOptionsContainer {
|
|
repeated PollMessageOption Options = 2;
|
|
User user = 3;
|
|
}
|
|
|
|
message PollMessageOption {
|
|
uint32 currentTotal = 1;
|
|
string label = 2;
|
|
uint32 data1 = 3;
|
|
}
|
|
|
|
message PollMessageData {
|
|
uint64 timeStamp1 = 1;
|
|
uint64 timeStamp2 = 2;
|
|
repeated PollMessageOption options = 3;
|
|
User user = 5;
|
|
}
|
|
}
|
|
|
|
message WebcastQuestionNewMessage {
|
|
MessageHeader header = 1;
|
|
QuestionDetails details = 2;
|
|
|
|
message QuestionDetails {
|
|
uint64 id = 1;
|
|
string text = 2;
|
|
uint64 timeStamp = 4;
|
|
User user = 5;
|
|
uint32 data1 = 20;
|
|
}
|
|
}
|
|
|
|
message WebcastRankTextMessage {
|
|
//WebcastRankTextMessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
uint32 data2 = 3;
|
|
uint32 data3 = 4;
|
|
RankTextMessageSummary detailsSmall = 5;
|
|
RankTextMessage details = 6;
|
|
uint64 id1 = 7;
|
|
|
|
message RankTextMessageSummary {
|
|
string type = 1;
|
|
string label = 2;
|
|
TikTokColor color = 3;
|
|
ValueLabel details = 4;
|
|
}
|
|
}
|
|
|
|
message WebcastRankUpdateMessage {
|
|
MessageHeader header = 1;
|
|
RankUpdateData data = 2;
|
|
uint32 data1 = 3;
|
|
uint32 data2 = 5;
|
|
|
|
message RankUpdateData {
|
|
uint32 data1 = 1;
|
|
uint32 data2 = 2;
|
|
Ranking rankData = 3;
|
|
RankColor color = 4;
|
|
uint64 data3 = 6;
|
|
string data4 = 7;
|
|
uint32 data5 = 8;
|
|
uint32 data6 = 9;
|
|
uint64 data7 = 10;
|
|
|
|
message RankColor {
|
|
string color = 4;
|
|
}
|
|
|
|
message RankColor2 {
|
|
uint32 data1 = 1;
|
|
string color = 2;
|
|
uint32 data2 = 4;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Basic Text Message from Room
|
|
message WebcastRoomMessage {
|
|
MessageHeader header = 1;
|
|
string data = 2;
|
|
Image Image = 5;
|
|
string data2 = 6;
|
|
}
|
|
|
|
// Host Pins comment to stream
|
|
message WebcastRoomPinMessage {
|
|
MessageHeader header = 1;
|
|
RoomPinMessageData pinData1 = 2;
|
|
string originalMsgType = 30;
|
|
uint64 timestamp = 31;
|
|
RoomPinMessageData2 pinData2 = 32;
|
|
uint32 data1 = 33;
|
|
int32 data2 = 34;
|
|
uint64 data3 = 35;
|
|
|
|
message RoomPinMessageData {
|
|
RoomPinMessageDataDetails details = 1;
|
|
User sender = 2;
|
|
string comment = 3;
|
|
repeated User mentionedUsers = 12;
|
|
string language = 14;
|
|
DataContainer chatData = 18;
|
|
repeated ModerationData moderationData = 19;
|
|
|
|
// Basically a RoomPinMessageHeader
|
|
message RoomPinMessageDataDetails {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3;
|
|
uint64 serverTime = 4;
|
|
uint64 data1 = 6;
|
|
PinMessageStringContainer data2 = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string serverDescription = 15;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 data10 = 25;
|
|
|
|
message PinMessageStringContainer {
|
|
string data = 3;
|
|
}
|
|
}
|
|
}
|
|
|
|
message RoomPinMessageData2 {
|
|
uint64 id = 1;
|
|
RoomPinMessageData2Details details = 32;
|
|
|
|
message RoomPinMessageData2Details {
|
|
uint32 data = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Status of Room (ViewerCount + Top Viewers)
|
|
message WebcastRoomUserSeqMessage {
|
|
MessageHeader header = 1;
|
|
repeated TopViewer topViewers = 2; // Top 4 or less
|
|
uint32 viewerCount = 3; // Number of Viewers in Room
|
|
uint64 data1 = 7;
|
|
uint32 data2 = 8;
|
|
}
|
|
|
|
// Sent for a variety of events, including Follow & Share
|
|
message WebcastSocialMessage {
|
|
SocialMessageHeader header = 1;
|
|
User sender = 2; // CAN BE NULL
|
|
uint64 data1 = 3; // Exists on Share-Message
|
|
uint64 data2 = 4;
|
|
string data3 = 5;
|
|
uint64 totalFollowers = 6; // Exists on Follow-Message
|
|
uint64 data4 = 8; // Exists on Share-Message
|
|
}
|
|
|
|
message WebcastSubNotifyMessage {
|
|
SocialMessageHeader header = 1;
|
|
User sender = 2;
|
|
uint32 data1 = 4;
|
|
uint32 data2 = 5;
|
|
uint32 data3 = 6;
|
|
uint32 data4 = 8;
|
|
}
|
|
|
|
// Related to someone getting banned?
|
|
message WebcastUnauthorizedMemberMessage {
|
|
MessageHeader header = 1;
|
|
uint32 data1 = 2;
|
|
MemberMessageData details1 = 3;
|
|
string data2 = 4;
|
|
MemberMessageData details2 = 5;
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
Message-Headers
|
|
-=-=-=-=-=-=-=-=-=-=-=
|
|
|
|
Most Headers here only different from the base MessageHeader in index 8 (HeaderData)
|
|
This field usually holds a summary of the outer message
|
|
|
|
*/
|
|
|
|
message HeaderData {
|
|
string messageType = 1;
|
|
string details = 2;
|
|
TikTokColor color = 3;
|
|
HeaderDataDetails additionalData = 4;
|
|
|
|
message HeaderDataDetails {
|
|
uint32 data1 = 1;
|
|
string data2 = 11;
|
|
repeated UserContainer users = 21;
|
|
}
|
|
}
|
|
|
|
message ControlData {
|
|
StringData data = 1;
|
|
uint64 serverTime = 2;
|
|
}
|
|
|
|
// Header for Messages. Usually stored in Index1 in the Message
|
|
message MessageHeader {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3;
|
|
uint64 serverTime = 4;
|
|
uint32 data1 = 5;
|
|
uint64 data2 = 6;
|
|
HeaderData headerData = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string details = 15;
|
|
ControlData controlData = 18;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 timeStamp1 = 25;
|
|
}
|
|
|
|
message GiftMessageHeader {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3; // Does not always match RoomID?
|
|
uint64 serverTime = 4;
|
|
uint32 data1 = 5;
|
|
uint64 data2 = 6;
|
|
string description = 7; // "{0}: gifted the host {amount} {giftName}"
|
|
GiftHeaderData headerData = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string details = 15;
|
|
string description2 = 17 ;// "gift_expensive" found in WebcastGiftBroadcastMessage
|
|
ControlData controlData = 18;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 timeStamp1 = 25;
|
|
|
|
message GiftHeaderData {
|
|
string messageType = 1;
|
|
string details = 2;
|
|
TikTokColor color = 3;
|
|
repeated GiftHeaderGiftData giftData = 4;
|
|
|
|
message GiftHeaderGiftData {
|
|
uint32 data1 = 1;
|
|
TikTokColor color = 2;
|
|
string details = 11;
|
|
UserContainer user = 21;
|
|
GiftHeaderGiftDataDetails data2 = 22;
|
|
|
|
message GiftHeaderGiftDataDetails {
|
|
uint64 data1 = 1;
|
|
StringData details = 2; // 1 = DataType, 2 = GiftName
|
|
uint64 data2 = 4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
message LikeMessageHeader {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3;
|
|
uint64 serverTime = 4;
|
|
uint32 data1 = 5;
|
|
uint64 data2 = 6;
|
|
string description = 7;
|
|
LikeData likeData = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string details = 15;
|
|
ControlData controlData = 18;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 timeStamp1 = 25;
|
|
}
|
|
|
|
message MemberMessageHeader {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3;
|
|
uint64 serverTime = 4;
|
|
uint32 data1 = 5;
|
|
uint64 data2 = 6;
|
|
string description = 7;
|
|
MemberMessageData messageData = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string details = 15;
|
|
ControlData controlData = 18;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 timeStamp1 = 25;
|
|
}
|
|
|
|
message SocialMessageHeader {
|
|
string messageType = 1;
|
|
uint64 messageId = 2;
|
|
uint64 roomId = 3;
|
|
uint64 serverTime = 4;
|
|
uint32 data1 = 5;
|
|
uint64 data2 = 6;
|
|
string description = 7;
|
|
SocialMessageData socialData = 8;
|
|
uint64 data3 = 9;
|
|
uint64 data4 = 10;
|
|
uint64 data5 = 11;
|
|
string details = 15;
|
|
ControlData controlData = 18;
|
|
uint64 data6 = 21;
|
|
uint64 data7 = 22;
|
|
uint64 data8 = 23;
|
|
uint64 data9 = 24;
|
|
uint64 timeStamp1 = 25;
|
|
} |