320 lines
6.3 KiB
Protocol Buffer
320 lines
6.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
package client;
|
|
|
|
option go_package = "../gmproto";
|
|
|
|
import "conversations.proto";
|
|
import "authentication.proto";
|
|
import "settings.proto";
|
|
import "util.proto";
|
|
import "events.proto";
|
|
|
|
message NotifyDittoActivityRequest {
|
|
// This is not actually a boolean: after logging out, field 2 has value 2, and field 3 has value 1.
|
|
bool success = 2;
|
|
}
|
|
|
|
message NotifyDittoActivityResponse {}
|
|
|
|
message ReceiveMessagesRequest {
|
|
authentication.AuthMessage auth = 1;
|
|
|
|
message UnknownEmptyObject1 {}
|
|
message UnknownEmptyObject2 {
|
|
UnknownEmptyObject1 unknown = 2;
|
|
}
|
|
optional UnknownEmptyObject2 unknown = 4;
|
|
}
|
|
|
|
message MessageReadRequest {
|
|
string conversationID = 2;
|
|
string messageID = 3;
|
|
}
|
|
|
|
message AckMessageRequest {
|
|
message Message {
|
|
string requestID = 1;
|
|
authentication.Device device = 2;
|
|
}
|
|
|
|
authentication.AuthMessage authData = 1;
|
|
util.EmptyArr emptyArr = 2;
|
|
repeated Message acks = 4;
|
|
}
|
|
|
|
message DownloadAttachmentRequest {
|
|
AttachmentInfo info = 1;
|
|
authentication.AuthMessage authData = 2;
|
|
}
|
|
|
|
message AttachmentInfo {
|
|
string attachmentID = 1;
|
|
bool encrypted = 2;
|
|
}
|
|
|
|
message StartMediaUploadRequest {
|
|
int64 attachmentType = 1;
|
|
authentication.AuthMessage authData = 2;
|
|
authentication.Device mobile = 3;
|
|
}
|
|
|
|
message UploadMediaResponse {
|
|
UploadedMedia media = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message UploadedMedia {
|
|
string mediaID = 1;
|
|
int64 mediaNumber = 2;
|
|
}
|
|
|
|
message GetThumbnailRequest {
|
|
repeated string identifiers = 1;
|
|
}
|
|
|
|
message GetThumbnailResponse {
|
|
message Thumbnail {
|
|
// ID depends on request, it's always the same as the input.
|
|
string identifier = 1;
|
|
ThumbnailData data = 2;
|
|
}
|
|
|
|
repeated Thumbnail thumbnail = 1;
|
|
}
|
|
|
|
message ThumbnailData {
|
|
message MysteriousData {
|
|
fixed64 maybeAHash = 13;
|
|
}
|
|
// 2 -> 13: 16 mysterious bytes
|
|
bytes imageBuffer = 3;
|
|
int32 someInt = 4;
|
|
conversations.Dimensions dimensions = 5;
|
|
MysteriousData mysteriousData = 2;
|
|
}
|
|
|
|
message Cursor {
|
|
string lastItemID = 1;
|
|
int64 lastItemTimestamp = 2;
|
|
}
|
|
|
|
message ListMessagesRequest {
|
|
string conversationID = 2;
|
|
int64 count = 3;
|
|
|
|
Cursor cursor = 5;
|
|
}
|
|
|
|
message ListMessagesResponse {
|
|
repeated conversations.Message messages = 2;
|
|
bytes someBytes = 3;
|
|
int64 totalMessages = 4;
|
|
Cursor cursor = 5;
|
|
}
|
|
|
|
message ListContactsRequest {
|
|
int32 i1 = 5; // = 1
|
|
int32 i2 = 6; // = 350
|
|
int32 i3 = 7; // = 50
|
|
}
|
|
|
|
message ListTopContactsRequest {
|
|
int32 count = 1;
|
|
}
|
|
|
|
message ListContactsResponse {
|
|
repeated conversations.Contact contacts = 2;
|
|
}
|
|
|
|
message ListTopContactsResponse {
|
|
repeated conversations.Contact contacts = 1;
|
|
}
|
|
|
|
message ListConversationsRequest {
|
|
enum Folder {
|
|
UNKNOWN = 0;
|
|
INBOX = 1;
|
|
ARCHIVE = 2;
|
|
SPAM_BLOCKED = 5;
|
|
}
|
|
|
|
int64 count = 2;
|
|
Folder folder = 4;
|
|
optional Cursor cursor = 5;
|
|
}
|
|
|
|
message ListConversationsResponse {
|
|
repeated conversations.Conversation conversations = 2;
|
|
optional bytes cursorBytes = 3;
|
|
optional Cursor cursor = 5;
|
|
}
|
|
|
|
message GetOrCreateConversationRequest {
|
|
repeated conversations.ContactNumber numbers = 2;
|
|
optional string RCSGroupName = 3;
|
|
optional bool createRCSGroup = 4;
|
|
}
|
|
|
|
message GetOrCreateConversationResponse {
|
|
enum Status {
|
|
UNKNOWN = 0;
|
|
SUCCESS = 1;
|
|
CREATE_RCS = 3;
|
|
}
|
|
conversations.Conversation conversation = 2;
|
|
Status status = 3;
|
|
}
|
|
|
|
message DeleteMessageRequest {
|
|
string messageID = 2;
|
|
}
|
|
|
|
message DeleteMessageResponse {
|
|
bool success = 2;
|
|
}
|
|
|
|
message UpdateConversationRequest {
|
|
UpdateConversationData data = 1;
|
|
ConversationActionStatus action = 2;
|
|
string conversationID = 3;
|
|
ConversationAction5 action5 = 5;
|
|
}
|
|
|
|
message ConversationAction5 {
|
|
bool field2 = 2;
|
|
}
|
|
|
|
message UpdateConversationData {
|
|
string conversationID = 1;
|
|
oneof data {
|
|
conversations.ConversationStatus status = 12;
|
|
ConversationMuteStatus mute = 7;
|
|
}
|
|
}
|
|
|
|
enum ConversationActionStatus {
|
|
UNKNOWN_ACTION_STATUS = 0;
|
|
UNBLOCK = 2;
|
|
BLOCK = 7;
|
|
BLOCK_AND_REPORT = 8;
|
|
}
|
|
|
|
enum ConversationMuteStatus {
|
|
UNMUTE = 0;
|
|
MUTE = 1;
|
|
}
|
|
|
|
message UpdateConversationResponse {
|
|
bool success = 1;
|
|
/*
|
|
3 {
|
|
1 {
|
|
1 {
|
|
3: "11"
|
|
}
|
|
13: 2
|
|
}
|
|
3: 1
|
|
}
|
|
*/
|
|
}
|
|
|
|
message GetConversationTypeRequest {
|
|
string conversationID = 2;
|
|
}
|
|
|
|
message GetConversationTypeResponse {
|
|
string conversationID = 2;
|
|
int32 type = 3;
|
|
bool bool1 = 5;
|
|
int32 number2 = 6;
|
|
}
|
|
|
|
message GetConversationRequest {
|
|
string conversationID = 1;
|
|
}
|
|
|
|
message GetConversationResponse {
|
|
conversations.Conversation conversation = 1;
|
|
}
|
|
|
|
message OpenConversationRequest {
|
|
string conversationID = 2;
|
|
}
|
|
|
|
message PrepareOpenConversationRequest {
|
|
int64 field2 = 2; // only seen value 1
|
|
}
|
|
|
|
message IsBugleDefaultResponse {
|
|
bool success = 1;
|
|
}
|
|
|
|
message SendMessageRequest {
|
|
string conversationID = 2;
|
|
MessagePayload messagePayload = 3;
|
|
settings.SIMPayload SIMPayload = 4;
|
|
string tmpID = 5;
|
|
bool isRCS = 6; // not sure
|
|
ReplyPayload reply = 8;
|
|
}
|
|
|
|
message ReplyPayload {
|
|
string messageID = 1;
|
|
}
|
|
|
|
message MessagePayload {
|
|
string tmpID = 1;
|
|
MessagePayloadContent messagePayloadContent = 6;
|
|
string conversationID = 7;
|
|
string participantID = 9;
|
|
repeated conversations.MessageInfo messageInfo = 10;
|
|
string tmpID2 = 12;
|
|
}
|
|
|
|
message MessagePayloadContent {
|
|
conversations.MessageContent messageContent = 1;
|
|
}
|
|
|
|
message SendMessageResponse {
|
|
enum Status {
|
|
UNKNOWN = 0;
|
|
SUCCESS = 1;
|
|
FAILURE_2 = 2;
|
|
FAILURE_3 = 3;
|
|
FAILURE_4 = 4; // not default sms app?
|
|
}
|
|
events.AccountChangeOrSomethingEvent googleAccountSwitch = 2;
|
|
Status status = 3;
|
|
}
|
|
|
|
message SendReactionRequest {
|
|
enum Action {
|
|
UNSPECIFIED = 0;
|
|
ADD = 1;
|
|
REMOVE = 2;
|
|
SWITCH = 3;
|
|
}
|
|
|
|
string messageID = 1;
|
|
conversations.ReactionData reactionData = 2;
|
|
Action action = 3;
|
|
settings.SIMPayload SIMPayload = 4;
|
|
}
|
|
|
|
message SendReactionResponse {
|
|
bool success = 1;
|
|
}
|
|
|
|
message ResendMessageRequest {
|
|
string messageID = 2;
|
|
}
|
|
|
|
message TypingUpdateRequest {
|
|
message Data {
|
|
string conversationID = 1;
|
|
bool typing = 3;
|
|
}
|
|
|
|
Data data = 2;
|
|
}
|