126 lines
4.2 KiB
Go
126 lines
4.2 KiB
Go
package layerwire
|
|
|
|
import (
|
|
"github.com/gotd/td/bin"
|
|
"github.com/gotd/td/tg"
|
|
)
|
|
|
|
// canonicalCorpus is a diverse set of canonical (gotd, Layer 227) objects shared
|
|
// by the walker and transcoder tests. It deliberately exercises changed types
|
|
// (message, messageMediaPhoto, keyboardButton*, dialog, channelFull, userFull,
|
|
// pollResults/pollAnswerVoters), nested containers, vectors, and multi-flags.
|
|
func canonicalCorpus() []bin.Encoder {
|
|
photo := &tg.Photo{
|
|
ID: 10,
|
|
AccessHash: 11,
|
|
FileReference: []byte{1, 2, 3},
|
|
Date: 100,
|
|
Sizes: []tg.PhotoSizeClass{
|
|
&tg.PhotoSize{Type: "x", W: 100, H: 100, Size: 2048},
|
|
&tg.PhotoStrippedSize{Type: "i", Bytes: []byte{9, 8, 7}},
|
|
},
|
|
DCID: 2,
|
|
}
|
|
return []bin.Encoder{
|
|
&tg.Message{ID: 1, PeerID: &tg.PeerUser{UserID: 2}, Date: 100, Message: "hi"},
|
|
&tg.Message{
|
|
Out: true,
|
|
ID: 2,
|
|
FromID: &tg.PeerUser{UserID: 3},
|
|
PeerID: &tg.PeerChannel{ChannelID: 4},
|
|
Date: 101,
|
|
Message: "rich",
|
|
Media: &tg.MessageMediaPhoto{Photo: photo, TTLSeconds: 5},
|
|
Entities: []tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{Offset: 0, Length: 2},
|
|
&tg.MessageEntityTextURL{Offset: 0, Length: 2, URL: "https://x"},
|
|
},
|
|
ReplyMarkup: &tg.ReplyInlineMarkup{Rows: []tg.KeyboardButtonRow{
|
|
{Buttons: []tg.KeyboardButtonClass{
|
|
&tg.KeyboardButtonCallback{Text: "ok", Data: []byte("d")},
|
|
&tg.KeyboardButtonURL{Text: "go", URL: "https://y"},
|
|
}},
|
|
}},
|
|
ReplyTo: &tg.MessageReplyHeader{ReplyToMsgID: 1},
|
|
FwdFrom: tg.MessageFwdHeader{FromName: "n", Date: 99},
|
|
Views: 7,
|
|
Forwards: 2,
|
|
Reactions: tg.MessageReactions{Results: []tg.ReactionCount{{Reaction: &tg.ReactionEmoji{Emoticon: "👍"}, Count: 3}}},
|
|
GroupedID: 555,
|
|
},
|
|
&tg.MessageService{
|
|
ID: 3,
|
|
PeerID: &tg.PeerUser{UserID: 2},
|
|
Date: 102,
|
|
Action: &tg.MessageActionChatEditTitle{Title: "t"},
|
|
},
|
|
&tg.Updates{
|
|
Updates: []tg.UpdateClass{
|
|
&tg.UpdateNewMessage{Message: &tg.Message{ID: 9, PeerID: &tg.PeerUser{UserID: 2}, Date: 1, Message: "u"}, Pts: 1, PtsCount: 1},
|
|
&tg.UpdateMessageID{ID: 9, RandomID: 123},
|
|
},
|
|
Users: []tg.UserClass{&tg.User{ID: 2, AccessHash: 5, FirstName: "A"}},
|
|
Chats: []tg.ChatClass{&tg.Channel{ID: 4, AccessHash: 6, Title: "C", Photo: &tg.ChatPhotoEmpty{}}},
|
|
Date: 100,
|
|
Seq: 1,
|
|
},
|
|
&tg.User{
|
|
ID: 2,
|
|
AccessHash: 5,
|
|
FirstName: "A",
|
|
Username: "a",
|
|
Photo: &tg.UserProfilePhoto{PhotoID: 7, DCID: 2},
|
|
Status: &tg.UserStatusOnline{Expires: 999},
|
|
},
|
|
&tg.UserFull{
|
|
ID: 2,
|
|
About: "hi",
|
|
Settings: tg.PeerSettings{},
|
|
NotifySettings: tg.PeerNotifySettings{},
|
|
CommonChatsCount: 0,
|
|
},
|
|
&tg.Channel{ID: 4, AccessHash: 6, Title: "C", Megagroup: true, Photo: &tg.ChatPhotoEmpty{}},
|
|
&tg.ChannelFull{
|
|
ID: 4,
|
|
About: "about",
|
|
ReadInboxMaxID: 1,
|
|
ReadOutboxMaxID: 1,
|
|
UnreadCount: 0,
|
|
ChatPhoto: &tg.PhotoEmpty{ID: 0},
|
|
NotifySettings: tg.PeerNotifySettings{},
|
|
Pts: 1,
|
|
},
|
|
&tg.Dialog{
|
|
Peer: &tg.PeerUser{UserID: 2},
|
|
TopMessage: 2,
|
|
ReadInboxMaxID: 1,
|
|
NotifySettings: tg.PeerNotifySettings{},
|
|
},
|
|
&tg.Poll{
|
|
ID: 1,
|
|
Question: tg.TextWithEntities{Text: "q?"},
|
|
Answers: []tg.PollAnswerClass{
|
|
&tg.PollAnswer{Text: tg.TextWithEntities{Text: "a"}, Option: []byte{0}},
|
|
&tg.PollAnswer{Text: tg.TextWithEntities{Text: "b"}, Option: []byte{1}},
|
|
},
|
|
},
|
|
&tg.PollResults{
|
|
Results: []tg.PollAnswerVoters{
|
|
{Option: []byte{0}, Voters: 3, Chosen: true},
|
|
{Option: []byte{1}, Voters: 1},
|
|
},
|
|
TotalVoters: 4,
|
|
},
|
|
&tg.MessagesDialogs{
|
|
Dialogs: []tg.DialogClass{&tg.Dialog{Peer: &tg.PeerUser{UserID: 2}, TopMessage: 2, NotifySettings: tg.PeerNotifySettings{}}},
|
|
Messages: []tg.MessageClass{&tg.Message{ID: 2, PeerID: &tg.PeerUser{UserID: 2}, Date: 1, Message: "x"}},
|
|
Chats: []tg.ChatClass{},
|
|
Users: []tg.UserClass{&tg.User{ID: 2, AccessHash: 5, FirstName: "A"}},
|
|
},
|
|
&tg.MessagesMessages{
|
|
Messages: []tg.MessageClass{&tg.Message{ID: 2, PeerID: &tg.PeerUser{UserID: 2}, Date: 1, Message: "x"}},
|
|
Chats: []tg.ChatClass{},
|
|
Users: []tg.UserClass{&tg.User{ID: 2, AccessHash: 5, FirstName: "A"}},
|
|
},
|
|
}
|
|
}
|