Fix image fields (#3121)

* fix: image fields
This commit is contained in:
Omar Basem 2023-02-02 12:00:49 +04:00 committed by GitHub
parent dc4c1a61b1
commit 2485143e20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 145 additions and 123 deletions

View File

@ -1 +1 @@
0.126.2 0.128.0

View File

@ -167,17 +167,11 @@ type Message struct {
AudioPath string `json:"audioPath,omitempty"` AudioPath string `json:"audioPath,omitempty"`
// ImageLocalURL is the local url of the image // ImageLocalURL is the local url of the image
ImageLocalURL string `json:"imageLocalUrl,omitempty"` ImageLocalURL string `json:"imageLocalUrl,omitempty"`
// AlbumID for a collage of images
AlbumID string `json:"albumId,omitempty"`
// AudioLocalURL is the local url of the audio // AudioLocalURL is the local url of the audio
AudioLocalURL string `json:"audioLocalUrl,omitempty"` AudioLocalURL string `json:"audioLocalUrl,omitempty"`
// StickerLocalURL is the local url of the sticker // StickerLocalURL is the local url of the sticker
StickerLocalURL string `json:"stickerLocalUrl,omitempty"` StickerLocalURL string `json:"stickerLocalUrl,omitempty"`
// Image dimensions
ImageWidth uint32 `json:"imageWidth,omitempty"`
ImageHeight uint32 `json:"imageHeight,omitempty"`
// CommunityID is the id of the community to advertise // CommunityID is the id of the community to advertise
CommunityID string `json:"communityId,omitempty"` CommunityID string `json:"communityId,omitempty"`
@ -293,9 +287,6 @@ func (m *Message) MarshalJSON() ([]byte, error) {
EnsName: m.EnsName, EnsName: m.EnsName,
DisplayName: m.DisplayName, DisplayName: m.DisplayName,
Image: m.ImageLocalURL, Image: m.ImageLocalURL,
AlbumID: m.AlbumID,
ImageWidth: m.ImageWidth,
ImageHeight: m.ImageHeight,
Audio: m.AudioLocalURL, Audio: m.AudioLocalURL,
CommunityID: m.CommunityID, CommunityID: m.CommunityID,
Timestamp: m.Timestamp, Timestamp: m.Timestamp,
@ -334,6 +325,12 @@ func (m *Message) MarshalJSON() ([]byte, error) {
item.AudioDurationMs = audio.DurationMs item.AudioDurationMs = audio.DurationMs
} }
if image := m.GetImage(); image != nil {
item.AlbumID = image.AlbumId
item.ImageWidth = image.Width
item.ImageHeight = image.Height
}
if discordMessage := m.GetDiscordMessage(); discordMessage != nil { if discordMessage := m.GetDiscordMessage(); discordMessage != nil {
item.DiscordMessage = discordMessage item.DiscordMessage = discordMessage
} }
@ -353,6 +350,9 @@ func (m *Message) UnmarshalJSON(data []byte) error {
AudioDurationMs uint64 `json:"audioDurationMs"` AudioDurationMs uint64 `json:"audioDurationMs"`
ParsedText json.RawMessage `json:"parsedText"` ParsedText json.RawMessage `json:"parsedText"`
ContentType protobuf.ChatMessage_ContentType `json:"contentType"` ContentType protobuf.ChatMessage_ContentType `json:"contentType"`
AlbumID string `json:"albumId"`
ImageWidth uint32 `json:"imageWidth"`
ImageHeight uint32 `json:"imageHeight"`
}{ }{
Alias: (*Alias)(m), Alias: (*Alias)(m),
} }
@ -367,6 +367,16 @@ func (m *Message) UnmarshalJSON(data []byte) error {
Audio: &protobuf.AudioMessage{DurationMs: aux.AudioDurationMs}, Audio: &protobuf.AudioMessage{DurationMs: aux.AudioDurationMs},
} }
} }
if aux.ContentType == protobuf.ChatMessage_IMAGE {
m.Payload = &protobuf.ChatMessage_Image{
Image: &protobuf.ImageMessage{
AlbumId: aux.AlbumID,
Width: aux.ImageWidth,
Height: aux.ImageHeight},
}
}
m.ResponseTo = aux.ResponseTo m.ResponseTo = aux.ResponseTo
m.EnsName = aux.EnsName m.EnsName = aux.EnsName
m.DisplayName = aux.DisplayName m.DisplayName = aux.DisplayName

View File

