Skip to content

Instantly share code, notes, and snippets.

@pk5ls20
Created February 16, 2025 11:16
Show Gist options
  • Save pk5ls20/afc2eee54a445b8fa749f403e8c94ac0 to your computer and use it in GitHub Desktop.
Save pk5ls20/afc2eee54a445b8fa749f403e8c94ac0 to your computer and use it in GitHub Desktop.
syntax = "proto3";
message Message {
repeated SingleMessage messages = 40800;
}
enum ElemType {
UNKNOWN = 0;
TEXT = 1;
PIC = 2;
FILE = 3;
PTT = 4;
VIDEO = 5;
FACE = 6;
REPLY = 7;
GRAYTIP = 8;
WALLET = 9;
ARKSTRUCT = 10;
MARKETFACE = 11;
LIVEGIFT = 12;
STRUCTLONGMSG = 13;
MARKDOWN = 14;
GIPHY = 15;
MULTIFORWARD = 16;
INLINEKEYBOARD = 17;
INTEXTGIFT = 18;
CALENDAR = 19;
YOLOGAMERESULT = 20;
AVRECORD = 21;
FEED = 22;
ONLINEFILE = 23;
ACTIVITY = 25;
TOFU = 26;
FACEBUBBLE = 27;
SHARELOCATION = 28;
TASKTOPMSG = 29;
ADELIEACTIONBAR = 44;
ADELIERECOMMENDEDMSG = 43;
PROLOGUE = 46;
}
message SingleMessage {
uint64 msg_id = 45001;
ElemType element_type = 45002;
optional uint32 unknown_45003 = 45003; // appear in pic, face_type also appears? // TODO:
// ElemType.TEXT
optional string text_content = 45101;
optional uint32 text_at_type = 45102;
optional uint32 text_at_uid = 45103;
optional uint32 text_unknown_45104 = 45104;
optional string text_at_ntuid = 45105;
// TODO: 45106, 45108-45111
// ElemType.PIC & ElemType.PTT & ElemType.VIDEO
optional string richmedia_file_name = 45402; // pic, video
optional string richmedia_file_uuid = 45403; // video, audio
optional string richmedia_file_subid = 45404; //audio
optional uint32 richmedia_file_size = 45405; // pic, video, audio
optional bytes richmedia_file_md5 = 45406; // pic, video, audio
optional bytes pic_file_sha1 = 45408; // pic
optional uint32 richmedia_width = 45411; // pic, video
optional uint32 richmedia_height = 45412; // pic, video
optional uint32 video_thumb_height = 45413; // video
optional uint32 video_thumb_width = 45414; // video
optional uint32 video_thumb_size = 45415; // video
optional uint32 pic_type = 45416;
optional uint32 pic_unknown_45418 = 45418; // 1
optional string pic_origin_image_md5 = 45424;
optional string pic_file_uuid = 45503;
// TODO: 45505, 45511, 45513, 45517, 45518 (pic)
optional string richmedia_transfer_status = 45550;
optional string pic_download_prev_url_198 = 45802;
optional string pic_download_prev_url_720 = 45803;
optional string pic_download_prev_url_0 = 45804;
optional string pic_source_path = 45812;
optional string pic_domain = 45816;
// TODO: 45815, 45817-45828
optional uint32 video_file_format = 45851;
// TODO: 45852-45856
optional bytes video_thumb_md5 = 45862;
optional uint32 video_source_video_codec_format = 45863;
optional uint32 audio_duration = 45906;
optional uint32 audio_format_type = 45907;
// TODO: 45908, 45911, 45922
optional bytes audio_wave_amplitudes = 45925;
// ElemType.REPLY
optional uint32 reply_replay_msg_seq = 47402;
optional uint32 reply_sender_uid = 47403;
optional string reply_smsg_time = 47404;
// TODO: 47410 msg
optional uint32 reply_unknown_id = 47411; // 0
optional uint64 reply_unknown_id2 = 47416; // 72057595826936030
optional uint64 reply_unknown_id3 = 47422; // 7431998216023368000
optional SourceMsgTextElems reply_source_msg_text_elems = 47423;
// ElemType.FACE
optional uint32 face_index = 47601;
optional string face_text = 47602;
optional string face_pack_id = 47603;
optional string face_sticker_id = 47604;
// TODO: 47605, 47606, 47607-47608, 47609, 47622
// ElemType.ARKSTRUCT
optional string ark_struct_content = 47901;
// ElemType.MULTIFORWARD
optional string forward_resid = 48601;
optional string forward_xml_content = 48602;
optional string forward_filename = 48603;
// TODO: 49154, 49155
}
message SourceMsgTextElems {
optional uint64 unknown_45001 = 45001;
optional uint32 reply_abs_elem_type = 45002;
optional string text_elem_content = 45101;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment