2019-12-02 15:34:05 +00:00
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
|
|
// source: chat_message.proto
|
|
|
|
|
|
|
|
package protobuf
|
|
|
|
|
|
|
|
import (
|
|
|
|
fmt "fmt"
|
2020-02-10 11:22:37 +00:00
|
|
|
proto "github.com/golang/protobuf/proto"
|
2020-03-09 07:55:58 +00:00
|
|
|
math "math"
|
2019-12-02 15:34:05 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
|
|
var _ = proto.Marshal
|
|
|
|
var _ = fmt.Errorf
|
|
|
|
var _ = math.Inf
|
|
|
|
|
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
|
|
// is compatible with the proto package it is being compiled against.
|
|
|
|
// A compilation error at this line likely means your copy of the
|
|
|
|
// proto package needs to be updated.
|
|
|
|
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
|
|
|
|
2020-06-17 18:55:49 +00:00
|
|
|
type AudioMessage_AudioType int32
|
|
|
|
|
|
|
|
const (
|
|
|
|
AudioMessage_UNKNOWN_AUDIO_TYPE AudioMessage_AudioType = 0
|
|
|
|
AudioMessage_AAC AudioMessage_AudioType = 1
|
|
|
|
AudioMessage_AMR AudioMessage_AudioType = 2
|
|
|
|
)
|
|
|
|
|
|
|
|
var AudioMessage_AudioType_name = map[int32]string{
|
|
|
|
0: "UNKNOWN_AUDIO_TYPE",
|
|
|
|
1: "AAC",
|
|
|
|
2: "AMR",
|
|
|
|
}
|
|
|
|
|
|
|
|
var AudioMessage_AudioType_value = map[string]int32{
|
|
|
|
"UNKNOWN_AUDIO_TYPE": 0,
|
|
|
|
"AAC": 1,
|
|
|
|
"AMR": 2,
|
|
|
|
}
|
|
|
|
|
|
|
|
func (x AudioMessage_AudioType) String() string {
|
|
|
|
return proto.EnumName(AudioMessage_AudioType_name, int32(x))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (AudioMessage_AudioType) EnumDescriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{2, 0}
|
|
|
|
}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
type ChatMessage_ContentType int32
|
|
|
|
|
|
|
|
const (
|
|
|
|
ChatMessage_UNKNOWN_CONTENT_TYPE ChatMessage_ContentType = 0
|
|
|
|
ChatMessage_TEXT_PLAIN ChatMessage_ContentType = 1
|
|
|
|
ChatMessage_STICKER ChatMessage_ContentType = 2
|
|
|
|
ChatMessage_STATUS ChatMessage_ContentType = 3
|
|
|
|
ChatMessage_EMOJI ChatMessage_ContentType = 4
|
2020-01-10 18:59:01 +00:00
|
|
|
ChatMessage_TRANSACTION_COMMAND ChatMessage_ContentType = 5
|
2020-01-28 11:16:28 +00:00
|
|
|
// Only local
|
|
|
|
ChatMessage_SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP ChatMessage_ContentType = 6
|
2020-05-13 13:16:17 +00:00
|
|
|
ChatMessage_IMAGE ChatMessage_ContentType = 7
|
2020-06-17 18:55:49 +00:00
|
|
|
ChatMessage_AUDIO ChatMessage_ContentType = 8
|
2020-11-18 09:16:51 +00:00
|
|
|
ChatMessage_COMMUNITY ChatMessage_ContentType = 9
|
2021-03-25 15:15:22 +00:00
|
|
|
// Only local
|
|
|
|
ChatMessage_SYSTEM_MESSAGE_GAP ChatMessage_ContentType = 10
|
2022-01-18 16:31:34 +00:00
|
|
|
ChatMessage_CONTACT_REQUEST ChatMessage_ContentType = 11
|
2022-08-04 16:16:56 +00:00
|
|
|
ChatMessage_DISCORD_MESSAGE ChatMessage_ContentType = 12
|
2019-12-02 15:34:05 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var ChatMessage_ContentType_name = map[int32]string{
|
2021-03-25 15:15:22 +00:00
|
|
|
0: "UNKNOWN_CONTENT_TYPE",
|
|
|
|
1: "TEXT_PLAIN",
|
|
|
|
2: "STICKER",
|
|
|
|
3: "STATUS",
|
|
|
|
4: "EMOJI",
|
|
|
|
5: "TRANSACTION_COMMAND",
|
|
|
|
6: "SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP",
|
|
|
|
7: "IMAGE",
|
|
|
|
8: "AUDIO",
|
|
|
|
9: "COMMUNITY",
|
|
|
|
10: "SYSTEM_MESSAGE_GAP",
|
2022-01-18 16:31:34 +00:00
|
|
|
11: "CONTACT_REQUEST",
|
2022-08-04 16:16:56 +00:00
|
|
|
12: "DISCORD_MESSAGE",
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var ChatMessage_ContentType_value = map[string]int32{
|
2020-01-28 11:16:28 +00:00
|
|
|
"UNKNOWN_CONTENT_TYPE": 0,
|
|
|
|
"TEXT_PLAIN": 1,
|
|
|
|
"STICKER": 2,
|
|
|
|
"STATUS": 3,
|
|
|
|
"EMOJI": 4,
|
|
|
|
"TRANSACTION_COMMAND": 5,
|
|
|
|
"SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP": 6,
|
2020-05-13 13:16:17 +00:00
|
|
|
"IMAGE": 7,
|
2020-06-17 18:55:49 +00:00
|
|
|
"AUDIO": 8,
|
2020-11-18 09:16:51 +00:00
|
|
|
"COMMUNITY": 9,
|
2021-03-25 15:15:22 +00:00
|
|
|
"SYSTEM_MESSAGE_GAP": 10,
|
2022-01-18 16:31:34 +00:00
|
|
|
"CONTACT_REQUEST": 11,
|
2022-08-04 16:16:56 +00:00
|
|
|
"DISCORD_MESSAGE": 12,
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (x ChatMessage_ContentType) String() string {
|
|
|
|
return proto.EnumName(ChatMessage_ContentType_name, int32(x))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ChatMessage_ContentType) EnumDescriptor() ([]byte, []int) {
|
2022-09-20 09:13:44 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{10, 0}
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type StickerMessage struct {
|
|
|
|
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
|
|
|
|
Pack int32 `protobuf:"varint,2,opt,name=pack,proto3" json:"pack,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *StickerMessage) Reset() { *m = StickerMessage{} }
|
|
|
|
func (m *StickerMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*StickerMessage) ProtoMessage() {}
|
|
|
|
func (*StickerMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{0}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *StickerMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_StickerMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *StickerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_StickerMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *StickerMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_StickerMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *StickerMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_StickerMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *StickerMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_StickerMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_StickerMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *StickerMessage) GetHash() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Hash
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *StickerMessage) GetPack() int32 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Pack
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2020-05-13 13:16:17 +00:00
|
|
|
type ImageMessage struct {
|
2020-10-22 13:19:25 +00:00
|
|
|
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"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2020-05-13 13:16:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ImageMessage) Reset() { *m = ImageMessage{} }
|
|
|
|
func (m *ImageMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*ImageMessage) ProtoMessage() {}
|
|
|
|
func (*ImageMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{1}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ImageMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_ImageMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *ImageMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_ImageMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *ImageMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_ImageMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *ImageMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_ImageMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *ImageMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_ImageMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_ImageMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *ImageMessage) GetPayload() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Payload
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2020-10-22 13:19:25 +00:00
|
|
|
func (m *ImageMessage) GetType() ImageType {
|
2020-05-13 13:16:17 +00:00
|
|
|
if m != nil {
|
|
|
|
return m.Type
|
|
|
|
}
|
2020-10-22 13:19:25 +00:00
|
|
|
return ImageType_UNKNOWN_IMAGE_TYPE
|
2020-05-13 13:16:17 +00:00
|
|
|
}
|
|
|
|
|
2020-06-17 18:55:49 +00:00
|
|
|
type AudioMessage struct {
|
|
|
|
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"`
|
2020-06-23 14:30:39 +00:00
|
|
|
DurationMs uint64 `protobuf:"varint,3,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
|
2020-06-17 18:55:49 +00:00
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *AudioMessage) Reset() { *m = AudioMessage{} }
|
|
|
|
func (m *AudioMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*AudioMessage) ProtoMessage() {}
|
|
|
|
func (*AudioMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{2}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *AudioMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_AudioMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *AudioMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_AudioMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *AudioMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_AudioMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *AudioMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_AudioMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *AudioMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_AudioMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_AudioMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *AudioMessage) GetPayload() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Payload
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *AudioMessage) GetType() AudioMessage_AudioType {
|
|
|
|
if m != nil {
|
|
|
|
return m.Type
|
|
|
|
}
|
|
|
|
return AudioMessage_UNKNOWN_AUDIO_TYPE
|
|
|
|
}
|
|
|
|
|
2020-06-23 14:30:39 +00:00
|
|
|
func (m *AudioMessage) GetDurationMs() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.DurationMs
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2021-06-07 08:31:27 +00:00
|
|
|
type EditMessage struct {
|
|
|
|
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
|
|
|
// Text of the message
|
|
|
|
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
|
|
|
|
ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
|
|
|
|
MessageId string `protobuf:"bytes,4,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
|
|
|
|
// Grant for community edit messages
|
|
|
|
Grant []byte `protobuf:"bytes,5,opt,name=grant,proto3" json:"grant,omitempty"`
|
|
|
|
// The type of message (public/one-to-one/private-group-chat)
|
2022-10-07 07:05:02 +00:00
|
|
|
MessageType MessageType `protobuf:"varint,6,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
|
|
|
|
ContentType ChatMessage_ContentType `protobuf:"varint,7,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2021-06-07 08:31:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) Reset() { *m = EditMessage{} }
|
|
|
|
func (m *EditMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*EditMessage) ProtoMessage() {}
|
|
|
|
func (*EditMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{3}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_EditMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *EditMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_EditMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *EditMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_EditMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *EditMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_EditMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *EditMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_EditMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_EditMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *EditMessage) GetClock() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Clock
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) GetText() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Text
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) GetChatId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ChatId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) GetMessageId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) GetGrant() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Grant
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *EditMessage) GetMessageType() MessageType {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageType
|
|
|
|
}
|
|
|
|
return MessageType_UNKNOWN_MESSAGE_TYPE
|
|
|
|
}
|
|
|
|
|
2022-10-07 07:05:02 +00:00
|
|
|
func (m *EditMessage) GetContentType() ChatMessage_ContentType {
|
|
|
|
if m != nil {
|
|
|
|
return m.ContentType
|
|
|
|
}
|
|
|
|
return ChatMessage_UNKNOWN_CONTENT_TYPE
|
|
|
|
}
|
|
|
|
|
2021-07-26 21:06:32 +00:00
|
|
|
type DeleteMessage struct {
|
|
|
|
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
|
|
|
ChatId string `protobuf:"bytes,2,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
|
|
|
|
MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
|
|
|
|
// Grant for community delete messages
|
|
|
|
Grant []byte `protobuf:"bytes,4,opt,name=grant,proto3" json:"grant,omitempty"`
|
|
|
|
// The type of message (public/one-to-one/private-group-chat)
|
|
|
|
MessageType MessageType `protobuf:"varint,5,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) Reset() { *m = DeleteMessage{} }
|
|
|
|
func (m *DeleteMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DeleteMessage) ProtoMessage() {}
|
|
|
|
func (*DeleteMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{4}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DeleteMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DeleteMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DeleteMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DeleteMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DeleteMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DeleteMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DeleteMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DeleteMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DeleteMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DeleteMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DeleteMessage) GetClock() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Clock
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) GetChatId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ChatId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) GetMessageId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) GetGrant() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Grant
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteMessage) GetMessageType() MessageType {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageType
|
|
|
|
}
|
|
|
|
return MessageType_UNKNOWN_MESSAGE_TYPE
|
|
|
|
}
|
|
|
|
|
2022-09-28 11:42:17 +00:00
|
|
|
type DeleteForMeMessage struct {
|
|
|
|
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
|
|
|
MessageId string `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteForMeMessage) Reset() { *m = DeleteForMeMessage{} }
|
|
|
|
func (m *DeleteForMeMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DeleteForMeMessage) ProtoMessage() {}
|
|
|
|
func (*DeleteForMeMessage) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{5}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteForMeMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DeleteForMeMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DeleteForMeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DeleteForMeMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DeleteForMeMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DeleteForMeMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DeleteForMeMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DeleteForMeMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DeleteForMeMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DeleteForMeMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DeleteForMeMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DeleteForMeMessage) GetClock() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Clock
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DeleteForMeMessage) GetMessageId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
type DiscordMessage struct {
|
2022-09-20 09:13:44 +00:00
|
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
|
|
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
|
|
|
|
Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
|
|
TimestampEdited string `protobuf:"bytes,4,opt,name=timestampEdited,proto3" json:"timestampEdited,omitempty"`
|
|
|
|
Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
|
|
|
|
Author *DiscordMessageAuthor `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"`
|
|
|
|
Reference *DiscordMessageReference `protobuf:"bytes,7,opt,name=reference,proto3" json:"reference,omitempty"`
|
|
|
|
Attachments []*DiscordMessageAttachment `protobuf:"bytes,8,rep,name=attachments,proto3" json:"attachments,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) Reset() { *m = DiscordMessage{} }
|
|
|
|
func (m *DiscordMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DiscordMessage) ProtoMessage() {}
|
|
|
|
func (*DiscordMessage) Descriptor() ([]byte, []int) {
|
2022-09-28 11:42:17 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{6}
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DiscordMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DiscordMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DiscordMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DiscordMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DiscordMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DiscordMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Id
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetType() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Type
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetTimestamp() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Timestamp
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetTimestampEdited() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.TimestampEdited
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetContent() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Content
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessage) GetAuthor() *DiscordMessageAuthor {
|
|
|
|
if m != nil {
|
|
|
|
return m.Author
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2022-08-04 16:16:56 +00:00
|
|
|
func (m *DiscordMessage) GetReference() *DiscordMessageReference {
|
|
|
|
if m != nil {
|
|
|
|
return m.Reference
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2022-09-20 09:13:44 +00:00
|
|
|
func (m *DiscordMessage) GetAttachments() []*DiscordMessageAttachment {
|
|
|
|
if m != nil {
|
|
|
|
return m.Attachments
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
type DiscordMessageAuthor struct {
|
|
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
|
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
|
|
|
Discriminator string `protobuf:"bytes,3,opt,name=discriminator,proto3" json:"discriminator,omitempty"`
|
|
|
|
Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname,omitempty"`
|
|
|
|
AvatarUrl string `protobuf:"bytes,5,opt,name=avatarUrl,proto3" json:"avatarUrl,omitempty"`
|
2022-09-15 09:05:30 +00:00
|
|
|
AvatarImagePayload []byte `protobuf:"bytes,6,opt,name=avatarImagePayload,proto3" json:"avatarImagePayload,omitempty"`
|
|
|
|
LocalUrl string `protobuf:"bytes,7,opt,name=localUrl,proto3" json:"localUrl,omitempty"`
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) Reset() { *m = DiscordMessageAuthor{} }
|
|
|
|
func (m *DiscordMessageAuthor) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DiscordMessageAuthor) ProtoMessage() {}
|
|
|
|
func (*DiscordMessageAuthor) Descriptor() ([]byte, []int) {
|
2022-09-28 11:42:17 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{7}
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DiscordMessageAuthor.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAuthor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DiscordMessageAuthor.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAuthor) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DiscordMessageAuthor.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAuthor) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DiscordMessageAuthor.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAuthor) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DiscordMessageAuthor.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DiscordMessageAuthor proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Id
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetName() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Name
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetDiscriminator() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Discriminator
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetNickname() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Nickname
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetAvatarUrl() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.AvatarUrl
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2022-09-15 09:05:30 +00:00
|
|
|
func (m *DiscordMessageAuthor) GetAvatarImagePayload() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.AvatarImagePayload
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAuthor) GetLocalUrl() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.LocalUrl
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2022-08-04 16:16:56 +00:00
|
|
|
type DiscordMessageReference struct {
|
|
|
|
MessageId string `protobuf:"bytes,1,opt,name=messageId,proto3" json:"messageId,omitempty"`
|
|
|
|
ChannelId string `protobuf:"bytes,2,opt,name=channelId,proto3" json:"channelId,omitempty"`
|
|
|
|
GuildId string `protobuf:"bytes,3,opt,name=guildId,proto3" json:"guildId,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageReference) Reset() { *m = DiscordMessageReference{} }
|
|
|
|
func (m *DiscordMessageReference) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DiscordMessageReference) ProtoMessage() {}
|
|
|
|
func (*DiscordMessageReference) Descriptor() ([]byte, []int) {
|
2022-09-28 11:42:17 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{8}
|
2022-08-04 16:16:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageReference) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DiscordMessageReference.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DiscordMessageReference.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageReference) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DiscordMessageReference.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageReference) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DiscordMessageReference.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageReference) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DiscordMessageReference.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DiscordMessageReference proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DiscordMessageReference) GetMessageId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageReference) GetChannelId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ChannelId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageReference) GetGuildId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.GuildId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2022-09-20 09:13:44 +00:00
|
|
|
type DiscordMessageAttachment struct {
|
|
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
|
|
MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
|
|
|
|
Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
|
|
|
|
FileName string `protobuf:"bytes,4,opt,name=fileName,proto3" json:"fileName,omitempty"`
|
|
|
|
FileSizeBytes uint64 `protobuf:"varint,5,opt,name=fileSizeBytes,proto3" json:"fileSizeBytes,omitempty"`
|
|
|
|
ContentType string `protobuf:"bytes,6,opt,name=contentType,proto3" json:"contentType,omitempty"`
|
|
|
|
Payload []byte `protobuf:"bytes,7,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
|
|
LocalUrl string `protobuf:"bytes,8,opt,name=localUrl,proto3" json:"localUrl,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) Reset() { *m = DiscordMessageAttachment{} }
|
|
|
|
func (m *DiscordMessageAttachment) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*DiscordMessageAttachment) ProtoMessage() {}
|
|
|
|
func (*DiscordMessageAttachment) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_263952f55fd35689, []int{9}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_DiscordMessageAttachment.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_DiscordMessageAttachment.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAttachment) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_DiscordMessageAttachment.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAttachment) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_DiscordMessageAttachment.Size(m)
|
|
|
|
}
|
|
|
|
func (m *DiscordMessageAttachment) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_DiscordMessageAttachment.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_DiscordMessageAttachment proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Id
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetMessageId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.MessageId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetUrl() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Url
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetFileName() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.FileName
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetFileSizeBytes() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.FileSizeBytes
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetContentType() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ContentType
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetPayload() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Payload
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *DiscordMessageAttachment) GetLocalUrl() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.LocalUrl
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
type ChatMessage struct {
|
|
|
|
// Lamport timestamp of the chat message
|
|
|
|
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
2022-09-28 11:42:17 +00:00
|
|
|
// Unix timestamps in milliseconds, currently not used as we use whisper as
|
|
|
|
// more reliable, but here so that we don't rely on it
|
2019-12-02 15:34:05 +00:00
|
|
|
Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
|
|
// Text of the message
|
|
|
|
Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
|
2020-03-09 07:55:58 +00:00
|
|
|
// Id of the message that we are replying to
|
2019-12-02 15:34:05 +00:00
|
|
|
ResponseTo string `protobuf:"bytes,4,opt,name=response_to,json=responseTo,proto3" json:"response_to,omitempty"`
|
|
|
|
// Ens name of the sender
|
|
|
|
EnsName string `protobuf:"bytes,5,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
|
|
|
|
// Chat id, this field is symmetric for public-chats and private group chats,
|
|
|
|
// but asymmetric in case of one-to-ones, as the sender will use the chat-id
|
|
|
|
// of the received, while the receiver will use the chat-id of the sender.
|
2022-09-28 11:42:17 +00:00
|
|
|
// Probably should be the concatenation of sender-pk & receiver-pk in
|
|
|
|
// alphabetical order
|
2019-12-02 15:34:05 +00:00
|
|
|
ChatId string `protobuf:"bytes,6,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
|
|
|
|
// The type of message (public/one-to-one/private-group-chat)
|
2020-07-25 11:13:23 +00:00
|
|
|
MessageType MessageType `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
|
2019-12-02 15:34:05 +00:00
|
|
|
// 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"`
|
|
|
|
// Types that are valid to be assigned to Payload:
|
|
|
|
// *ChatMessage_Sticker
|
2020-05-13 13:16:17 +00:00
|
|
|
// *ChatMessage_Image
|
2020-06-17 18:55:49 +00:00
|
|
|
// *ChatMessage_Audio
|
2020-11-18 09:16:51 +00:00
|
|
|
// *ChatMessage_Community
|
2022-08-04 16:16:56 +00:00
|
|
|
// *ChatMessage_DiscordMessage
|
2020-11-18 09:16:51 +00:00
|
|
|
Payload isChatMessage_Payload `protobuf_oneof:"payload"`
|
|
|
|
// Grant for community chat messages
|
2022-02-17 15:13:10 +00:00
|
|
|
Grant []byte `protobuf:"bytes,13,opt,name=grant,proto3" json:"grant,omitempty"`
|
|
|
|
// Message author's display name, introduced in version 1
|
2022-01-18 16:31:34 +00:00
|
|
|
DisplayName string `protobuf:"bytes,14,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
|
|
|
|
SentContactRequestSignature *ContactRequestSignature `protobuf:"bytes,15,opt,name=sent_contact_request_signature,json=sentContactRequestSignature,proto3" json:"sent_contact_request_signature,omitempty"`
|
|
|
|
ReceivedContactRequestSignature *ContactRequestSignature `protobuf:"bytes,16,opt,name=received_contact_request_signature,json=receivedContactRequestSignature,proto3" json:"received_contact_request_signature,omitempty"`
|
|
|
|
ContactMessage bool `protobuf:"varint,17,opt,name=contact_message,json=contactMessage,proto3" json:"contact_message,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) Reset() { *m = ChatMessage{} }
|
|
|
|
func (m *ChatMessage) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*ChatMessage) ProtoMessage() {}
|
|
|
|
func (*ChatMessage) Descriptor() ([]byte, []int) {
|
2022-09-20 09:13:44 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{10}
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_ChatMessage.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *ChatMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_ChatMessage.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *ChatMessage) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_ChatMessage.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *ChatMessage) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_ChatMessage.Size(m)
|
|
|
|
}
|
|
|
|
func (m *ChatMessage) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_ChatMessage.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_ChatMessage proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetClock() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Clock
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetTimestamp() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Timestamp
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetText() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.Text
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetResponseTo() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ResponseTo
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetEnsName() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.EnsName
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetChatId() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.ChatId
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2020-07-25 11:13:23 +00:00
|
|
|
func (m *ChatMessage) GetMessageType() MessageType {
|
2019-12-02 15:34:05 +00:00
|
|
|
if m != nil {
|
|
|
|
return m.MessageType
|
|
|
|
}
|
2020-07-25 11:13:23 +00:00
|
|
|
return MessageType_UNKNOWN_MESSAGE_TYPE
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetContentType() ChatMessage_ContentType {
|
|
|
|
if m != nil {
|
|
|
|
return m.ContentType
|
|
|
|
}
|
|
|
|
return ChatMessage_UNKNOWN_CONTENT_TYPE
|
|
|
|
}
|
|
|
|
|
|
|
|
type isChatMessage_Payload interface {
|
|
|
|
isChatMessage_Payload()
|
|
|
|
}
|
|
|
|
|
|
|
|
type ChatMessage_Sticker struct {
|
|
|
|
Sticker *StickerMessage `protobuf:"bytes,9,opt,name=sticker,proto3,oneof"`
|
|
|
|
}
|
|
|
|
|
2020-05-13 13:16:17 +00:00
|
|
|
type ChatMessage_Image struct {
|
|
|
|
Image *ImageMessage `protobuf:"bytes,10,opt,name=image,proto3,oneof"`
|
|
|
|
}
|
|
|
|
|
2020-06-17 18:55:49 +00:00
|
|
|
type ChatMessage_Audio struct {
|
|
|
|
Audio *AudioMessage `protobuf:"bytes,11,opt,name=audio,proto3,oneof"`
|
|
|
|
}
|
|
|
|
|
2020-11-18 09:16:51 +00:00
|
|
|
type ChatMessage_Community struct {
|
|
|
|
Community []byte `protobuf:"bytes,12,opt,name=community,proto3,oneof"`
|
|
|
|
}
|
|
|
|
|
2022-08-04 16:16:56 +00:00
|
|
|
type ChatMessage_DiscordMessage struct {
|
|
|
|
DiscordMessage *DiscordMessage `protobuf:"bytes,99,opt,name=discord_message,json=discordMessage,proto3,oneof"`
|
|
|
|
}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
func (*ChatMessage_Sticker) isChatMessage_Payload() {}
|
|
|
|
|
2020-05-13 13:16:17 +00:00
|
|
|
func (*ChatMessage_Image) isChatMessage_Payload() {}
|
|
|
|
|
2020-06-17 18:55:49 +00:00
|
|
|
func (*ChatMessage_Audio) isChatMessage_Payload() {}
|
|
|
|
|
2020-11-18 09:16:51 +00:00
|
|
|
func (*ChatMessage_Community) isChatMessage_Payload() {}
|
|
|
|
|
2022-08-04 16:16:56 +00:00
|
|
|
func (*ChatMessage_DiscordMessage) isChatMessage_Payload() {}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
func (m *ChatMessage) GetPayload() isChatMessage_Payload {
|
|
|
|
if m != nil {
|
|
|
|
return m.Payload
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetSticker() *StickerMessage {
|
|
|
|
if x, ok := m.GetPayload().(*ChatMessage_Sticker); ok {
|
|
|
|
return x.Sticker
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2020-05-13 13:16:17 +00:00
|
|
|
func (m *ChatMessage) GetImage() *ImageMessage {
|
|
|
|
if x, ok := m.GetPayload().(*ChatMessage_Image); ok {
|
|
|
|
return x.Image
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2020-06-17 18:55:49 +00:00
|
|
|
func (m *ChatMessage) GetAudio() *AudioMessage {
|
|
|
|
if x, ok := m.GetPayload().(*ChatMessage_Audio); ok {
|
|
|
|
return x.Audio
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2020-11-18 09:16:51 +00:00
|
|
|
func (m *ChatMessage) GetCommunity() []byte {
|
|
|
|
if x, ok := m.GetPayload().(*ChatMessage_Community); ok {
|
|
|
|
return x.Community
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2022-08-04 16:16:56 +00:00
|
|
|
func (m *ChatMessage) GetDiscordMessage() *DiscordMessage {
|
|
|
|
if x, ok := m.GetPayload().(*ChatMessage_DiscordMessage); ok {
|
|
|
|
return x.DiscordMessage
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2020-11-18 09:16:51 +00:00
|
|
|
func (m *ChatMessage) GetGrant() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Grant
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2022-02-17 15:13:10 +00:00
|
|
|
func (m *ChatMessage) GetDisplayName() string {
|
|
|
|
if m != nil {
|
|
|
|
return m.DisplayName
|
|
|
|
}
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
2022-01-18 16:31:34 +00:00
|
|
|
func (m *ChatMessage) GetSentContactRequestSignature() *ContactRequestSignature {
|
|
|
|
if m != nil {
|
|
|
|
return m.SentContactRequestSignature
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetReceivedContactRequestSignature() *ContactRequestSignature {
|
|
|
|
if m != nil {
|
|
|
|
return m.ReceivedContactRequestSignature
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ChatMessage) GetContactMessage() bool {
|
|
|
|
if m != nil {
|
|
|
|
return m.ContactMessage
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
// XXX_OneofWrappers is for the internal use of the proto package.
|
|
|
|
func (*ChatMessage) XXX_OneofWrappers() []interface{} {
|
|
|
|
return []interface{}{
|
|
|
|
(*ChatMessage_Sticker)(nil),
|
2020-05-13 13:16:17 +00:00
|
|
|
(*ChatMessage_Image)(nil),
|
2020-06-17 18:55:49 +00:00
|
|
|
(*ChatMessage_Audio)(nil),
|
2020-11-18 09:16:51 +00:00
|
|
|
(*ChatMessage_Community)(nil),
|
2022-08-04 16:16:56 +00:00
|
|
|
(*ChatMessage_DiscordMessage)(nil),
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-18 16:31:34 +00:00
|
|
|
type ContactRequestSignature struct {
|
|
|
|
Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
|
|
|
|
Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ContactRequestSignature) Reset() { *m = ContactRequestSignature{} }
|
|
|
|
func (m *ContactRequestSignature) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*ContactRequestSignature) ProtoMessage() {}
|
|
|
|
func (*ContactRequestSignature) Descriptor() ([]byte, []int) {
|
2022-09-20 09:13:44 +00:00
|
|
|
return fileDescriptor_263952f55fd35689, []int{11}
|
2022-01-18 16:31:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ContactRequestSignature) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_ContactRequestSignature.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *ContactRequestSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_ContactRequestSignature.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *ContactRequestSignature) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_ContactRequestSignature.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *ContactRequestSignature) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_ContactRequestSignature.Size(m)
|
|
|
|
}
|
|
|
|
func (m *ContactRequestSignature) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_ContactRequestSignature.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_ContactRequestSignature proto.InternalMessageInfo
|
|
|
|
|
|
|
|
func (m *ContactRequestSignature) GetSignature() []byte {
|
|
|
|
if m != nil {
|
|
|
|
return m.Signature
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *ContactRequestSignature) GetTimestamp() uint64 {
|
|
|
|
if m != nil {
|
|
|
|
return m.Timestamp
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2019-12-02 15:34:05 +00:00
|
|
|
func init() {
|
2020-06-17 18:55:49 +00:00
|
|
|
proto.RegisterEnum("protobuf.AudioMessage_AudioType", AudioMessage_AudioType_name, AudioMessage_AudioType_value)
|
2019-12-02 15:34:05 +00:00
|
|
|
proto.RegisterEnum("protobuf.ChatMessage_ContentType", ChatMessage_ContentType_name, ChatMessage_ContentType_value)
|
|
|
|
proto.RegisterType((*StickerMessage)(nil), "protobuf.StickerMessage")
|
2020-05-13 13:16:17 +00:00
|
|
|
proto.RegisterType((*ImageMessage)(nil), "protobuf.ImageMessage")
|
2020-06-17 18:55:49 +00:00
|
|
|
proto.RegisterType((*AudioMessage)(nil), "protobuf.AudioMessage")
|
2021-06-07 08:31:27 +00:00
|
|
|
proto.RegisterType((*EditMessage)(nil), "protobuf.EditMessage")
|
2021-07-26 21:06:32 +00:00
|
|
|
proto.RegisterType((*DeleteMessage)(nil), "protobuf.DeleteMessage")
|
2022-09-28 11:42:17 +00:00
|
|
|
proto.RegisterType((*DeleteForMeMessage)(nil), "protobuf.DeleteForMeMessage")
|
feat: introduce messenger APIs to extract discord channels
As part of the new Discord <-> Status Community Import functionality,
we're adding an API that extracts all discord categories and channels
from a previously exported discord export file.
These APIs can be used in clients to show the user what categories and
channels will be imported later on.
There are two APIs:
1. `Messenger.ExtractDiscordCategoriesAndChannels(filesToimport
[]string) (*MessengerResponse, map[string]*discord.ImportError)`
This takes a list of exported discord export (JSON) files (typically one per
channel), reads them, and extracts the categories and channels into
dedicated data structures (`[]DiscordChannel` and `[]DiscordCategory`)
It also returns the oldest message timestamp found in all extracted
channels.
The API is synchronous and returns the extracted data as
a `*MessengerResponse`. This allows to make the API available
status-go's RPC interface.
The error case is a `map[string]*discord.ImportError` where each key
is a file path of a JSON file that we tried to extract data from, and
the value a `discord.ImportError` which holds an error message and an
error code, allowing for distinguishing between "critical" errors and
"non-critical" errors.
2. `Messenger.RequestExtractDiscordCategoriesAndChannels(filesToImport
[]string)`
This is the asynchronous counterpart to
`ExtractDiscordCategoriesAndChannels`. The reason this API has been
added is because discord servers can have a lot of message and
channel data, which causes `ExtractDiscordCategoriesAndChannels` to
block the thread for too long, making apps potentially feel like they
are stuck.
This API runs inside a go routine, eventually calls
`ExtractDiscordCategoriesAndChannels`, and then emits a newly
introduced `DiscordCategoriesAndChannelsExtractedSignal` that clients
can react to.
Failure of extraction has to be determined by the
`discord.ImportErrors` emitted by the signal.
**A note about exported discord history files**
We expect users to export their discord histories via the
[DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/wiki/GUI%2C-CLI-and-Formats-explained#exportguild)
tool. The tool allows to export the data in different formats, such as
JSON, HTML and CSV.
We expect users to have their data exported as JSON.
Closes: https://github.com/status-im/status-desktop/issues/6690
2022-07-13 09:33:53 +00:00
|
|
|
proto.RegisterType((*DiscordMessage)(nil), "protobuf.DiscordMessage")
|
|
|
|
proto.RegisterType((*DiscordMessageAuthor)(nil), "protobuf.DiscordMessageAuthor")
|
2022-08-04 16:16:56 +00:00
|
|
|
proto.RegisterType((*DiscordMessageReference)(nil), "protobuf.DiscordMessageReference")
|
2022-09-20 09:13:44 +00:00
|
|
|
proto.RegisterType((*DiscordMessageAttachment)(nil), "protobuf.DiscordMessageAttachment")
|
2019-12-02 15:34:05 +00:00
|
|
|
proto.RegisterType((*ChatMessage)(nil), "protobuf.ChatMessage")
|
2022-01-18 16:31:34 +00:00
|
|
|
proto.RegisterType((*ContactRequestSignature)(nil), "protobuf.ContactRequestSignature")
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|
|
|
|
|
2022-07-22 08:10:47 +00:00
|
|
|
func init() {
|
|
|
|
proto.RegisterFile("chat_message.proto", fileDescriptor_263952f55fd35689)
|
|
|
|
}
|
2019-12-02 15:34:05 +00:00
|
|
|
|
|
|
|
var fileDescriptor_263952f55fd35689 = []byte{
|
2022-10-07 07:05:02 +00:00
|
|
|
// 1219 bytes of a gzipped FileDescriptorProto
|
|
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x5f, 0x8f, 0xdb, 0x44,
|
|
|
|
0x10, 0xbf, 0xfc, 0x8f, 0xc7, 0xb9, 0x9c, 0xd9, 0x96, 0x9e, 0x29, 0xa5, 0x4d, 0xad, 0x4a, 0xcd,
|
|
|
|
0x53, 0x90, 0x4a, 0x41, 0x95, 0x78, 0x40, 0x6e, 0x62, 0xae, 0xa6, 0x24, 0xb9, 0xae, 0x1d, 0xa0,
|
|
|
|
0xbc, 0x44, 0x5b, 0x7b, 0xef, 0x62, 0x5d, 0x62, 0x07, 0x7b, 0x53, 0x11, 0xde, 0xf9, 0x38, 0xbc,
|
|
|
|
0xf2, 0x4d, 0xf8, 0x0a, 0x7c, 0x00, 0xc4, 0x07, 0x40, 0xbb, 0xf6, 0xc6, 0x76, 0xb8, 0x5c, 0xab,
|
|
|
|
0x3e, 0x79, 0x67, 0x3c, 0x7f, 0x7f, 0x33, 0x3b, 0x3b, 0x80, 0xbc, 0x05, 0x61, 0xf3, 0x15, 0x4d,
|
|
|
|
0x12, 0x72, 0x49, 0x07, 0xeb, 0x38, 0x62, 0x11, 0x6a, 0x8b, 0xcf, 0x9b, 0xcd, 0xc5, 0x5d, 0x95,
|
|
|
|
0x86, 0x9b, 0x55, 0x92, 0xb2, 0x8d, 0x67, 0xd0, 0x75, 0x58, 0xe0, 0x5d, 0xd1, 0x78, 0x9c, 0x8a,
|
|
|
|
0x23, 0x04, 0xf5, 0x05, 0x49, 0x16, 0x7a, 0xa5, 0x57, 0xe9, 0x2b, 0x58, 0x9c, 0x39, 0x6f, 0x4d,
|
|
|
|
0xbc, 0x2b, 0xbd, 0xda, 0xab, 0xf4, 0x1b, 0x58, 0x9c, 0x8d, 0x57, 0xd0, 0xb1, 0x57, 0xe4, 0x92,
|
|
|
|
0x4a, 0x3d, 0x1d, 0x5a, 0x6b, 0xb2, 0x5d, 0x46, 0xc4, 0x17, 0xaa, 0x1d, 0x2c, 0x49, 0xf4, 0x18,
|
|
|
|
0xea, 0x6c, 0xbb, 0xa6, 0x42, 0xbb, 0xfb, 0xe4, 0xd6, 0x40, 0x46, 0x32, 0x10, 0xfa, 0xee, 0x76,
|
|
|
|
0x4d, 0xb1, 0x10, 0x30, 0xfe, 0xac, 0x40, 0xc7, 0xdc, 0xf8, 0x41, 0xf4, 0x6e, 0x9b, 0x4f, 0x4b,
|
|
|
|
0x36, 0x7b, 0xb9, 0xcd, 0xa2, 0x7e, 0x4a, 0xe4, 0x0e, 0xd0, 0x03, 0x50, 0xfd, 0x4d, 0x4c, 0x58,
|
|
|
|
0x10, 0x85, 0xf3, 0x55, 0xa2, 0xd7, 0x7a, 0x95, 0x7e, 0x1d, 0x83, 0x64, 0x8d, 0x13, 0xe3, 0x4b,
|
|
|
|
0x50, 0x76, 0x3a, 0xe8, 0x0e, 0xa0, 0xd9, 0xe4, 0xe5, 0x64, 0xfa, 0xe3, 0x64, 0x6e, 0xce, 0x46,
|
|
|
|
0xf6, 0x74, 0xee, 0xbe, 0x3e, 0xb7, 0xb4, 0x23, 0xd4, 0x82, 0x9a, 0x69, 0x0e, 0xb5, 0x8a, 0x38,
|
|
|
|
0x8c, 0xb1, 0x56, 0x35, 0x7e, 0xaf, 0x82, 0x6a, 0xf9, 0x01, 0x93, 0x71, 0xdf, 0x86, 0x86, 0xb7,
|
|
|
|
0x8c, 0xbc, 0x2b, 0x11, 0x75, 0x1d, 0xa7, 0x04, 0x47, 0x91, 0xd1, 0x5f, 0x99, 0x88, 0x59, 0xc1,
|
|
|
|
0xe2, 0x8c, 0x4e, 0xa1, 0x25, 0x8a, 0x15, 0xf8, 0x22, 0x1a, 0x05, 0x37, 0x39, 0x69, 0xfb, 0xe8,
|
|
|
|
0x33, 0x80, 0xac, 0x80, 0xfc, 0x5f, 0x5d, 0xfc, 0x53, 0x32, 0x8e, 0xed, 0x73, 0x0f, 0x97, 0x31,
|
|
|
|
0x09, 0x99, 0xde, 0x10, 0xb8, 0xa4, 0x04, 0x7a, 0x06, 0x1d, 0xa9, 0x24, 0xd0, 0x69, 0x0a, 0x74,
|
|
|
|
0x3e, 0xce, 0xd1, 0xc9, 0x02, 0x14, 0x90, 0xa8, 0xab, 0x9c, 0x40, 0x23, 0xe8, 0x78, 0x51, 0xc8,
|
|
|
|
0x68, 0xc8, 0x52, 0xcd, 0x96, 0xd0, 0x7c, 0x98, 0x6b, 0x0e, 0x17, 0x44, 0xa6, 0x37, 0x18, 0xa6,
|
|
|
|
0x92, 0xa9, 0x15, 0x2f, 0x27, 0x8c, 0x3f, 0x2a, 0x70, 0x3c, 0xa2, 0x4b, 0xca, 0xe8, 0xcd, 0x48,
|
|
|
|
0x14, 0xb2, 0xae, 0xde, 0x90, 0x75, 0xed, 0x60, 0xd6, 0xf5, 0x9b, 0xb2, 0x6e, 0xbc, 0x6f, 0xd6,
|
|
|
|
0x86, 0x0d, 0x28, 0x0d, 0xf7, 0xdb, 0x28, 0x1e, 0xbf, 0x23, 0xe6, 0x72, 0x68, 0xd5, 0xbd, 0xd0,
|
|
|
|
0x8c, 0xbf, 0xaa, 0xd0, 0x1d, 0x05, 0x89, 0x17, 0xc5, 0xbe, 0xb4, 0xd3, 0x85, 0x6a, 0xe0, 0x67,
|
|
|
|
0xf7, 0xa8, 0x1a, 0xf8, 0xa2, 0xfe, 0xb2, 0x67, 0x95, 0xac, 0x23, 0xef, 0x81, 0xc2, 0x82, 0x15,
|
|
|
|
0x4d, 0x18, 0x59, 0xad, 0x65, 0xbe, 0x3b, 0x06, 0xea, 0xc3, 0xc9, 0x8e, 0xe0, 0xfd, 0x45, 0x65,
|
|
|
|
0x27, 0xec, 0xb3, 0xf9, 0x4d, 0xc9, 0x0a, 0x21, 0xd2, 0x57, 0xb0, 0x24, 0xd1, 0x57, 0xd0, 0x24,
|
|
|
|
0x1b, 0xb6, 0x88, 0x62, 0xd1, 0x0d, 0xea, 0x93, 0xfb, 0x39, 0x2e, 0xe5, 0x78, 0x4d, 0x21, 0x85,
|
|
|
|
0x33, 0x69, 0xf4, 0x0d, 0x28, 0x31, 0xbd, 0xa0, 0x31, 0x0d, 0xbd, 0xb4, 0x1d, 0xd4, 0x62, 0x3b,
|
|
|
|
0x94, 0x55, 0xb1, 0x14, 0xc4, 0xb9, 0x0e, 0x1a, 0x81, 0x4a, 0x18, 0x23, 0xde, 0x62, 0x45, 0x43,
|
|
|
|
0x96, 0xe8, 0xed, 0x5e, 0xad, 0xaf, 0x3e, 0x31, 0x0e, 0x7a, 0xdf, 0x89, 0xe2, 0xa2, 0x9a, 0xf1,
|
|
|
|
0x77, 0x05, 0x6e, 0x5f, 0x17, 0xe7, 0x75, 0xe8, 0x86, 0x64, 0xb5, 0x43, 0x97, 0x9f, 0xd1, 0x23,
|
|
|
|
0x38, 0xf6, 0x83, 0xc4, 0x8b, 0x83, 0x55, 0x10, 0x12, 0x16, 0xc5, 0x19, 0xc2, 0x65, 0x26, 0xba,
|
|
|
|
0x0b, 0xed, 0x30, 0xf0, 0xae, 0x84, 0x76, 0x0a, 0xef, 0x8e, 0xe6, 0xf5, 0x21, 0x6f, 0x09, 0x23,
|
|
|
|
0xf1, 0x2c, 0x5e, 0x66, 0xc8, 0xe6, 0x0c, 0x34, 0x00, 0x94, 0x12, 0x62, 0x92, 0x9d, 0x67, 0xa3,
|
|
|
|
0xaa, 0x29, 0x9a, 0xf3, 0x9a, 0x3f, 0xdc, 0xd3, 0x32, 0xf2, 0xc8, 0x92, 0x1b, 0x6b, 0xa5, 0x9e,
|
|
|
|
0x24, 0x6d, 0x44, 0x70, 0x7a, 0x00, 0x54, 0x1e, 0xc4, 0xae, 0xd1, 0xb2, 0x8c, 0x0b, 0x97, 0xe2,
|
|
|
|
0x1e, 0x28, 0xde, 0x82, 0x84, 0x21, 0x5d, 0xda, 0xbb, 0xbe, 0xdc, 0x31, 0x78, 0x63, 0x5c, 0x6e,
|
|
|
|
0x82, 0xa5, 0x6f, 0xcb, 0xeb, 0x24, 0x49, 0xe3, 0xdf, 0x0a, 0xe8, 0x87, 0x6a, 0xf0, 0x3f, 0x74,
|
|
|
|
0x4b, 0x21, 0xec, 0x37, 0x3f, 0xd2, 0xa0, 0xb6, 0x89, 0x97, 0x99, 0x03, 0x7e, 0xe4, 0x99, 0x5e,
|
|
|
|
0x04, 0x4b, 0x3a, 0x29, 0x60, 0x2a, 0x69, 0x5e, 0x15, 0x7e, 0x76, 0x82, 0xdf, 0xe8, 0xf3, 0x2d,
|
|
|
|
0xa3, 0x89, 0xc0, 0xb5, 0x8e, 0xcb, 0x4c, 0xd4, 0x83, 0xe2, 0x68, 0x11, 0xa0, 0x2a, 0xa5, 0x69,
|
|
|
|
0x53, 0x7c, 0x1d, 0x5a, 0xe5, 0xd7, 0xa1, 0x88, 0x73, 0x7b, 0x0f, 0xe7, 0x7f, 0xda, 0xa0, 0x16,
|
|
|
|
0x86, 0xd9, 0x81, 0xdb, 0x5e, 0xba, 0x97, 0x55, 0xf1, 0xa7, 0x70, 0x2f, 0xe5, 0x24, 0xaf, 0x15,
|
|
|
|
0x26, 0xf9, 0x03, 0x50, 0x63, 0x9a, 0xac, 0xa3, 0x30, 0xa1, 0x73, 0x16, 0x65, 0x49, 0x83, 0x64,
|
|
|
|
0xb9, 0x11, 0xfa, 0x04, 0xda, 0x34, 0x4c, 0xe6, 0xa2, 0xcd, 0xb2, 0x3b, 0x4a, 0xc3, 0x44, 0x20,
|
|
|
|
0x52, 0x98, 0x87, 0xcd, 0xd2, 0x3c, 0xdc, 0x1f, 0x6d, 0xad, 0x0f, 0x1e, 0xe8, 0xed, 0x0f, 0x19,
|
|
|
|
0xe8, 0xe8, 0x29, 0xb4, 0x92, 0x74, 0x3d, 0xd0, 0x15, 0x31, 0x02, 0xf4, 0xdc, 0x40, 0x79, 0x6f,
|
|
|
|
0x78, 0x71, 0x84, 0xa5, 0x28, 0x1a, 0x40, 0x23, 0xe0, 0x6d, 0xaf, 0x83, 0xd0, 0xb9, 0xb3, 0xf7,
|
|
|
|
0xe2, 0xe7, 0x1a, 0xa9, 0x18, 0x97, 0x27, 0xfc, 0xd5, 0xd5, 0xd5, 0x7d, 0xf9, 0xe2, 0x6b, 0xce,
|
|
|
|
0xe5, 0x85, 0x18, 0xba, 0x0f, 0x8a, 0x17, 0xad, 0x56, 0x9b, 0x30, 0x60, 0x5b, 0xbd, 0xc3, 0x4b,
|
|
|
|
0xff, 0xe2, 0x08, 0xe7, 0x2c, 0x34, 0x84, 0x13, 0x3f, 0x6d, 0x6c, 0xb9, 0x04, 0xe9, 0xde, 0x7e,
|
|
|
|
0xf4, 0xe5, 0xce, 0x7f, 0x71, 0x84, 0xbb, 0x7e, 0x79, 0x7a, 0xef, 0xde, 0x9a, 0xe3, 0xe2, 0x5b,
|
|
|
|
0xf3, 0x10, 0x3a, 0x7e, 0x90, 0xac, 0x97, 0x64, 0x9b, 0x16, 0xb2, 0x9b, 0xb6, 0x65, 0xc6, 0x13,
|
|
|
|
0xc5, 0xbc, 0x80, 0xfb, 0x09, 0x87, 0x9d, 0xe3, 0x48, 0x3c, 0x36, 0x8f, 0xe9, 0x2f, 0x1b, 0x9a,
|
|
|
|
0xb0, 0x79, 0x12, 0x5c, 0x86, 0x84, 0x6d, 0x62, 0xaa, 0x9f, 0xec, 0x4f, 0xd3, 0x61, 0x2a, 0x8a,
|
|
|
|
0x53, 0x49, 0x47, 0x0a, 0xe2, 0x4f, 0xb9, 0xa1, 0x03, 0x3f, 0x51, 0x08, 0x46, 0x4c, 0x3d, 0x1a,
|
|
|
|
0xbc, 0xa5, 0xfe, 0x0d, 0xbe, 0xb4, 0xf7, 0xf5, 0xf5, 0x40, 0x1a, 0x3b, 0xe4, 0xef, 0x31, 0x9c,
|
|
|
|
0x48, 0x37, 0x12, 0xd5, 0x8f, 0x7a, 0x95, 0x7e, 0x1b, 0x77, 0x33, 0x76, 0x86, 0x9c, 0xd8, 0x86,
|
|
|
|
0x86, 0xa5, 0x7b, 0x7a, 0x5b, 0xee, 0x51, 0xc3, 0xe9, 0xc4, 0xb5, 0x26, 0xae, 0xdc, 0xa4, 0xba,
|
|
|
|
0x00, 0xae, 0xf5, 0x93, 0x3b, 0x3f, 0xff, 0xde, 0xb4, 0x27, 0x5a, 0x05, 0xa9, 0xd0, 0x72, 0x5c,
|
|
|
|
0x7b, 0xf8, 0xd2, 0xc2, 0x5a, 0x15, 0x01, 0x34, 0x1d, 0xd7, 0x74, 0x67, 0x8e, 0x56, 0x43, 0x0a,
|
|
|
|
0x34, 0xac, 0xf1, 0xf4, 0x3b, 0x5b, 0xab, 0xa3, 0x53, 0xb8, 0xe5, 0x62, 0x73, 0xe2, 0x98, 0x43,
|
|
|
|
0xd7, 0x9e, 0x72, 0x8b, 0xe3, 0xb1, 0x39, 0x19, 0x69, 0x0d, 0xd4, 0x87, 0x47, 0xce, 0x6b, 0xc7,
|
|
|
|
0xb5, 0xc6, 0xf3, 0xb1, 0xe5, 0x38, 0xe6, 0x99, 0xb5, 0xf3, 0x76, 0x8e, 0xed, 0x1f, 0x4c, 0xd7,
|
|
|
|
0x9a, 0x9f, 0xe1, 0xe9, 0xec, 0x5c, 0x6b, 0x72, 0x6b, 0xf6, 0xd8, 0x3c, 0xb3, 0xb4, 0x16, 0x3f,
|
|
|
|
0x8a, 0xdd, 0x4e, 0x6b, 0xa3, 0x63, 0x50, 0xb8, 0xb1, 0xd9, 0xc4, 0x76, 0x5f, 0x6b, 0x0a, 0xdf,
|
|
|
|
0xfe, 0xf6, 0xcc, 0x9d, 0x99, 0xe7, 0x1a, 0xa0, 0x5b, 0x70, 0xc2, 0xed, 0x9a, 0x43, 0x77, 0x8e,
|
|
|
|
0xad, 0x57, 0x33, 0xcb, 0x71, 0x35, 0x95, 0x33, 0x47, 0xb6, 0x33, 0x9c, 0xe2, 0x91, 0x94, 0xd6,
|
|
|
|
0x3a, 0xcf, 0x95, 0xdd, 0x7c, 0x32, 0x66, 0x70, 0x7a, 0x08, 0xd6, 0x7b, 0xa0, 0xe4, 0xd5, 0x4a,
|
|
|
|
0xb7, 0xdc, 0x9c, 0x71, 0xf3, 0x1c, 0x7a, 0x7e, 0xfc, 0xb3, 0x3a, 0xf8, 0xfc, 0x6b, 0x59, 0xda,
|
|
|
|
0x37, 0x4d, 0x71, 0xfa, 0xe2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdb, 0xff, 0x5a, 0x16, 0x00,
|
|
|
|
0x0c, 0x00, 0x00,
|
2019-12-02 15:34:05 +00:00
|
|
|
}
|