@ -207,9 +207,6 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
var alias sql.NullString var alias sql.NullString
var identicon sql.NullString var identicon sql.NullString
var communityID sql.NullString var communityID sql.NullString
var albumID sql.NullString
var imageWidth sql.NullInt32
var imageHeight sql.NullInt32
var gapFrom sql.NullInt64 var gapFrom sql.NullInt64
var gapTo sql.NullInt64 var gapTo sql.NullInt64
var editedAt sql.NullInt64 var editedAt sql.NullInt64
@ -254,9 +251,9 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
&sticker.Hash, &sticker.Hash,
&image.Payload, &image.Payload,
&image.Type, &image.Type,
&message.AlbumID, &image.AlbumId,
&message.ImageWidth, &image.Width,
&message.ImageHeight, &image.Height,
&audio.DurationMs, &audio.DurationMs,
&communityID, &communityID,
&serializedMentions, &serializedMentions,
@ -374,22 +371,11 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
To: uint32(gapTo.Int64), To: uint32(gapTo.Int64),
} }
} }
if communityID.Valid { if communityID.Valid {
message.CommunityID = communityID.String message.CommunityID = communityID.String
} }
if albumID.Valid {
message.AlbumID = albumID.String
}
if imageWidth.Valid {
message.ImageWidth = uint32(imageWidth.Int32)
}
if imageHeight.Valid {
message.ImageHeight = uint32(imageHeight.Int32)
}
if serializedMentions != nil { if serializedMentions != nil {
err := json.Unmarshal(serializedMentions, &message.Mentions) err := json.Unmarshal(serializedMentions, &message.Mentions)
if err != nil { if err != nil {
@ -419,11 +405,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
message.CommandParameters = command message.CommandParameters = command
case protobuf.ChatMessage_IMAGE: case protobuf.ChatMessage_IMAGE:
img := protobuf.ImageMessage{ message.Payload = &protobuf.ChatMessage_Image{Image: image}
Payload: image.Payload,
Type: image.Type,
}
message.Payload = &protobuf.ChatMessage_Image{Image: &img}
case protobuf.ChatMessage_DISCORD_MESSAGE: case protobuf.ChatMessage_DISCORD_MESSAGE:
message.Payload = &protobuf.ChatMessage_DiscordMessage{ message.Payload = &protobuf.ChatMessage_DiscordMessage{
@ -507,9 +489,9 @@ func (db sqlitePersistence) tableUserMessagesAllValues(message *common.Message)
sticker.Hash, sticker.Hash,
image.Payload, image.Payload,
image.Type, image.Type,
message.AlbumID, image.AlbumId,
message.ImageWidth, image.Width,
message.ImageHeight, image.Height,
message.Base64Image, message.Base64Image,
audio.Payload, audio.Payload,
audio.Type, audio.Type,

View File

@ -2006,12 +2006,10 @@ func (m *Messenger) sendChatMessage(ctx context.Context, message *common.Message
if err != nil { if err != nil {
return nil, err return nil, err
} }
imageMessage := message.GetImage()
image := protobuf.ImageMessage{ imageMessage.Payload = payload
Payload: payload, imageMessage.Type = images.ImageType(payload)
Type: images.ImageType(payload), message.Payload = &protobuf.ChatMessage_Image{Image: imageMessage}
}
message.Payload = &protobuf.ChatMessage_Image{Image: &image}
} else if len(message.CommunityID) != 0 { } else if len(message.CommunityID) != 0 {
community, err := m.communitiesManager.GetByIDString(message.CommunityID) community, err := m.communitiesManager.GetByIDString(message.CommunityID)

View File

@ -87,6 +87,9 @@ func buildImageMessage(s *MessengerShareMessageSuite, chat Chat) *common.Message
image := protobuf.ImageMessage{ image := protobuf.ImageMessage{
Payload: payload, Payload: payload,
Type: protobuf.ImageType_JPEG, Type: protobuf.ImageType_JPEG,
AlbumId: "some-album-id",
Width: 1200,
Height: 1000,
} }
message.Payload = &protobuf.ChatMessage_Image{Image: &image} message.Payload = &protobuf.ChatMessage_Image{Image: &image}
return message return message

View File

@ -161,6 +161,9 @@ func (m *StickerMessage) GetPack() int32 {
type ImageMessage struct { type ImageMessage struct {
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Type ImageType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.ImageType" json:"type,omitempty"` Type ImageType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.ImageType" json:"type,omitempty"`
AlbumId string `protobuf:"bytes,3,opt,name=album_id,json=albumId,proto3" json:"album_id,omitempty"`
Width uint32 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"`
Height uint32 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -205,6 +208,27 @@ func (m *ImageMessage) GetType() ImageType {
return ImageType_UNKNOWN_IMAGE_TYPE return ImageType_UNKNOWN_IMAGE_TYPE
} }
func (m *ImageMessage) GetAlbumId() string {
if m != nil {
return m.AlbumId
}
return ""
}
func (m *ImageMessage) GetWidth() uint32 {
if m != nil {
return m.Width
}
return 0
}
func (m *ImageMessage) GetHeight() uint32 {
if m != nil {
return m.Height
}
return 0
}
type AudioMessage struct { type AudioMessage struct {
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Type AudioMessage_AudioType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.AudioMessage_AudioType" json:"type,omitempty"` Type AudioMessage_AudioType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.AudioMessage_AudioType" json:"type,omitempty"`
@ -833,7 +857,6 @@ type ChatMessage struct {
// The type of the content of the message // The type of the content of the message
ContentType ChatMessage_ContentType `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"` ContentType ChatMessage_ContentType `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"`
// Types that are valid to be assigned to Payload: // Types that are valid to be assigned to Payload:
//
// *ChatMessage_Sticker // *ChatMessage_Sticker
// *ChatMessage_Image // *ChatMessage_Image
// *ChatMessage_Audio // *ChatMessage_Audio
@ -1124,84 +1147,87 @@ func init() {
} }
var fileDescriptor_263952f55fd35689 = []byte{ var fileDescriptor_263952f55fd35689 = []byte{
// 1258 bytes of a gzipped FileDescriptorProto // 1302 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdb, 0x8e, 0xdb, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x92, 0xdb, 0xc4,
0x18, 0xde, 0x9c, 0xe3, 0xdf, 0xd9, 0xac, 0x99, 0x1e, 0xd6, 0x2d, 0x3d, 0xa4, 0x56, 0xa5, 0xe6, 0x13, 0x5f, 0x7f, 0x5b, 0x2d, 0xdb, 0xab, 0xff, 0x64, 0x93, 0x55, 0xf2, 0xcf, 0x87, 0xa3, 0x4a,
0x2a, 0x48, 0xa5, 0xa0, 0x4a, 0x5c, 0x20, 0x6f, 0xe2, 0x6e, 0x4d, 0x49, 0xb2, 0x1d, 0x3b, 0x85, 0x55, 0x7c, 0x32, 0x55, 0x21, 0x50, 0xa9, 0xe2, 0x40, 0x69, 0x6d, 0x65, 0x23, 0x82, 0xed, 0x65,
0xe5, 0xc6, 0x72, 0xed, 0xd9, 0x8d, 0xb5, 0x89, 0x1d, 0xec, 0x49, 0x45, 0xb8, 0xe7, 0x92, 0x77, 0x2c, 0x07, 0x96, 0x8b, 0x4a, 0x2b, 0xcd, 0xae, 0x55, 0x6b, 0x4b, 0x46, 0x1a, 0x07, 0xcc, 0x9d,
0xe0, 0x29, 0x78, 0x0a, 0x6e, 0x79, 0x05, 0x9e, 0x80, 0x07, 0x40, 0x33, 0xf6, 0xc4, 0x76, 0x68, 0x23, 0x2f, 0xc0, 0x89, 0xa7, 0xe0, 0x29, 0xb8, 0xf2, 0x0a, 0x3c, 0x01, 0x0f, 0x40, 0xcd, 0x48,
0xb6, 0x55, 0xaf, 0x3c, 0xff, 0xef, 0xff, 0xf8, 0xfd, 0x87, 0x19, 0x40, 0xde, 0xdc, 0xa5, 0xce, 0x23, 0x4b, 0x26, 0xde, 0xa4, 0x72, 0xd2, 0x74, 0xab, 0xbb, 0xe7, 0xd7, 0xbf, 0xee, 0xe9, 0x19,
0x92, 0x24, 0x89, 0x7b, 0x49, 0x06, 0xab, 0x38, 0xa2, 0x11, 0x6a, 0xf3, 0xcf, 0xdb, 0xf5, 0xc5, 0x40, 0xee, 0xdc, 0xa1, 0xf6, 0x92, 0xc4, 0xb1, 0x73, 0x45, 0xfa, 0xab, 0x28, 0xa4, 0x21, 0x6a,
0x5d, 0x99, 0x84, 0xeb, 0x65, 0x92, 0xb2, 0xb5, 0xe7, 0xd0, 0xb5, 0x68, 0xe0, 0x5d, 0x91, 0x78, 0xf2, 0xcf, 0xc5, 0xfa, 0xf2, 0x9e, 0x4c, 0x82, 0xf5, 0x32, 0x4e, 0xd4, 0xda, 0x0b, 0xe8, 0x4c,
0x9c, 0x8a, 0x23, 0x04, 0xf5, 0xb9, 0x9b, 0xcc, 0xd5, 0x4a, 0xaf, 0xd2, 0x97, 0x30, 0x3f, 0x33, 0xa9, 0xef, 0x5e, 0x93, 0x68, 0x94, 0x98, 0x23, 0x04, 0xd5, 0xb9, 0x13, 0xcf, 0xd5, 0x52, 0xb7,
0xde, 0xca, 0xf5, 0xae, 0xd4, 0x6a, 0xaf, 0xd2, 0x6f, 0x60, 0x7e, 0xd6, 0x5e, 0x43, 0xc7, 0x5c, 0xd4, 0x93, 0x30, 0x5f, 0x33, 0xdd, 0xca, 0x71, 0xaf, 0xd5, 0x72, 0xb7, 0xd4, 0xab, 0x61, 0xbe,
0xba, 0x97, 0x44, 0xe8, 0xa9, 0xd0, 0x5a, 0xb9, 0x9b, 0x45, 0xe4, 0xfa, 0x5c, 0xb5, 0x83, 0x05, 0xd6, 0x7e, 0x2b, 0x41, 0xcb, 0x5c, 0x3a, 0x57, 0x44, 0x38, 0xaa, 0xd0, 0x58, 0x39, 0x9b, 0x45,
0x89, 0x9e, 0x40, 0x9d, 0x6e, 0x56, 0x84, 0x6b, 0x77, 0x9f, 0xde, 0x18, 0x88, 0x48, 0x06, 0x5c, 0xe8, 0x78, 0xdc, 0xb7, 0x85, 0x85, 0x88, 0x9e, 0x42, 0x95, 0x6e, 0x56, 0x84, 0xbb, 0x77, 0x9e,
0xdf, 0xde, 0xac, 0x08, 0xe6, 0x02, 0xda, 0x9f, 0x15, 0xe8, 0xe8, 0x6b, 0x3f, 0x88, 0x3e, 0x6c, 0xdd, 0xea, 0x0b, 0x28, 0x7d, 0xee, 0x6f, 0x6d, 0x56, 0x04, 0x73, 0x03, 0x74, 0x17, 0x9a, 0xce,
0xf3, 0x59, 0xc9, 0x66, 0x2f, 0xb7, 0x59, 0xd4, 0x4f, 0x89, 0xdc, 0x01, 0x7a, 0x08, 0xb2, 0xbf, 0xe2, 0x62, 0xbd, 0xb4, 0x7d, 0x4f, 0xad, 0xf0, 0xfd, 0x1b, 0x5c, 0x36, 0x3d, 0x74, 0x04, 0xb5,
0x8e, 0x5d, 0x1a, 0x44, 0xa1, 0xb3, 0x4c, 0xd4, 0x5a, 0xaf, 0xd2, 0xaf, 0x63, 0x10, 0xac, 0x71, 0x1f, 0x7d, 0x8f, 0xce, 0xd5, 0x6a, 0xb7, 0xd4, 0x6b, 0xe3, 0x44, 0x40, 0x77, 0xa0, 0x3e, 0x27,
0xa2, 0x7d, 0x05, 0xd2, 0x56, 0x07, 0xdd, 0x06, 0x34, 0x9b, 0xbc, 0x9a, 0x4c, 0x7f, 0x98, 0x38, 0xfe, 0xd5, 0x9c, 0xaa, 0x35, 0xae, 0x4e, 0x25, 0xed, 0x8f, 0x12, 0xb4, 0xf4, 0xb5, 0xe7, 0x87,
0xfa, 0x6c, 0x64, 0x4e, 0x1d, 0xfb, 0xfc, 0xcc, 0x50, 0x0e, 0x50, 0x0b, 0x6a, 0xba, 0x3e, 0x54, 0xef, 0x07, 0xf7, 0xbc, 0x00, 0xae, 0xbb, 0x05, 0x97, 0xf7, 0x4f, 0x84, 0x1c, 0xd2, 0x47, 0x20,
0x2a, 0xfc, 0x30, 0xc6, 0x4a, 0x55, 0xfb, 0xad, 0x0a, 0xb2, 0xe1, 0x07, 0x54, 0xc4, 0x7d, 0x13, 0x7b, 0xeb, 0xc8, 0xa1, 0x7e, 0x18, 0xd8, 0xcb, 0x98, 0x83, 0xad, 0x62, 0x10, 0xaa, 0x51, 0xac,
0x1a, 0xde, 0x22, 0xf2, 0xae, 0x78, 0xd4, 0x75, 0x9c, 0x12, 0x0c, 0x45, 0x4a, 0x7e, 0xa1, 0x3c, 0x7d, 0x06, 0x52, 0xe6, 0x83, 0xee, 0x00, 0x9a, 0x8d, 0x5f, 0x8f, 0x27, 0xdf, 0x8e, 0x6d, 0x7d,
0x66, 0x09, 0xf3, 0x33, 0x3a, 0x86, 0x16, 0x2f, 0x56, 0xe0, 0xf3, 0x68, 0x24, 0xdc, 0x64, 0xa4, 0x36, 0x34, 0x27, 0xb6, 0x75, 0x7e, 0x66, 0x28, 0x07, 0xa8, 0x01, 0x15, 0x5d, 0x1f, 0x28, 0x25,
0xe9, 0xa3, 0xfb, 0x00, 0x59, 0x01, 0xd9, 0xbf, 0x3a, 0xff, 0x27, 0x65, 0x1c, 0xd3, 0x67, 0x1e, 0xbe, 0x18, 0x61, 0xa5, 0xac, 0xfd, 0x52, 0x06, 0xd9, 0xf0, 0x7c, 0x2a, 0x70, 0x1f, 0x41, 0xcd,
0x2e, 0x63, 0x37, 0xa4, 0x6a, 0x83, 0xe3, 0x92, 0x12, 0xe8, 0x39, 0x74, 0x84, 0x12, 0x47, 0xa7, 0x5d, 0x84, 0xee, 0x35, 0x47, 0x5d, 0xc5, 0x89, 0xc0, 0xea, 0x41, 0xc9, 0x4f, 0x94, 0x63, 0x96,
0xc9, 0xd1, 0xb9, 0x95, 0xa3, 0x93, 0x05, 0xc8, 0x21, 0x91, 0x97, 0x39, 0x81, 0x46, 0xd0, 0xf1, 0x30, 0x5f, 0xa3, 0x63, 0x68, 0xf0, 0xb2, 0x67, 0xd4, 0xd5, 0x99, 0x68, 0x7a, 0xe8, 0x01, 0x40,
0xa2, 0x90, 0x92, 0x90, 0xa6, 0x9a, 0x2d, 0xae, 0xf9, 0x28, 0xd7, 0x1c, 0xce, 0x5d, 0x91, 0xde, 0xda, 0x0a, 0xec, 0x5f, 0x95, 0xff, 0x93, 0x52, 0x4d, 0x42, 0xec, 0x55, 0xe4, 0x04, 0x09, 0x83,
0x60, 0x98, 0x4a, 0xa6, 0x56, 0xbc, 0x9c, 0xd0, 0xfe, 0xaa, 0xc0, 0xe1, 0x88, 0x2c, 0x08, 0x25, 0x2d, 0x9c, 0x08, 0xe8, 0x05, 0xb4, 0x84, 0x13, 0x67, 0xa7, 0xce, 0xd9, 0xb9, 0xbd, 0x65, 0x27,
0xd7, 0x23, 0x51, 0xc8, 0xba, 0x7a, 0x4d, 0xd6, 0xb5, 0xbd, 0x59, 0xd7, 0xaf, 0xcb, 0xba, 0xf1, 0x05, 0xc8, 0x29, 0x91, 0x97, 0x5b, 0x01, 0x0d, 0xa1, 0xe5, 0x86, 0x01, 0x25, 0x01, 0x4d, 0x3c,
0xd1, 0x59, 0xdf, 0x07, 0xf0, 0x79, 0xb8, 0xbe, 0xf3, 0x76, 0xc3, 0xd1, 0x92, 0xb0, 0x94, 0x71, 0x1b, 0xdc, 0xf3, 0xf1, 0xd6, 0x73, 0x30, 0x77, 0x44, 0x7a, 0xfd, 0x41, 0x62, 0x99, 0x44, 0x71,
0x4e, 0x36, 0x9a, 0x09, 0x28, 0xcd, 0xe6, 0x45, 0x14, 0x8f, 0x3f, 0x90, 0x52, 0x39, 0xf2, 0xea, 0xb7, 0x82, 0xf6, 0x67, 0x09, 0xda, 0x43, 0xb2, 0x20, 0x94, 0xdc, 0xcc, 0x44, 0x2e, 0xeb, 0xf2,
0x4e, 0xe4, 0xda, 0xdf, 0x55, 0xe8, 0x8e, 0x82, 0xc4, 0x8b, 0x62, 0x5f, 0xd8, 0xe9, 0x42, 0x35, 0x0d, 0x59, 0x57, 0xf6, 0x66, 0x5d, 0xbd, 0x29, 0xeb, 0xda, 0x07, 0x67, 0xfd, 0x00, 0xc0, 0xe3,
0xf0, 0xb3, 0x31, 0xab, 0x06, 0x3e, 0x6f, 0x0f, 0xd1, 0xd2, 0x52, 0xd6, 0xb0, 0xf7, 0x40, 0xa2, 0x70, 0x3d, 0xfb, 0x62, 0xc3, 0xd9, 0x92, 0xb0, 0x94, 0x6a, 0x4e, 0x36, 0x9a, 0x09, 0x28, 0xc9,
0xc1, 0x92, 0x24, 0xd4, 0x5d, 0xae, 0x04, 0x1c, 0x5b, 0x06, 0xea, 0xc3, 0xd1, 0x96, 0x60, 0xed, 0xe6, 0x65, 0x18, 0x8d, 0xde, 0x93, 0x52, 0x11, 0x79, 0x79, 0x07, 0xb9, 0xf6, 0x57, 0x19, 0x3a,
0x47, 0x44, 0xa3, 0xec, 0xb2, 0xd9, 0x20, 0x65, 0x75, 0xe2, 0xe8, 0x48, 0x58, 0x90, 0xe8, 0x6b, 0x43, 0x3f, 0x76, 0xc3, 0xc8, 0x13, 0x71, 0x3a, 0x50, 0xf6, 0xbd, 0xf4, 0xc0, 0x96, 0x7d, 0x8f,
0x68, 0xba, 0x6b, 0x3a, 0x8f, 0x62, 0x9e, 0xbe, 0xfc, 0xf4, 0x41, 0x0e, 0x5b, 0x39, 0x5e, 0x9d, 0xb7, 0x87, 0x68, 0x69, 0x29, 0x6d, 0xd8, 0xfb, 0x20, 0x51, 0x7f, 0x49, 0x62, 0xea, 0x2c, 0x57,
0x4b, 0xe1, 0x4c, 0x1a, 0x7d, 0x0b, 0x52, 0x4c, 0x2e, 0x48, 0x4c, 0x42, 0x2f, 0xed, 0x16, 0xb9, 0x82, 0x8e, 0x4c, 0x81, 0x7a, 0x70, 0x98, 0x09, 0xac, 0xfd, 0x88, 0x68, 0x94, 0x5d, 0x35, 0x3b,
0xd8, 0x2d, 0x65, 0x55, 0x2c, 0x04, 0x71, 0xae, 0x83, 0x46, 0x20, 0xbb, 0x94, 0xba, 0xde, 0x7c, 0x48, 0x69, 0x9d, 0x38, 0x3b, 0x12, 0x16, 0x22, 0xfa, 0x1c, 0xea, 0xce, 0x9a, 0xce, 0xc3, 0x88,
0x49, 0x42, 0x9a, 0xa8, 0xed, 0x5e, 0xad, 0x2f, 0x3f, 0xd5, 0xf6, 0x7a, 0xdf, 0x8a, 0xe2, 0xa2, 0xa7, 0x2f, 0x3f, 0x7b, 0xb8, 0xa5, 0xad, 0x88, 0x57, 0xe7, 0x56, 0x38, 0xb5, 0x46, 0x5f, 0x82,
0x9a, 0xf6, 0x4f, 0x05, 0x6e, 0xbe, 0x2f, 0xce, 0xf7, 0xa1, 0x1b, 0xba, 0xcb, 0x2d, 0xba, 0xec, 0x14, 0x91, 0x4b, 0x12, 0x91, 0xc0, 0x4d, 0xba, 0x45, 0xce, 0x77, 0x4b, 0xd1, 0x15, 0x0b, 0x43,
0x8c, 0x1e, 0xc3, 0xa1, 0x1f, 0x24, 0x5e, 0x1c, 0x2c, 0x83, 0xd0, 0xa5, 0x51, 0x9c, 0x21, 0x5c, 0xbc, 0xf5, 0x41, 0x43, 0x90, 0x1d, 0x4a, 0x1d, 0x77, 0xbe, 0x24, 0x01, 0x8d, 0xd5, 0x66, 0xb7,
0x66, 0xa2, 0xbb, 0xd0, 0x0e, 0x03, 0xef, 0x8a, 0x6b, 0xa7, 0xf0, 0x6e, 0x69, 0x56, 0x1f, 0xf7, 0xd2, 0x93, 0x9f, 0x69, 0x7b, 0x77, 0xcf, 0x4c, 0x71, 0xde, 0x4d, 0xfb, 0xbb, 0x04, 0x47, 0xef,
0x9d, 0x4b, 0xdd, 0x78, 0x16, 0x2f, 0x32, 0x64, 0x73, 0x06, 0x1a, 0x00, 0x4a, 0x09, 0xbe, 0xe8, 0xc2, 0xf9, 0x2e, 0x76, 0x03, 0x67, 0x99, 0xb1, 0xcb, 0xd6, 0xe8, 0x09, 0xb4, 0x3d, 0x3f, 0x76,
0xce, 0xb2, 0x4d, 0xd6, 0xe4, 0xbd, 0xfb, 0x9e, 0x3f, 0xcc, 0xd3, 0x22, 0xf2, 0xdc, 0x05, 0x33, 0x23, 0x7f, 0xe9, 0x07, 0x0e, 0x0d, 0xa3, 0x94, 0xe1, 0xa2, 0x12, 0xdd, 0x83, 0x66, 0xe0, 0xbb,
0xd6, 0x4a, 0x3d, 0x09, 0x5a, 0x8b, 0xe0, 0x78, 0x0f, 0xa8, 0x2c, 0x88, 0x6d, 0xa3, 0x65, 0x19, 0xd7, 0xdc, 0x3b, 0xa1, 0x37, 0x93, 0x59, 0x7d, 0x9c, 0xb7, 0x0e, 0x75, 0xa2, 0x59, 0xb4, 0x48,
0x17, 0x66, 0xe6, 0x1e, 0x48, 0xde, 0xdc, 0x0d, 0x43, 0xb2, 0x30, 0xb7, 0x7d, 0xb9, 0x65, 0xb0, 0x99, 0xdd, 0x2a, 0x50, 0x1f, 0x50, 0x22, 0xf0, 0x89, 0x79, 0x96, 0x4e, 0xb2, 0x3a, 0xef, 0xdd,
0xc6, 0xb8, 0x5c, 0x07, 0x0b, 0xdf, 0x14, 0xd3, 0x26, 0x48, 0xed, 0xdf, 0x0a, 0xa8, 0xfb, 0x6a, 0x77, 0xfc, 0x61, 0x3b, 0x2d, 0x42, 0xd7, 0x59, 0xb0, 0x60, 0x8d, 0x64, 0x27, 0x21, 0x6b, 0x21,
0xf0, 0x3f, 0x74, 0x4b, 0x21, 0xec, 0x36, 0x3f, 0x52, 0xa0, 0xb6, 0x8e, 0x17, 0x99, 0x03, 0x76, 0x1c, 0xef, 0x21, 0x95, 0x81, 0xc8, 0x1a, 0x2d, 0xcd, 0x38, 0x77, 0x66, 0xee, 0x83, 0xe4, 0xce,
0x64, 0x99, 0x5e, 0x04, 0x0b, 0x32, 0x29, 0x60, 0x2a, 0x68, 0x56, 0x15, 0x76, 0xb6, 0x82, 0x5f, 0x9d, 0x20, 0x20, 0x0b, 0x33, 0xeb, 0xcb, 0x4c, 0xc1, 0x1a, 0xe3, 0x6a, 0xed, 0x2f, 0x3c, 0x33,
0xc9, 0xc9, 0x86, 0x92, 0x84, 0xe3, 0x5a, 0xc7, 0x65, 0x26, 0xea, 0x41, 0x71, 0xf3, 0x64, 0xb3, 0x1b, 0xdd, 0xa9, 0xa8, 0xfd, 0x53, 0x02, 0x75, 0x5f, 0x0d, 0xfe, 0xc3, 0x6e, 0x01, 0xc2, 0x6e,
0x5b, 0x64, 0x15, 0x2f, 0x8f, 0x56, 0xf9, 0xf2, 0x28, 0xe2, 0xdc, 0xde, 0xc1, 0xf9, 0x77, 0x09, 0xf3, 0x23, 0x05, 0x2a, 0xeb, 0x68, 0x91, 0x6e, 0xc0, 0x96, 0x2c, 0xd3, 0x4b, 0x7f, 0x41, 0xc6,
0xe4, 0xc2, 0xae, 0xdb, 0x33, 0xed, 0xa5, 0xb9, 0xac, 0xf2, 0x3f, 0x85, 0xb9, 0x14, 0x8b, 0xbe, 0x39, 0x4e, 0x85, 0xcc, 0xaa, 0xc2, 0xd6, 0x53, 0xff, 0x67, 0x72, 0xb2, 0xa1, 0x24, 0xe6, 0xbc,
0x56, 0x58, 0xf4, 0x0f, 0x41, 0x8e, 0x49, 0xb2, 0x8a, 0xc2, 0x84, 0x38, 0x34, 0xca, 0x92, 0x06, 0x56, 0x71, 0x51, 0x89, 0xba, 0x90, 0x9f, 0x3c, 0xe9, 0xd9, 0xcd, 0xab, 0xf2, 0x97, 0x47, 0xa3,
0xc1, 0xb2, 0x23, 0x74, 0x07, 0xda, 0x24, 0x4c, 0x1c, 0xde, 0x66, 0xd9, 0x8c, 0x92, 0x30, 0xe1, 0x78, 0x79, 0xe4, 0x79, 0x6e, 0xee, 0xf0, 0xfc, 0xab, 0x04, 0x72, 0x6e, 0xd6, 0xed, 0x39, 0xed,
0x88, 0x14, 0xd6, 0x65, 0xb3, 0xb4, 0x2e, 0x77, 0x37, 0x5f, 0xeb, 0x93, 0xf7, 0x7d, 0xfb, 0x53, 0x85, 0x73, 0x59, 0xe6, 0x7f, 0x72, 0xe7, 0x52, 0x0c, 0xfa, 0x4a, 0x6e, 0xd0, 0x3f, 0x02, 0x39,
0xf6, 0x3d, 0x7a, 0x06, 0xad, 0x24, 0x7d, 0x3d, 0xa8, 0x12, 0x5f, 0x01, 0x6a, 0x6e, 0xa0, 0xfc, 0x22, 0xf1, 0x2a, 0x0c, 0x62, 0x62, 0xd3, 0x30, 0x4d, 0x1a, 0x84, 0xca, 0x0a, 0xd9, 0x2d, 0x4a,
0xac, 0x78, 0x79, 0x80, 0x85, 0x28, 0x1a, 0x40, 0x23, 0x60, 0x6d, 0xaf, 0x02, 0xd7, 0xb9, 0xbd, 0x82, 0xd8, 0xe6, 0x6d, 0x96, 0x9e, 0x51, 0x12, 0xc4, 0x9c, 0x91, 0xdc, 0xb8, 0xac, 0x17, 0xc6,
0xf3, 0x20, 0xc8, 0x35, 0x52, 0x31, 0x26, 0xef, 0xb2, 0x4b, 0x59, 0x95, 0x77, 0xe5, 0x8b, 0x97, 0xe5, 0xee, 0xe4, 0x6b, 0x7c, 0xf4, 0xbc, 0x6f, 0x7e, 0xcc, 0xbc, 0x47, 0xcf, 0xa1, 0x11, 0x27,
0x3d, 0x93, 0xe7, 0x62, 0xe8, 0x01, 0x48, 0x5e, 0xb4, 0x5c, 0xae, 0xc3, 0x80, 0x6e, 0xd4, 0x0e, 0xef, 0x10, 0x55, 0xe2, 0x23, 0x40, 0xdd, 0x06, 0x28, 0x3e, 0x50, 0x5e, 0x1d, 0x60, 0x61, 0x8a,
0x2b, 0xfd, 0xcb, 0x03, 0x9c, 0xb3, 0xd0, 0x10, 0x8e, 0xfc, 0xb4, 0xb1, 0xc5, 0x1b, 0x49, 0xf5, 0xfa, 0x50, 0xf3, 0x59, 0xdb, 0xab, 0xc0, 0x7d, 0xee, 0xec, 0xbc, 0x2c, 0xb6, 0x1e, 0x89, 0x19,
0x76, 0xa3, 0x2f, 0x77, 0xfe, 0xcb, 0x03, 0xdc, 0xf5, 0xcb, 0xdb, 0x7b, 0x7b, 0x15, 0x1d, 0x16, 0xb3, 0x77, 0xd8, 0xa5, 0xac, 0xca, 0xbb, 0xf6, 0xf9, 0xcb, 0x9e, 0xd9, 0x73, 0x33, 0xf4, 0x10,
0xaf, 0xa2, 0x47, 0xd0, 0xf1, 0x83, 0x64, 0xb5, 0x70, 0x37, 0x69, 0x21, 0xbb, 0x69, 0x5b, 0x66, 0x24, 0x37, 0x5c, 0x2e, 0xd7, 0x81, 0x4f, 0x37, 0x6a, 0x8b, 0x95, 0xfe, 0xd5, 0x01, 0xde, 0xaa,
0x3c, 0x5e, 0xcc, 0x0b, 0x78, 0x90, 0x30, 0xd8, 0x19, 0x8e, 0xae, 0x47, 0x9d, 0x98, 0xfc, 0xbc, 0xd0, 0x00, 0x0e, 0xbd, 0xa4, 0xb1, 0xc5, 0x6b, 0x4b, 0x75, 0x77, 0xd1, 0x17, 0x3b, 0xff, 0xd5,
0x26, 0x09, 0x75, 0x92, 0xe0, 0x32, 0x74, 0xe9, 0x3a, 0x26, 0xea, 0xd1, 0xee, 0x36, 0x1d, 0xa6, 0x01, 0xee, 0x78, 0xc5, 0xe9, 0x9d, 0x5d, 0x45, 0xed, 0xfc, 0x55, 0xf4, 0x18, 0x5a, 0x9e, 0x1f,
0xa2, 0x38, 0x95, 0xb4, 0x84, 0x20, 0xfe, 0x9c, 0x19, 0xda, 0xf3, 0x13, 0x85, 0xa0, 0xc5, 0xc4, 0xaf, 0x16, 0xce, 0x26, 0x29, 0x64, 0x27, 0x69, 0xcb, 0x54, 0xc7, 0x8b, 0x79, 0x09, 0x0f, 0x63,
0x23, 0xc1, 0x3b, 0xe2, 0x5f, 0xe3, 0x4b, 0xf9, 0x58, 0x5f, 0x0f, 0x85, 0xb1, 0x7d, 0xfe, 0x9e, 0x46, 0x3b, 0xe3, 0xd1, 0x71, 0xa9, 0x1d, 0x91, 0x1f, 0xd6, 0x24, 0xa6, 0x76, 0xec, 0x5f, 0x05,
0xc0, 0x91, 0x70, 0x23, 0x50, 0xfd, 0xac, 0x57, 0xe9, 0xb7, 0x71, 0x37, 0x63, 0x67, 0xc8, 0x69, 0x0e, 0x5d, 0x47, 0x44, 0x3d, 0xdc, 0x9d, 0xa6, 0x83, 0xc4, 0x14, 0x27, 0x96, 0x53, 0x61, 0x88,
0x7f, 0x54, 0x41, 0x1e, 0x96, 0xe6, 0xf4, 0xa6, 0x78, 0x66, 0x0d, 0xa7, 0x13, 0xdb, 0x98, 0xd8, 0xff, 0xcf, 0x02, 0xed, 0xf9, 0x89, 0x02, 0xd0, 0x22, 0xe2, 0x12, 0xff, 0x2d, 0xf1, 0x6e, 0xd8,
0xe2, 0xa1, 0xd5, 0x05, 0xb0, 0x8d, 0x1f, 0x6d, 0xe7, 0xec, 0x7b, 0xdd, 0x9c, 0x28, 0x15, 0x24, 0x4b, 0xf9, 0xd0, 0xbd, 0x1e, 0x89, 0x60, 0xfb, 0xf6, 0x7b, 0x0a, 0x87, 0x62, 0x1b, 0xc1, 0xea,
0x43, 0xcb, 0xb2, 0xcd, 0xe1, 0x2b, 0x03, 0x2b, 0x55, 0x04, 0xd0, 0xb4, 0x6c, 0xdd, 0x9e, 0x59, 0xff, 0xba, 0xa5, 0x5e, 0x13, 0x77, 0x52, 0x75, 0xca, 0x9c, 0xf6, 0x7b, 0x19, 0xe4, 0x41, 0xe1,
0x4a, 0x0d, 0x49, 0xd0, 0x30, 0xc6, 0xd3, 0xef, 0x4c, 0xa5, 0x8e, 0x8e, 0xe1, 0x86, 0x8d, 0xf5, 0x9c, 0x1e, 0x89, 0x67, 0xd6, 0x60, 0x32, 0xb6, 0x8c, 0xb1, 0x25, 0x1e, 0x5a, 0x1d, 0x00, 0xcb,
0x89, 0xa5, 0x0f, 0x6d, 0x73, 0xca, 0x2c, 0x8e, 0xc7, 0xfa, 0x64, 0xa4, 0x34, 0x50, 0x1f, 0x1e, 0xf8, 0xce, 0xb2, 0xcf, 0xbe, 0xd6, 0xcd, 0xb1, 0x52, 0x42, 0x32, 0x34, 0xa6, 0x96, 0x39, 0x78,
0x5b, 0xe7, 0x96, 0x6d, 0x8c, 0x9d, 0xb1, 0x61, 0x59, 0xfa, 0xa9, 0xb1, 0xf5, 0x76, 0x86, 0xcd, 0x6d, 0x60, 0xa5, 0x8c, 0x00, 0xea, 0x53, 0x4b, 0xb7, 0x66, 0x53, 0xa5, 0x82, 0x24, 0xa8, 0x19,
0x37, 0xba, 0x6d, 0x38, 0xa7, 0x78, 0x3a, 0x3b, 0x53, 0x9a, 0xcc, 0x9a, 0x39, 0xd6, 0x4f, 0x0d, 0xa3, 0xc9, 0x57, 0xa6, 0x52, 0x45, 0xc7, 0x70, 0xcb, 0xc2, 0xfa, 0x78, 0xaa, 0x0f, 0x2c, 0x73,
0xa5, 0xc5, 0x8e, 0xfc, 0xe9, 0xa7, 0xb4, 0xd1, 0x21, 0x48, 0xcc, 0xd8, 0x6c, 0x62, 0xda, 0xe7, 0xc2, 0x22, 0x8e, 0x46, 0xfa, 0x78, 0xa8, 0xd4, 0x50, 0x0f, 0x9e, 0x4c, 0xcf, 0xa7, 0x96, 0x31,
0x8a, 0xc4, 0x1e, 0x87, 0x3b, 0xe6, 0x4e, 0xf5, 0x33, 0x05, 0xd0, 0x0d, 0x38, 0x62, 0x76, 0xf5, 0xb2, 0x47, 0xc6, 0x74, 0xaa, 0x9f, 0x1a, 0xd9, 0x6e, 0x67, 0xd8, 0x7c, 0xa3, 0x5b, 0x86, 0x7d,
0xa1, 0xed, 0x60, 0xe3, 0xf5, 0xcc, 0xb0, 0x6c, 0x45, 0x66, 0xcc, 0x91, 0x69, 0x0d, 0xa7, 0x78, 0x8a, 0x27, 0xb3, 0x33, 0xa5, 0xce, 0xa2, 0x99, 0x23, 0xfd, 0xd4, 0x50, 0x1a, 0x6c, 0xc9, 0x9f,
0x24, 0xa4, 0x95, 0x0e, 0xba, 0x03, 0xb7, 0xcc, 0x91, 0x31, 0xb1, 0x4d, 0xfb, 0xdc, 0x79, 0x63, 0x7e, 0x4a, 0x13, 0xb5, 0x41, 0x62, 0xc1, 0x66, 0x63, 0xd3, 0x3a, 0x57, 0x24, 0xf6, 0x38, 0xdc,
0x60, 0xf3, 0x85, 0x39, 0xd4, 0x59, 0xcc, 0xca, 0xe1, 0x89, 0xb4, 0x5d, 0x5d, 0xda, 0x0c, 0x8e, 0x09, 0x77, 0xaa, 0x9f, 0x29, 0x80, 0x6e, 0xc1, 0x21, 0x8b, 0xab, 0x0f, 0x2c, 0x1b, 0x1b, 0xdf,
0xf7, 0x21, 0x7e, 0x0f, 0xa4, 0xbc, 0x90, 0xe9, 0xfb, 0x38, 0x67, 0x5c, 0xbf, 0xa2, 0x4e, 0x0e, 0xcc, 0x8c, 0xa9, 0xa5, 0xc8, 0x4c, 0x39, 0x34, 0xa7, 0x83, 0x09, 0x1e, 0x0a, 0x6b, 0xa5, 0x85,
0x7f, 0x92, 0x07, 0x5f, 0x7c, 0x23, 0xaa, 0xfe, 0xb6, 0xc9, 0x4f, 0x5f, 0xfe, 0x17, 0x00, 0x00, 0xee, 0xc2, 0x6d, 0x73, 0x68, 0x8c, 0x2d, 0xd3, 0x3a, 0xb7, 0xdf, 0x18, 0xd8, 0x7c, 0x69, 0x0e,
0xff, 0xff, 0x4b, 0x69, 0x87, 0xa8, 0x3a, 0x0c, 0x00, 0x00, 0x74, 0x86, 0x59, 0x69, 0x9f, 0x48, 0xd9, 0xe8, 0xd2, 0x66, 0x70, 0xbc, 0x8f, 0xf1, 0xfb, 0x20,
0x6d, 0x0b, 0x99, 0xbc, 0x8f, 0xb7, 0x8a, 0x9b, 0x47, 0xd4, 0x49, 0xfb, 0x7b, 0xb9, 0xff, 0xc9,
0x17, 0xa2, 0xea, 0x17, 0x75, 0xbe, 0xfa, 0xf4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x61,
0xf8, 0x08, 0x84, 0x0c, 0x00, 0x00,
} }

View File

@ -13,6 +13,9 @@ message StickerMessage {
message ImageMessage { message ImageMessage {
bytes payload = 1; bytes payload = 1;
ImageType type = 2; ImageType type = 2;
string album_id = 3;
uint32 width = 4;
uint32 height = 5;
} }
message AudioMessage { message AudioMessage {