__init__.py 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. # Generated by the protocol buffer compiler. DO NOT EDIT!
  2. # sources: douyin.proto
  3. # plugin: python-betterproto
  4. # This file has been @generated
  5. from dataclasses import dataclass
  6. from typing import (
  7. Dict,
  8. List,
  9. )
  10. import betterproto
  11. class CommentTypeTag(betterproto.Enum):
  12. COMMENTTYPETAGUNKNOWN = 0
  13. COMMENTTYPETAGSTAR = 1
  14. class RoomMsgTypeEnum(betterproto.Enum):
  15. """
  16. from https://github.com/scx567888/live-room-watcher/blob/master/src/main/pr
  17. oto/douyin_hack/webcast/im/RoomMsgTypeEnum.proto
  18. """
  19. DEFAULTROOMMSG = 0
  20. ECOMLIVEREPLAYSAVEROOMMSG = 1
  21. CONSUMERRELATIONROOMMSG = 2
  22. JUMANJIDATAAUTHNOTIFYMSG = 3
  23. VSWELCOMEMSG = 4
  24. MINORREFUNDMSG = 5
  25. PAIDLIVEROOMNOTIFYANCHORMSG = 6
  26. HOSTTEAMSYSTEMMSG = 7
  27. @dataclass(eq=False, repr=False)
  28. class Response(betterproto.Message):
  29. messages_list: List["Message"] = betterproto.message_field(1)
  30. cursor: str = betterproto.string_field(2)
  31. fetch_interval: int = betterproto.uint64_field(3)
  32. now: int = betterproto.uint64_field(4)
  33. internal_ext: str = betterproto.string_field(5)
  34. fetch_type: int = betterproto.uint32_field(6)
  35. route_params: Dict[str, str] = betterproto.map_field(
  36. 7, betterproto.TYPE_STRING, betterproto.TYPE_STRING
  37. )
  38. heartbeat_duration: int = betterproto.uint64_field(8)
  39. need_ack: bool = betterproto.bool_field(9)
  40. push_server: str = betterproto.string_field(10)
  41. live_cursor: str = betterproto.string_field(11)
  42. history_no_more: bool = betterproto.bool_field(12)
  43. @dataclass(eq=False, repr=False)
  44. class Message(betterproto.Message):
  45. method: str = betterproto.string_field(1)
  46. payload: bytes = betterproto.bytes_field(2)
  47. msg_id: int = betterproto.int64_field(3)
  48. msg_type: int = betterproto.int32_field(4)
  49. offset: int = betterproto.int64_field(5)
  50. need_wrds_store: bool = betterproto.bool_field(6)
  51. wrds_version: int = betterproto.int64_field(7)
  52. wrds_sub_key: str = betterproto.string_field(8)
  53. @dataclass(eq=False, repr=False)
  54. class EmojiChatMessage(betterproto.Message):
  55. common: "Common" = betterproto.message_field(1)
  56. user: "User" = betterproto.message_field(2)
  57. emoji_id: int = betterproto.int64_field(3)
  58. emoji_content: "Text" = betterproto.message_field(4)
  59. default_content: str = betterproto.string_field(5)
  60. background_image: "Image" = betterproto.message_field(6)
  61. from_intercom: bool = betterproto.bool_field(7)
  62. intercom_hide_user_card: bool = betterproto.bool_field(8)
  63. @dataclass(eq=False, repr=False)
  64. class ChatMessage(betterproto.Message):
  65. """聊天"""
  66. common: "Common" = betterproto.message_field(1)
  67. user: "User" = betterproto.message_field(2)
  68. content: str = betterproto.string_field(3)
  69. visible_to_sender: bool = betterproto.bool_field(4)
  70. background_image: "Image" = betterproto.message_field(5)
  71. full_screen_text_color: str = betterproto.string_field(6)
  72. background_image_v2: "Image" = betterproto.message_field(7)
  73. public_area_common: "PublicAreaCommon" = betterproto.message_field(9)
  74. gift_image: "Image" = betterproto.message_field(10)
  75. agree_msg_id: int = betterproto.uint64_field(11)
  76. priority_level: int = betterproto.uint32_field(12)
  77. landscape_area_common: "LandscapeAreaCommon" = betterproto.message_field(13)
  78. event_time: int = betterproto.uint64_field(15)
  79. send_review: bool = betterproto.bool_field(16)
  80. from_intercom: bool = betterproto.bool_field(17)
  81. intercom_hide_user_card: bool = betterproto.bool_field(18)
  82. chat_by: str = betterproto.string_field(20)
  83. """repeated chatTagsList = 19;"""
  84. individual_chat_priority: int = betterproto.uint32_field(21)
  85. rtf_content: "Text" = betterproto.message_field(22)
  86. @dataclass(eq=False, repr=False)
  87. class LandscapeAreaCommon(betterproto.Message):
  88. show_head: bool = betterproto.bool_field(1)
  89. show_nickname: bool = betterproto.bool_field(2)
  90. show_font_color: bool = betterproto.bool_field(3)
  91. color_value_list: List[str] = betterproto.string_field(4)
  92. comment_type_tags_list: List["CommentTypeTag"] = betterproto.enum_field(5)
  93. @dataclass(eq=False, repr=False)
  94. class RoomUserSeqMessage(betterproto.Message):
  95. common: "Common" = betterproto.message_field(1)
  96. ranks_list: List["RoomUserSeqMessageContributor"] = betterproto.message_field(2)
  97. total: int = betterproto.int64_field(3)
  98. pop_str: str = betterproto.string_field(4)
  99. seats_list: List["RoomUserSeqMessageContributor"] = betterproto.message_field(5)
  100. popularity: int = betterproto.int64_field(6)
  101. total_user: int = betterproto.int64_field(7)
  102. total_user_str: str = betterproto.string_field(8)
  103. total_str: str = betterproto.string_field(9)
  104. online_user_for_anchor: str = betterproto.string_field(10)
  105. total_pv_for_anchor: str = betterproto.string_field(11)
  106. up_right_stats_str: str = betterproto.string_field(12)
  107. up_right_stats_str_complete: str = betterproto.string_field(13)
  108. @dataclass(eq=False, repr=False)
  109. class CommonTextMessage(betterproto.Message):
  110. common: "Common" = betterproto.message_field(1)
  111. user: "User" = betterproto.message_field(2)
  112. scene: str = betterproto.string_field(3)
  113. @dataclass(eq=False, repr=False)
  114. class UpdateFanTicketMessage(betterproto.Message):
  115. common: "Common" = betterproto.message_field(1)
  116. room_fan_ticket_count_text: str = betterproto.string_field(2)
  117. room_fan_ticket_count: int = betterproto.uint64_field(3)
  118. force_update: bool = betterproto.bool_field(4)
  119. @dataclass(eq=False, repr=False)
  120. class RoomUserSeqMessageContributor(betterproto.Message):
  121. score: int = betterproto.uint64_field(1)
  122. user: "User" = betterproto.message_field(2)
  123. rank: int = betterproto.uint64_field(3)
  124. delta: int = betterproto.uint64_field(4)
  125. is_hidden: bool = betterproto.bool_field(5)
  126. score_description: str = betterproto.string_field(6)
  127. exactly_score: str = betterproto.string_field(7)
  128. @dataclass(eq=False, repr=False)
  129. class GiftMessage(betterproto.Message):
  130. """礼物消息"""
  131. common: "Common" = betterproto.message_field(1)
  132. gift_id: int = betterproto.uint64_field(2)
  133. fan_ticket_count: int = betterproto.uint64_field(3)
  134. group_count: int = betterproto.uint64_field(4)
  135. repeat_count: int = betterproto.uint64_field(5)
  136. combo_count: int = betterproto.uint64_field(6)
  137. user: "User" = betterproto.message_field(7)
  138. to_user: "User" = betterproto.message_field(8)
  139. repeat_end: int = betterproto.uint32_field(9)
  140. text_effect: "TextEffect" = betterproto.message_field(10)
  141. group_id: int = betterproto.uint64_field(11)
  142. income_taskgifts: int = betterproto.uint64_field(12)
  143. room_fan_ticket_count: int = betterproto.uint64_field(13)
  144. priority: "GiftImPriority" = betterproto.message_field(14)
  145. gift: "GiftStruct" = betterproto.message_field(15)
  146. log_id: str = betterproto.string_field(16)
  147. send_type: int = betterproto.uint64_field(17)
  148. public_area_common: "PublicAreaCommon" = betterproto.message_field(18)
  149. tray_display_text: "Text" = betterproto.message_field(19)
  150. banned_display_effects: int = betterproto.uint64_field(20)
  151. display_for_self: bool = betterproto.bool_field(25)
  152. """
  153. GiftTrayInfo trayInfo = 21; AssetEffectMixInfo assetEffectMixInfo = 22;
  154. """
  155. interact_gift_info: str = betterproto.string_field(26)
  156. diy_item_info: str = betterproto.string_field(27)
  157. min_asset_set_list: List[int] = betterproto.uint64_field(28)
  158. total_count: int = betterproto.uint64_field(29)
  159. client_gift_source: int = betterproto.uint32_field(30)
  160. to_user_ids_list: List[int] = betterproto.uint64_field(32)
  161. """AnchorGiftData anchorGift = 31;"""
  162. send_time: int = betterproto.uint64_field(33)
  163. force_display_effects: int = betterproto.uint64_field(34)
  164. trace_id: str = betterproto.string_field(35)
  165. effect_display_ts: int = betterproto.uint64_field(36)
  166. @dataclass(eq=False, repr=False)
  167. class GiftStruct(betterproto.Message):
  168. image: "Image" = betterproto.message_field(1)
  169. describe: str = betterproto.string_field(2)
  170. notify: bool = betterproto.bool_field(3)
  171. duration: int = betterproto.uint64_field(4)
  172. id: int = betterproto.uint64_field(5)
  173. for_linkmic: bool = betterproto.bool_field(7)
  174. """GiftStructFansClubInfo fansclubInfo = 6;"""
  175. doodle: bool = betterproto.bool_field(8)
  176. for_fansclub: bool = betterproto.bool_field(9)
  177. combo: bool = betterproto.bool_field(10)
  178. type: int = betterproto.uint32_field(11)
  179. diamond_count: int = betterproto.uint32_field(12)
  180. is_displayed_on_panel: bool = betterproto.bool_field(13)
  181. primary_effect_id: int = betterproto.uint64_field(14)
  182. gift_label_icon: "Image" = betterproto.message_field(15)
  183. name: str = betterproto.string_field(16)
  184. region: str = betterproto.string_field(17)
  185. manual: str = betterproto.string_field(18)
  186. for_custom: bool = betterproto.bool_field(19)
  187. icon: "Image" = betterproto.message_field(21)
  188. """specialEffectsMap = 20;"""
  189. action_type: int = betterproto.uint32_field(22)
  190. @dataclass(eq=False, repr=False)
  191. class GiftImPriority(betterproto.Message):
  192. queue_sizes_list: List[int] = betterproto.uint64_field(1)
  193. self_queue_priority: int = betterproto.uint64_field(2)
  194. priority: int = betterproto.uint64_field(3)
  195. @dataclass(eq=False, repr=False)
  196. class TextEffect(betterproto.Message):
  197. portrait: "TextEffectDetail" = betterproto.message_field(1)
  198. landscape: "TextEffectDetail" = betterproto.message_field(2)
  199. @dataclass(eq=False, repr=False)
  200. class TextEffectDetail(betterproto.Message):
  201. text: "Text" = betterproto.message_field(1)
  202. text_font_size: int = betterproto.uint32_field(2)
  203. background: "Image" = betterproto.message_field(3)
  204. start: int = betterproto.uint32_field(4)
  205. duration: int = betterproto.uint32_field(5)
  206. x: int = betterproto.uint32_field(6)
  207. y: int = betterproto.uint32_field(7)
  208. width: int = betterproto.uint32_field(8)
  209. height: int = betterproto.uint32_field(9)
  210. shadow_dx: int = betterproto.uint32_field(10)
  211. shadow_dy: int = betterproto.uint32_field(11)
  212. shadow_radius: int = betterproto.uint32_field(12)
  213. shadow_color: str = betterproto.string_field(13)
  214. stroke_color: str = betterproto.string_field(14)
  215. stroke_width: int = betterproto.uint32_field(15)
  216. @dataclass(eq=False, repr=False)
  217. class MemberMessage(betterproto.Message):
  218. """成员消息"""
  219. common: "Common" = betterproto.message_field(1)
  220. user: "User" = betterproto.message_field(2)
  221. member_count: int = betterproto.uint64_field(3)
  222. operator: "User" = betterproto.message_field(4)
  223. is_set_to_admin: bool = betterproto.bool_field(5)
  224. is_top_user: bool = betterproto.bool_field(6)
  225. rank_score: int = betterproto.uint64_field(7)
  226. top_user_no: int = betterproto.uint64_field(8)
  227. enter_type: int = betterproto.uint64_field(9)
  228. action: int = betterproto.uint64_field(10)
  229. action_description: str = betterproto.string_field(11)
  230. user_id: int = betterproto.uint64_field(12)
  231. effect_config: "EffectConfig" = betterproto.message_field(13)
  232. pop_str: str = betterproto.string_field(14)
  233. enter_effect_config: "EffectConfig" = betterproto.message_field(15)
  234. background_image: "Image" = betterproto.message_field(16)
  235. background_image_v2: "Image" = betterproto.message_field(17)
  236. anchor_display_text: "Text" = betterproto.message_field(18)
  237. public_area_common: "PublicAreaCommon" = betterproto.message_field(19)
  238. user_enter_tip_type: int = betterproto.uint64_field(20)
  239. anchor_enter_tip_type: int = betterproto.uint64_field(21)
  240. @dataclass(eq=False, repr=False)
  241. class PublicAreaCommon(betterproto.Message):
  242. user_label: "Image" = betterproto.message_field(1)
  243. user_consume_in_room: int = betterproto.uint64_field(2)
  244. user_send_gift_cnt_in_room: int = betterproto.uint64_field(3)
  245. @dataclass(eq=False, repr=False)
  246. class EffectConfig(betterproto.Message):
  247. type: int = betterproto.uint64_field(1)
  248. icon: "Image" = betterproto.message_field(2)
  249. avatar_pos: int = betterproto.uint64_field(3)
  250. text: "Text" = betterproto.message_field(4)
  251. text_icon: "Image" = betterproto.message_field(5)
  252. stay_time: int = betterproto.uint32_field(6)
  253. anim_asset_id: int = betterproto.uint64_field(7)
  254. badge: "Image" = betterproto.message_field(8)
  255. flex_setting_array_list: List[int] = betterproto.uint64_field(9)
  256. text_icon_overlay: "Image" = betterproto.message_field(10)
  257. animated_badge: "Image" = betterproto.message_field(11)
  258. has_sweep_light: bool = betterproto.bool_field(12)
  259. text_flex_setting_array_list: List[int] = betterproto.uint64_field(13)
  260. center_anim_asset_id: int = betterproto.uint64_field(14)
  261. dynamic_image: "Image" = betterproto.message_field(15)
  262. extra_map: Dict[str, str] = betterproto.map_field(
  263. 16, betterproto.TYPE_STRING, betterproto.TYPE_STRING
  264. )
  265. mp4_anim_asset_id: int = betterproto.uint64_field(17)
  266. priority: int = betterproto.uint64_field(18)
  267. max_wait_time: int = betterproto.uint64_field(19)
  268. dress_id: str = betterproto.string_field(20)
  269. alignment: int = betterproto.uint64_field(21)
  270. alignment_offset: int = betterproto.uint64_field(22)
  271. @dataclass(eq=False, repr=False)
  272. class Text(betterproto.Message):
  273. key: str = betterproto.string_field(1)
  274. default_patter: str = betterproto.string_field(2)
  275. default_format: "TextFormat" = betterproto.message_field(3)
  276. pieces_list: List["TextPiece"] = betterproto.message_field(4)
  277. @dataclass(eq=False, repr=False)
  278. class TextPiece(betterproto.Message):
  279. type: bool = betterproto.bool_field(1)
  280. format: "TextFormat" = betterproto.message_field(2)
  281. string_value: str = betterproto.string_field(3)
  282. user_value: "TextPieceUser" = betterproto.message_field(4)
  283. gift_value: "TextPieceGift" = betterproto.message_field(5)
  284. heart_value: "TextPieceHeart" = betterproto.message_field(6)
  285. pattern_ref_value: "TextPiecePatternRef" = betterproto.message_field(7)
  286. image_value: "TextPieceImage" = betterproto.message_field(8)
  287. @dataclass(eq=False, repr=False)
  288. class TextPieceImage(betterproto.Message):
  289. image: "Image" = betterproto.message_field(1)
  290. scaling_rate: float = betterproto.float_field(2)
  291. @dataclass(eq=False, repr=False)
  292. class TextPiecePatternRef(betterproto.Message):
  293. key: str = betterproto.string_field(1)
  294. default_pattern: str = betterproto.string_field(2)
  295. @dataclass(eq=False, repr=False)
  296. class TextPieceHeart(betterproto.Message):
  297. color: str = betterproto.string_field(1)
  298. @dataclass(eq=False, repr=False)
  299. class TextPieceGift(betterproto.Message):
  300. gift_id: int = betterproto.uint64_field(1)
  301. name_ref: "PatternRef" = betterproto.message_field(2)
  302. @dataclass(eq=False, repr=False)
  303. class PatternRef(betterproto.Message):
  304. key: str = betterproto.string_field(1)
  305. default_pattern: str = betterproto.string_field(2)
  306. @dataclass(eq=False, repr=False)
  307. class TextPieceUser(betterproto.Message):
  308. user: "User" = betterproto.message_field(1)
  309. with_colon: bool = betterproto.bool_field(2)
  310. @dataclass(eq=False, repr=False)
  311. class TextFormat(betterproto.Message):
  312. color: str = betterproto.string_field(1)
  313. bold: bool = betterproto.bool_field(2)
  314. italic: bool = betterproto.bool_field(3)
  315. weight: int = betterproto.uint32_field(4)
  316. italic_angle: int = betterproto.uint32_field(5)
  317. font_size: int = betterproto.uint32_field(6)
  318. use_heigh_light_color: bool = betterproto.bool_field(7)
  319. use_remote_clor: bool = betterproto.bool_field(8)
  320. @dataclass(eq=False, repr=False)
  321. class LikeMessage(betterproto.Message):
  322. """点赞"""
  323. common: "Common" = betterproto.message_field(1)
  324. count: int = betterproto.uint64_field(2)
  325. total: int = betterproto.uint64_field(3)
  326. color: int = betterproto.uint64_field(4)
  327. user: "User" = betterproto.message_field(5)
  328. icon: str = betterproto.string_field(6)
  329. double_like_detail: "DoubleLikeDetail" = betterproto.message_field(7)
  330. display_control_info: "DisplayControlInfo" = betterproto.message_field(8)
  331. linkmic_guest_uid: int = betterproto.uint64_field(9)
  332. scene: str = betterproto.string_field(10)
  333. pico_display_info: "PicoDisplayInfo" = betterproto.message_field(11)
  334. @dataclass(eq=False, repr=False)
  335. class SocialMessage(betterproto.Message):
  336. common: "Common" = betterproto.message_field(1)
  337. user: "User" = betterproto.message_field(2)
  338. share_type: int = betterproto.uint64_field(3)
  339. action: int = betterproto.uint64_field(4)
  340. share_target: str = betterproto.string_field(5)
  341. follow_count: int = betterproto.uint64_field(6)
  342. public_area_common: "PublicAreaCommon" = betterproto.message_field(7)
  343. @dataclass(eq=False, repr=False)
  344. class PicoDisplayInfo(betterproto.Message):
  345. combo_sum_count: int = betterproto.uint64_field(1)
  346. emoji: str = betterproto.string_field(2)
  347. emoji_icon: "Image" = betterproto.message_field(3)
  348. emoji_text: str = betterproto.string_field(4)
  349. @dataclass(eq=False, repr=False)
  350. class DoubleLikeDetail(betterproto.Message):
  351. double_flag: bool = betterproto.bool_field(1)
  352. seq_id: int = betterproto.uint32_field(2)
  353. renewals_num: int = betterproto.uint32_field(3)
  354. triggers_num: int = betterproto.uint32_field(4)
  355. @dataclass(eq=False, repr=False)
  356. class DisplayControlInfo(betterproto.Message):
  357. show_text: bool = betterproto.bool_field(1)
  358. show_icons: bool = betterproto.bool_field(2)
  359. @dataclass(eq=False, repr=False)
  360. class EpisodeChatMessage(betterproto.Message):
  361. common: "Message" = betterproto.message_field(1)
  362. user: "User" = betterproto.message_field(2)
  363. content: str = betterproto.string_field(3)
  364. visible_to_sende: bool = betterproto.bool_field(4)
  365. gift_image: "Image" = betterproto.message_field(7)
  366. """
  367. BackgroundImage backgroundImage = 5; PublicAreaCommon publicAreaCommon =
  368. 6;
  369. """
  370. agree_msg_id: int = betterproto.uint64_field(8)
  371. color_value_list: List[str] = betterproto.string_field(9)
  372. @dataclass(eq=False, repr=False)
  373. class MatchAgainstScoreMessage(betterproto.Message):
  374. common: "Common" = betterproto.message_field(1)
  375. against: "Against" = betterproto.message_field(2)
  376. match_status: int = betterproto.uint32_field(3)
  377. display_status: int = betterproto.uint32_field(4)
  378. @dataclass(eq=False, repr=False)
  379. class Against(betterproto.Message):
  380. left_name: str = betterproto.string_field(1)
  381. left_logo: "Image" = betterproto.message_field(2)
  382. left_goal: str = betterproto.string_field(3)
  383. right_name: str = betterproto.string_field(6)
  384. """
  385. LeftPlayersList leftPlayersList = 4; LeftGoalStageDetail
  386. leftGoalStageDetail = 5;
  387. """
  388. right_logo: "Image" = betterproto.message_field(7)
  389. right_goal: str = betterproto.string_field(8)
  390. timestamp: int = betterproto.uint64_field(11)
  391. """
  392. RightPlayersList rightPlayersList = 9; RightGoalStageDetail
  393. rightGoalStageDetail = 10;
  394. """
  395. version: int = betterproto.uint64_field(12)
  396. left_team_id: int = betterproto.uint64_field(13)
  397. right_team_id: int = betterproto.uint64_field(14)
  398. diff_sei2_abs_second: int = betterproto.uint64_field(15)
  399. final_goal_stage: int = betterproto.uint32_field(16)
  400. current_goal_stage: int = betterproto.uint32_field(17)
  401. left_score_addition: int = betterproto.uint32_field(18)
  402. right_score_addition: int = betterproto.uint32_field(19)
  403. left_goal_int: int = betterproto.uint64_field(20)
  404. right_goal_int: int = betterproto.uint64_field(21)
  405. @dataclass(eq=False, repr=False)
  406. class Common(betterproto.Message):
  407. method: str = betterproto.string_field(1)
  408. msg_id: int = betterproto.uint64_field(2)
  409. room_id: int = betterproto.uint64_field(3)
  410. create_time: int = betterproto.uint64_field(4)
  411. monitor: int = betterproto.uint32_field(5)
  412. is_show_msg: bool = betterproto.bool_field(6)
  413. describe: str = betterproto.string_field(7)
  414. fold_type: int = betterproto.uint64_field(9)
  415. """DisplayText displayText = 8;"""
  416. anchor_fold_type: int = betterproto.uint64_field(10)
  417. priority_score: int = betterproto.uint64_field(11)
  418. log_id: str = betterproto.string_field(12)
  419. msg_process_filter_k: str = betterproto.string_field(13)
  420. msg_process_filter_v: str = betterproto.string_field(14)
  421. user: "User" = betterproto.message_field(15)
  422. anchor_fold_type_v2: int = betterproto.uint64_field(17)
  423. """Room room = 16;"""
  424. process_at_sei_time_ms: int = betterproto.uint64_field(18)
  425. random_dispatch_ms: int = betterproto.uint64_field(19)
  426. is_dispatch: bool = betterproto.bool_field(20)
  427. channel_id: int = betterproto.uint64_field(21)
  428. diff_sei2_abs_second: int = betterproto.uint64_field(22)
  429. anchor_fold_duration: int = betterproto.uint64_field(23)
  430. @dataclass(eq=False, repr=False)
  431. class User(betterproto.Message):
  432. id: int = betterproto.uint64_field(1)
  433. short_id: int = betterproto.uint64_field(2)
  434. nick_name: str = betterproto.string_field(3)
  435. gender: int = betterproto.uint32_field(4)
  436. signature: str = betterproto.string_field(5)
  437. level: int = betterproto.uint32_field(6)
  438. birthday: int = betterproto.uint64_field(7)
  439. telephone: str = betterproto.string_field(8)
  440. avatar_thumb: "Image" = betterproto.message_field(9)
  441. avatar_medium: "Image" = betterproto.message_field(10)
  442. avatar_large: "Image" = betterproto.message_field(11)
  443. verified: bool = betterproto.bool_field(12)
  444. experience: int = betterproto.uint32_field(13)
  445. city: str = betterproto.string_field(14)
  446. status: int = betterproto.int32_field(15)
  447. create_time: int = betterproto.uint64_field(16)
  448. modify_time: int = betterproto.uint64_field(17)
  449. secret: int = betterproto.uint32_field(18)
  450. share_qrcode_uri: str = betterproto.string_field(19)
  451. income_share_percent: int = betterproto.uint32_field(20)
  452. badge_image_list: List["Image"] = betterproto.message_field(21)
  453. follow_info: "FollowInfo" = betterproto.message_field(22)
  454. pay_grade: "PayGrade" = betterproto.message_field(23)
  455. fans_club: "FansClub" = betterproto.message_field(24)
  456. special_id: str = betterproto.string_field(26)
  457. """Border Border = 25;"""
  458. avatar_border: "Image" = betterproto.message_field(27)
  459. medal: "Image" = betterproto.message_field(28)
  460. real_time_icons_list: List["Image"] = betterproto.message_field(29)
  461. display_id: str = betterproto.string_field(38)
  462. sec_uid: str = betterproto.string_field(46)
  463. fan_ticket_count: int = betterproto.uint64_field(1022)
  464. id_str: str = betterproto.string_field(1028)
  465. age_range: int = betterproto.uint32_field(1045)
  466. @dataclass(eq=False, repr=False)
  467. class PayGrade(betterproto.Message):
  468. total_diamond_count: int = betterproto.int64_field(1)
  469. diamond_icon: "Image" = betterproto.message_field(2)
  470. name: str = betterproto.string_field(3)
  471. icon: "Image" = betterproto.message_field(4)
  472. next_name: str = betterproto.string_field(5)
  473. level: int = betterproto.int64_field(6)
  474. next_icon: "Image" = betterproto.message_field(7)
  475. next_diamond: int = betterproto.int64_field(8)
  476. now_diamond: int = betterproto.int64_field(9)
  477. this_grade_min_diamond: int = betterproto.int64_field(10)
  478. this_grade_max_diamond: int = betterproto.int64_field(11)
  479. pay_diamond_bak: int = betterproto.int64_field(12)
  480. grade_describe: str = betterproto.string_field(13)
  481. grade_icon_list: List["GradeIcon"] = betterproto.message_field(14)
  482. screen_chat_type: int = betterproto.int64_field(15)
  483. im_icon: "Image" = betterproto.message_field(16)
  484. im_icon_with_level: "Image" = betterproto.message_field(17)
  485. live_icon: "Image" = betterproto.message_field(18)
  486. new_im_icon_with_level: "Image" = betterproto.message_field(19)
  487. new_live_icon: "Image" = betterproto.message_field(20)
  488. upgrade_need_consume: int = betterproto.int64_field(21)
  489. next_privileges: str = betterproto.string_field(22)
  490. background: "Image" = betterproto.message_field(23)
  491. background_back: "Image" = betterproto.message_field(24)
  492. score: int = betterproto.int64_field(25)
  493. buff_info: "GradeBuffInfo" = betterproto.message_field(26)
  494. grade_banner: str = betterproto.string_field(1001)
  495. profile_dialog_bg: "Image" = betterproto.message_field(1002)
  496. profile_dialog_bg_back: "Image" = betterproto.message_field(1003)
  497. @dataclass(eq=False, repr=False)
  498. class FansClub(betterproto.Message):
  499. data: "FansClubData" = betterproto.message_field(1)
  500. prefer_data: Dict[int, "FansClubData"] = betterproto.map_field(
  501. 2, betterproto.TYPE_INT32, betterproto.TYPE_MESSAGE
  502. )
  503. @dataclass(eq=False, repr=False)
  504. class FansClubData(betterproto.Message):
  505. club_name: str = betterproto.string_field(1)
  506. level: int = betterproto.int32_field(2)
  507. user_fans_club_status: int = betterproto.int32_field(3)
  508. badge: "UserBadge" = betterproto.message_field(4)
  509. available_gift_ids: List[int] = betterproto.int64_field(5)
  510. anchor_id: int = betterproto.int64_field(6)
  511. @dataclass(eq=False, repr=False)
  512. class UserBadge(betterproto.Message):
  513. icons: Dict[int, "Image"] = betterproto.map_field(
  514. 1, betterproto.TYPE_INT32, betterproto.TYPE_MESSAGE
  515. )
  516. title: str = betterproto.string_field(2)
  517. @dataclass(eq=False, repr=False)
  518. class GradeBuffInfo(betterproto.Message):
  519. pass
  520. @dataclass(eq=False, repr=False)
  521. class Border(betterproto.Message):
  522. pass
  523. @dataclass(eq=False, repr=False)
  524. class GradeIcon(betterproto.Message):
  525. icon: "Image" = betterproto.message_field(1)
  526. icon_diamond: int = betterproto.int64_field(2)
  527. level: int = betterproto.int64_field(3)
  528. level_str: str = betterproto.string_field(4)
  529. @dataclass(eq=False, repr=False)
  530. class FollowInfo(betterproto.Message):
  531. following_count: int = betterproto.uint64_field(1)
  532. follower_count: int = betterproto.uint64_field(2)
  533. follow_status: int = betterproto.uint64_field(3)
  534. push_status: int = betterproto.uint64_field(4)
  535. remark_name: str = betterproto.string_field(5)
  536. follower_count_str: str = betterproto.string_field(6)
  537. following_count_str: str = betterproto.string_field(7)
  538. @dataclass(eq=False, repr=False)
  539. class Image(betterproto.Message):
  540. url_list_list: List[str] = betterproto.string_field(1)
  541. uri: str = betterproto.string_field(2)
  542. height: int = betterproto.uint64_field(3)
  543. width: int = betterproto.uint64_field(4)
  544. avg_color: str = betterproto.string_field(5)
  545. image_type: int = betterproto.uint32_field(6)
  546. open_web_url: str = betterproto.string_field(7)
  547. content: "ImageContent" = betterproto.message_field(8)
  548. is_animated: bool = betterproto.bool_field(9)
  549. flex_setting_list: "NinePatchSetting" = betterproto.message_field(10)
  550. text_setting_list: "NinePatchSetting" = betterproto.message_field(11)
  551. @dataclass(eq=False, repr=False)
  552. class NinePatchSetting(betterproto.Message):
  553. setting_list_list: List[str] = betterproto.string_field(1)
  554. @dataclass(eq=False, repr=False)
  555. class ImageContent(betterproto.Message):
  556. name: str = betterproto.string_field(1)
  557. font_color: str = betterproto.string_field(2)
  558. level: int = betterproto.uint64_field(3)
  559. alternative_text: str = betterproto.string_field(4)
  560. @dataclass(eq=False, repr=False)
  561. class PushFrame(betterproto.Message):
  562. seq_id: int = betterproto.uint64_field(1)
  563. log_id: int = betterproto.uint64_field(2)
  564. service: int = betterproto.uint64_field(3)
  565. method: int = betterproto.uint64_field(4)
  566. headers_list: List["HeadersList"] = betterproto.message_field(5)
  567. payload_encoding: str = betterproto.string_field(6)
  568. payload_type: str = betterproto.string_field(7)
  569. payload: bytes = betterproto.bytes_field(8)
  570. @dataclass(eq=False, repr=False)
  571. class Kk(betterproto.Message):
  572. k: int = betterproto.uint32_field(14)
  573. @dataclass(eq=False, repr=False)
  574. class SendMessageBody(betterproto.Message):
  575. conversation_id: str = betterproto.string_field(1)
  576. conversation_type: int = betterproto.uint32_field(2)
  577. conversation_short_id: int = betterproto.uint64_field(3)
  578. content: str = betterproto.string_field(4)
  579. ext: List["ExtList"] = betterproto.message_field(5)
  580. message_type: int = betterproto.uint32_field(6)
  581. ticket: str = betterproto.string_field(7)
  582. client_message_id: str = betterproto.string_field(8)
  583. @dataclass(eq=False, repr=False)
  584. class ExtList(betterproto.Message):
  585. key: str = betterproto.string_field(1)
  586. value: str = betterproto.string_field(2)
  587. @dataclass(eq=False, repr=False)
  588. class Rsp(betterproto.Message):
  589. a: int = betterproto.int32_field(1)
  590. b: int = betterproto.int32_field(2)
  591. c: int = betterproto.int32_field(3)
  592. d: str = betterproto.string_field(4)
  593. e: int = betterproto.int32_field(5)
  594. f: "RspF" = betterproto.message_field(6)
  595. g: str = betterproto.string_field(7)
  596. h: int = betterproto.uint64_field(10)
  597. i: int = betterproto.uint64_field(11)
  598. j: int = betterproto.uint64_field(13)
  599. @dataclass(eq=False, repr=False)
  600. class RspF(betterproto.Message):
  601. q1: int = betterproto.uint64_field(1)
  602. q3: int = betterproto.uint64_field(3)
  603. q4: str = betterproto.string_field(4)
  604. q5: int = betterproto.uint64_field(5)
  605. @dataclass(eq=False, repr=False)
  606. class PreMessage(betterproto.Message):
  607. cmd: int = betterproto.uint32_field(1)
  608. sequence_id: int = betterproto.uint32_field(2)
  609. sdk_version: str = betterproto.string_field(3)
  610. token: str = betterproto.string_field(4)
  611. refer: int = betterproto.uint32_field(5)
  612. inbox_type: int = betterproto.uint32_field(6)
  613. build_number: str = betterproto.string_field(7)
  614. send_message_body: "SendMessageBody" = betterproto.message_field(8)
  615. aa: str = betterproto.string_field(9)
  616. """字段名待定"""
  617. device_platform: str = betterproto.string_field(11)
  618. headers: List["HeadersList"] = betterproto.message_field(15)
  619. auth_type: int = betterproto.uint32_field(18)
  620. biz: str = betterproto.string_field(21)
  621. access: str = betterproto.string_field(22)
  622. @dataclass(eq=False, repr=False)
  623. class HeadersList(betterproto.Message):
  624. key: str = betterproto.string_field(1)
  625. value: str = betterproto.string_field(2)
  626. @dataclass(eq=False, repr=False)
  627. class LiveShoppingMessage(betterproto.Message):
  628. common: "Common" = betterproto.message_field(1)
  629. msg_type: int = betterproto.int32_field(2)
  630. promotion_id: int = betterproto.int64_field(4)
  631. @dataclass(eq=False, repr=False)
  632. class RoomStatsMessage(betterproto.Message):
  633. common: "Common" = betterproto.message_field(1)
  634. display_short: str = betterproto.string_field(2)
  635. display_middle: str = betterproto.string_field(3)
  636. display_long: str = betterproto.string_field(4)
  637. display_value: int = betterproto.int64_field(5)
  638. display_version: int = betterproto.int64_field(6)
  639. incremental: bool = betterproto.bool_field(7)
  640. is_hidden: bool = betterproto.bool_field(8)
  641. total: int = betterproto.int64_field(9)
  642. display_type: int = betterproto.int64_field(10)
  643. @dataclass(eq=False, repr=False)
  644. class ProductInfo(betterproto.Message):
  645. promotion_id: int = betterproto.int64_field(1)
  646. index: int = betterproto.int32_field(2)
  647. target_flash_uids_list: List[int] = betterproto.int64_field(3)
  648. explain_type: int = betterproto.int64_field(4)
  649. @dataclass(eq=False, repr=False)
  650. class CategoryInfo(betterproto.Message):
  651. id: int = betterproto.int32_field(1)
  652. name: str = betterproto.string_field(2)
  653. promotion_ids_list: List[int] = betterproto.int64_field(3)
  654. type: str = betterproto.string_field(4)
  655. unique_index: str = betterproto.string_field(5)
  656. @dataclass(eq=False, repr=False)
  657. class ProductChangeMessage(betterproto.Message):
  658. common: "Common" = betterproto.message_field(1)
  659. update_timestamp: int = betterproto.int64_field(2)
  660. update_toast: str = betterproto.string_field(3)
  661. update_product_info_list: List["ProductInfo"] = betterproto.message_field(4)
  662. total: int = betterproto.int64_field(5)
  663. update_category_info_list: List["CategoryInfo"] = betterproto.message_field(8)
  664. @dataclass(eq=False, repr=False)
  665. class ControlMessage(betterproto.Message):
  666. """
  667. from https://github.com/HaoDong108/DouyinBarrageGrab/blob/main/BarrageGrab/
  668. proto/message.proto status = 3 下播
  669. """
  670. common: "Common" = betterproto.message_field(1)
  671. status: int = betterproto.int32_field(2)
  672. @dataclass(eq=False, repr=False)
  673. class FansclubMessage(betterproto.Message):
  674. """
  675. from https://github.com/HaoDong108/DouyinBarrageGrab/blob/main/BarrageGrab/
  676. proto/message.proto
  677. """
  678. common_info: "Common" = betterproto.message_field(1)
  679. type: int = betterproto.int32_field(2)
  680. """升级是1,加入是2"""
  681. content: str = betterproto.string_field(3)
  682. user: "User" = betterproto.message_field(4)
  683. @dataclass(eq=False, repr=False)
  684. class RoomRankMessage(betterproto.Message):
  685. """
  686. from https://github.com/scx567888/live-room-watcher/blob/master/src/main/pr
  687. oto/douyin_hack/webcast/im/RoomRankMessage.proto 直播间排行榜
  688. """
  689. common: "Common" = betterproto.message_field(1)
  690. ranks_list: List["RoomRankMessageRoomRank"] = betterproto.message_field(2)
  691. @dataclass(eq=False, repr=False)
  692. class RoomRankMessageRoomRank(betterproto.Message):
  693. user: "User" = betterproto.message_field(1)
  694. score_str: str = betterproto.string_field(2)
  695. profile_hidden: bool = betterproto.bool_field(3)
  696. @dataclass(eq=False, repr=False)
  697. class RoomMessage(betterproto.Message):
  698. """
  699. from https://github.com/scx567888/live-room-
  700. watcher/blob/master/src/main/proto/douyin_hack/webcast/im/RoomMessage.proto
  701. """
  702. common: "Common" = betterproto.message_field(1)
  703. content: str = betterproto.string_field(2)
  704. supprot_landscape: bool = betterproto.bool_field(3)
  705. roommessagetype: "RoomMsgTypeEnum" = betterproto.enum_field(4)
  706. system_top_msg: bool = betterproto.bool_field(5)
  707. forced_guarantee: bool = betterproto.bool_field(6)
  708. biz_scene: str = betterproto.string_field(20)
  709. buried_point_map: Dict[str, str] = betterproto.map_field(
  710. 30, betterproto.TYPE_STRING, betterproto.TYPE_STRING
  711. )