gotd: update to layer 224

This commit is contained in:
Tulir Asokan
2026-04-01 21:08:49 +03:00
parent 7630340ffc
commit 770b3b8d8c
77 changed files with 10606 additions and 703 deletions
+3 -2
View File
@@ -797,8 +797,9 @@ func convertPoll(media tg.MessageMediaClass) *bridgev2.ConvertedMessagePart {
var textAnswers []string var textAnswers []string
var htmlAnswers strings.Builder var htmlAnswers strings.Builder
for i, opt := range poll.Poll.Answers { for i, opt := range poll.Poll.Answers {
textAnswers = append(textAnswers, fmt.Sprintf("%d. %s", i+1, opt.Text.Text)) text := opt.GetText()
htmlAnswers.WriteString(fmt.Sprintf("<li>%s</li>", opt.Text.Text)) textAnswers = append(textAnswers, fmt.Sprintf("%d. %s", i+1, text.Text))
htmlAnswers.WriteString(fmt.Sprintf("<li>%s</li>", text.Text))
} }
return &bridgev2.ConvertedMessagePart{ return &bridgev2.ConvertedMessagePart{
+82 -30
View File
@@ -1,8 +1,8 @@
// Code generated by ./cmd/dltl, DO NOT EDIT. // Code generated by ./cmd/dltl, DO NOT EDIT.
// //
// Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/SourceFiles/mtproto/scheme/api.tl // Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/SourceFiles/mtproto/scheme/api.tl
// Layer: 223 // Layer: 224
// SHA256: efb4626bec87841fc0736a74e02bfd4e8bfbff001cab309246195af4897e6602 // SHA256: 44b4a8cced28a25e13fcb2bfd34983e6b906414f42dc04bbd0e3dded9253331d
boolFalse#bc799737 = Bool; boolFalse#bc799737 = Bool;
@@ -46,9 +46,9 @@ inputFileStoryDocument#62dc8b48 id:InputDocument = InputFile;
inputMediaEmpty#9664f57f = InputMedia; inputMediaEmpty#9664f57f = InputMedia;
inputMediaUploadedPhoto#1e287d04 flags:# spoiler:flags.2?true file:InputFile stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia; inputMediaUploadedPhoto#7d8375da flags:# spoiler:flags.2?true live_photo:flags.3?true file:InputFile stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int video:flags.3?InputDocument = InputMedia;
inputMediaPhoto#b3ba0635 flags:# spoiler:flags.1?true id:InputPhoto ttl_seconds:flags.0?int = InputMedia; inputMediaPhoto#e3af4434 flags:# spoiler:flags.1?true live_photo:flags.2?true id:InputPhoto ttl_seconds:flags.0?int video:flags.2?InputDocument = InputMedia;
inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
@@ -70,7 +70,7 @@ inputMediaInvoice#405fef0d flags:# title:string description:string photo:flags.0
inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia; inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;
inputMediaPoll#f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> = InputMedia; inputMediaPoll#883a4108 flags:# poll:Poll correct_answers:flags.0?Vector<int> attached_media:flags.3?InputMedia solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> solution_media:flags.2?InputMedia = InputMedia;
inputMediaDice#e66fbf7b emoticon:string = InputMedia; inputMediaDice#e66fbf7b emoticon:string = InputMedia;
@@ -146,7 +146,7 @@ storage.fileWebp#1081464c = storage.FileType;
userEmpty#d3bc4b7a id:long = User; userEmpty#d3bc4b7a id:long = User;
user#31774388 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true bot_has_main_app:flags2.13?true bot_forum_view:flags2.16?true bot_forum_can_manage_topics:flags2.17?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?RecentStory color:flags2.8?PeerColor profile_color:flags2.9?PeerColor bot_active_users:flags2.12?int bot_verification_icon:flags2.14?long send_paid_messages_stars:flags2.15?long = User; user#31774388 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true bot_has_main_app:flags2.13?true bot_forum_view:flags2.16?true bot_forum_can_manage_topics:flags2.17?true bot_can_manage_bots:flags2.18?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?RecentStory color:flags2.8?PeerColor profile_color:flags2.9?PeerColor bot_active_users:flags2.12?int bot_verification_icon:flags2.14?long send_paid_messages_stars:flags2.15?long = User;
userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
@@ -200,7 +200,7 @@ messageService#7a800e0a flags:# out:flags.1?true mentioned:flags.4?true media_un
messageMediaEmpty#3ded6320 = MessageMedia; messageMediaEmpty#3ded6320 = MessageMedia;
messageMediaPhoto#695150d7 flags:# spoiler:flags.3?true photo:flags.0?Photo ttl_seconds:flags.2?int = MessageMedia; messageMediaPhoto#e216eb63 flags:# spoiler:flags.3?true live_photo:flags.4?true photo:flags.0?Photo ttl_seconds:flags.2?int video:flags.4?Document = MessageMedia;
messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
@@ -220,7 +220,7 @@ messageMediaInvoice#f6a548d3 flags:# shipping_address_requested:flags.1?true tes
messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia; messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;
messageMediaPoll#4bd6e798 poll:Poll results:PollResults = MessageMedia; messageMediaPoll#773f4e66 flags:# poll:Poll results:PollResults attached_media:flags.0?MessageMedia = MessageMedia;
messageMediaDice#8cbec07 flags:# value:int emoticon:string game_outcome:flags.0?messages.EmojiGameOutcome = MessageMedia; messageMediaDice#8cbec07 flags:# value:int emoticon:string game_outcome:flags.0?messages.EmojiGameOutcome = MessageMedia;
@@ -364,7 +364,13 @@ messageActionNoForwardsToggle#bf7d6572 prev_value:Bool new_value:Bool = MessageA
messageActionNoForwardsRequest#3e2793ba flags:# expired:flags.0?true prev_value:Bool new_value:Bool = MessageAction; messageActionNoForwardsRequest#3e2793ba flags:# expired:flags.0?true prev_value:Bool new_value:Bool = MessageAction;
dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog; messageActionPollAppendAnswer#9da1cd6c answer:PollAnswer = MessageAction;
messageActionPollDeleteAnswer#399674dc answer:PollAnswer = MessageAction;
messageActionManagedBotCreated#16605e3e bot_id:long = MessageAction;
dialog#fc89f7f3 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int unread_poll_votes_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog; dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
@@ -440,7 +446,7 @@ inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
inputReportReasonPersonalDetails#9ec7863d = ReportReason; inputReportReasonPersonalDetails#9ec7863d = ReportReason;
userFull#a02bc13e flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true bot_can_manage_emoji_status:flags2.10?true display_gifts_button:flags2.16?true noforwards_my_enabled:flags2.23?true noforwards_peer_enabled:flags2.24?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme:flags.15?ChatTheme private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int stargifts_count:flags2.8?int starref_program:flags2.11?StarRefProgram bot_verification:flags2.12?BotVerification send_paid_messages_stars:flags2.14?long disallowed_gifts:flags2.15?DisallowedGiftsSettings stars_rating:flags2.17?StarsRating stars_my_pending_rating:flags2.18?StarsRating stars_my_pending_rating_date:flags2.18?int main_tab:flags2.20?ProfileTab saved_music:flags2.21?Document note:flags2.22?TextWithEntities = UserFull; userFull#6cbe645 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true bot_can_manage_emoji_status:flags2.10?true display_gifts_button:flags2.16?true noforwards_my_enabled:flags2.23?true noforwards_peer_enabled:flags2.24?true unofficial_security_risk:flags2.26?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme:flags.15?ChatTheme private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int stargifts_count:flags2.8?int starref_program:flags2.11?StarRefProgram bot_verification:flags2.12?BotVerification send_paid_messages_stars:flags2.14?long disallowed_gifts:flags2.15?DisallowedGiftsSettings stars_rating:flags2.17?StarsRating stars_my_pending_rating:flags2.18?StarsRating stars_my_pending_rating_date:flags2.18?int main_tab:flags2.20?ProfileTab saved_music:flags2.21?Document note:flags2.22?TextWithEntities bot_manager_id:flags2.25?long = UserFull;
contact#145ade0b user_id:long mutual:Bool = Contact; contact#145ade0b user_id:long mutual:Bool = Contact;
@@ -514,6 +520,8 @@ inputMessagesFilterContacts#e062db83 = MessagesFilter;
inputMessagesFilterPinned#1bb00451 = MessagesFilter; inputMessagesFilterPinned#1bb00451 = MessagesFilter;
inputMessagesFilterPoll#fa2bc90a = MessagesFilter;
updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
updateMessageID#4e90bfd6 id:int random_id:long = Update; updateMessageID#4e90bfd6 id:int random_id:long = Update;
@@ -638,7 +646,7 @@ updateChannelAvailableMessages#b23fc698 channel_id:long available_min_id:int = U
updateDialogUnreadMark#b658f23e flags:# unread:flags.0?true peer:DialogPeer saved_peer_id:flags.1?Peer = Update; updateDialogUnreadMark#b658f23e flags:# unread:flags.0?true peer:DialogPeer saved_peer_id:flags.1?Peer = Update;
updateMessagePoll#aca1657b flags:# poll_id:long poll:flags.0?Poll results:PollResults = Update; updateMessagePoll#d64c522b flags:# peer:flags.1?Peer msg_id:flags.1?int top_msg_id:flags.2?int poll_id:long poll:flags.0?Poll results:PollResults = Update;
updateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update; updateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update;
@@ -658,7 +666,7 @@ updateGeoLiveViewed#871fb939 peer:Peer msg_id:int = Update;
updateLoginToken#564fe691 = Update; updateLoginToken#564fe691 = Update;
updateMessagePollVote#24f40e77 poll_id:long peer:Peer options:Vector<bytes> qts:int = Update; updateMessagePollVote#7699f014 poll_id:long peer:Peer options:Vector<bytes> positions:Vector<int> qts:int = Update;
updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update; updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update;
@@ -820,6 +828,8 @@ updateStarGiftCraftFail#ac072444 = Update;
updateChatParticipantRank#bd8367b9 chat_id:long user_id:long rank:string version:int = Update; updateChatParticipantRank#bd8367b9 chat_id:long user_id:long rank:string version:int = Update;
updateManagedBot#4880ed9a user_id:long bot_id:long qts:int = Update;
updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
@@ -1254,6 +1264,12 @@ messageEntityBlockquote#f1ccaaac flags:# collapsed:flags.0?true offset:int lengt
messageEntityFormattedDate#904ac7c7 flags:# relative:flags.0?true short_time:flags.1?true long_time:flags.2?true short_date:flags.3?true long_date:flags.4?true day_of_week:flags.5?true offset:int length:int date:int = MessageEntity; messageEntityFormattedDate#904ac7c7 flags:# relative:flags.0?true short_time:flags.1?true long_time:flags.2?true short_date:flags.3?true long_date:flags.4?true day_of_week:flags.5?true offset:int length:int date:int = MessageEntity;
messageEntityDiffInsert#71777116 offset:int length:int = MessageEntity;
messageEntityDiffReplace#c6c1e5a7 offset:int length:int old_text:string = MessageEntity;
messageEntityDiffDelete#652c1c5 offset:int length:int = MessageEntity;
inputChannelEmpty#ee8c1e86 = InputChannel; inputChannelEmpty#ee8c1e86 = InputChannel;
inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel; inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel;
@@ -1980,13 +1996,15 @@ help.userInfoEmpty#f3ae2eed = help.UserInfo;
help.userInfo#1eb3758 message:string entities:Vector<MessageEntity> author:string date:int = help.UserInfo; help.userInfo#1eb3758 message:string entities:Vector<MessageEntity> author:string date:int = help.UserInfo;
pollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer; pollAnswer#4b7d786a flags:# text:TextWithEntities option:bytes media:flags.0?MessageMedia added_by:flags.1?Peer date:flags.1?int = PollAnswer;
poll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll; inputPollAnswer#199fed96 flags:# text:TextWithEntities media:flags.0?InputMedia = PollAnswer;
pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters; poll#b8425be9 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true open_answers:flags.6?true revoting_disabled:flags.7?true shuffle_answers:flags.8?true hide_results_until_close:flags.9?true creator:flags.10?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int hash:long = Poll;
pollResults#7adf2420 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults; pollAnswerVoters#3645230a flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:flags.2?int recent_voters:flags.2?Vector<Peer> = PollAnswerVoters;
pollResults#ba7bb15e flags:# min:flags.0?true has_unread_votes:flags.6?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> solution_media:flags.5?MessageMedia = PollResults;
chatOnlines#f041e250 onlines:int = ChatOnlines; chatOnlines#f041e250 onlines:int = ChatOnlines;
@@ -2032,7 +2050,7 @@ folderPeer#e9baa668 peer:Peer folder_id:int = FolderPeer;
messages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter; messages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter;
urlAuthResultRequest#f8f8eb1e flags:# request_write_access:flags.0?true request_phone_number:flags.1?true match_codes_first:flags.5?true bot:User domain:string browser:flags.2?string platform:flags.2?string ip:flags.2?string region:flags.2?string match_codes:flags.3?Vector<string> user_id_hint:flags.4?long = UrlAuthResult; urlAuthResultRequest#3cd623ec flags:# request_write_access:flags.0?true request_phone_number:flags.1?true match_codes_first:flags.5?true is_app:flags.6?true bot:User domain:string browser:flags.2?string platform:flags.2?string ip:flags.2?string region:flags.2?string match_codes:flags.3?Vector<string> user_id_hint:flags.4?long verified_app_name:flags.7?string = UrlAuthResult;
urlAuthResultAccepted#623a8fa0 flags:# url:flags.0?string = UrlAuthResult; urlAuthResultAccepted#623a8fa0 flags:# url:flags.0?string = UrlAuthResult;
@@ -2156,7 +2174,7 @@ messages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> use
messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage; messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;
messageReplyHeader#6917560b flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int todo_item_id:flags.11?int = MessageReplyHeader; messageReplyHeader#1b97dd66 flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int todo_item_id:flags.11?int poll_option:flags.12?bytes = MessageReplyHeader;
messageReplyStoryHeader#e5af939 peer:Peer story_id:int = MessageReplyHeader; messageReplyStoryHeader#e5af939 peer:Peer story_id:int = MessageReplyHeader;
@@ -2458,7 +2476,7 @@ username#b4073647 flags:# editable:flags.0?true active:flags.1?true username:str
forumTopicDeleted#23f109b id:int = ForumTopic; forumTopicDeleted#23f109b id:int = ForumTopic;
forumTopic#cdff0eca flags:# my:flags.1?true closed:flags.2?true pinned:flags.3?true short:flags.5?true hidden:flags.6?true title_missing:flags.7?true id:int date:int peer:Peer title:string icon_color:int icon_emoji_id:flags.0?long top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int from_id:Peer notify_settings:PeerNotifySettings draft:flags.4?DraftMessage = ForumTopic; forumTopic#fcdad815 flags:# my:flags.1?true closed:flags.2?true pinned:flags.3?true short:flags.5?true hidden:flags.6?true title_missing:flags.7?true id:int date:int peer:Peer title:string icon_color:int icon_emoji_id:flags.0?long top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int unread_poll_votes_count:int from_id:Peer notify_settings:PeerNotifySettings draft:flags.4?DraftMessage = ForumTopic;
messages.forumTopics#367617d3 flags:# order_by_create_date:flags.0?true count:int topics:Vector<ForumTopic> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int = messages.ForumTopics; messages.forumTopics#367617d3 flags:# order_by_create_date:flags.0?true count:int topics:Vector<ForumTopic> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int = messages.ForumTopics;
@@ -2472,6 +2490,8 @@ requestPeerTypeChat#c9f06e1b flags:# creator:flags.0?true bot_participant:flags.
requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType; requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;
requestPeerTypeCreateBot#3e81e078 flags:# bot_managed:flags.0?true suggested_name:flags.1?string suggested_username:flags.2?string = RequestPeerType;
emojiListNotModified#481eadfa = EmojiList; emojiListNotModified#481eadfa = EmojiList;
emojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList; emojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList;
@@ -2542,7 +2562,7 @@ storyItemDeleted#51e6ee4f id:int = StoryItem;
storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true live:flags.9?true id:int date:int expire_date:int = StoryItem; storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true live:flags.9?true id:int date:int expire_date:int = StoryItem;
storyItem#edf164f1 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction albums:flags.19?Vector<int> = StoryItem; storyItem#16a4b93c flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction albums:flags.19?Vector<int> music:flags.20?Document = StoryItem;
stories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories; stories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories;
@@ -2560,7 +2580,7 @@ stories.storyViewsList#59d78fc5 flags:# count:int views_count:int forwards_count
stories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews; stories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews;
inputReplyToMessage#869fbe10 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int monoforum_peer_id:flags.5?InputPeer todo_item_id:flags.6?int = InputReplyTo; inputReplyToMessage#3bd4b7c2 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int monoforum_peer_id:flags.5?InputPeer todo_item_id:flags.6?int poll_option:flags.7?bytes = InputReplyTo;
inputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo; inputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo;
@@ -2780,7 +2800,7 @@ reactionNotificationsFromContacts#bac3a61a = ReactionNotificationsFrom;
reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom; reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom;
reactionsNotifySettings#56e34970 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings; reactionsNotifySettings#71e4ea58 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom poll_votes_notify_from:flags.2?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings;
availableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect; availableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect;
@@ -3094,6 +3114,14 @@ starGiftAttributeRarityLegendary#cef7e7a8 = StarGiftAttributeRarity;
keyboardButtonStyle#4fdd3430 flags:# bg_primary:flags.0?true bg_danger:flags.1?true bg_success:flags.2?true icon:flags.3?long = KeyboardButtonStyle; keyboardButtonStyle#4fdd3430 flags:# bg_primary:flags.0?true bg_danger:flags.1?true bg_success:flags.2?true icon:flags.3?long = KeyboardButtonStyle;
inputMessageReadMetric#402b4495 msg_id:int view_id:long time_in_view_ms:int active_time_in_view_ms:int height_to_viewport_ratio_permille:int seen_range_ratio_permille:int = InputMessageReadMetric;
bots.exportedBotToken#3c60b621 token:string = bots.ExportedBotToken;
bots.requestedButton#f13bbcd7 webapp_req_id:string = bots.RequestedButton;
messages.composedMessageWithAI#90d7adfa flags:# result_text:TextWithEntities diff_text:flags.0?TextWithEntities = messages.ComposedMessageWithAI;
---functions--- ---functions---
@@ -3683,7 +3711,7 @@ messages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?
messages.sendVote#10ea6184 peer:InputPeer msg_id:int options:Vector<bytes> = Updates; messages.sendVote#10ea6184 peer:InputPeer msg_id:int options:Vector<bytes> = Updates;
messages.getPollResults#73bb643b peer:InputPeer msg_id:int = Updates; messages.getPollResults#eda3e33b peer:InputPeer msg_id:int poll_hash:long = Updates;
messages.getOnlines#6e2be050 peer:InputPeer = ChatOnlines; messages.getOnlines#6e2be050 peer:InputPeer = ChatOnlines;
@@ -3795,7 +3823,7 @@ messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
messages.setDefaultReaction#4f47a016 reaction:Reaction = Bool; messages.setDefaultReaction#4f47a016 reaction:Reaction = Bool;
messages.translateText#63183030 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string = messages.TranslatedText; messages.translateText#a5eec345 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string tone:flags.2?string = messages.TranslatedText;
messages.getUnreadReactions#bd7f90ac flags:# peer:InputPeer top_msg_id:flags.0?int saved_peer_id:flags.1?InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages; messages.getUnreadReactions#bd7f90ac flags:# peer:InputPeer top_msg_id:flags.0?int saved_peer_id:flags.1?InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
@@ -3843,7 +3871,7 @@ messages.setDefaultHistoryTTL#9eb51445 period:int = Bool;
messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL; messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL;
messages.sendBotRequestedPeer#91b2d060 peer:InputPeer msg_id:int button_id:int requested_peers:Vector<InputPeer> = Updates; messages.sendBotRequestedPeer#6c5cf2a7 flags:# peer:InputPeer msg_id:flags.0?int webapp_req_id:flags.1?string button_id:int requested_peers:Vector<InputPeer> = Updates;
messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups; messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups;
@@ -3963,7 +3991,7 @@ messages.deleteTopicHistory#d2816f10 peer:InputPeer top_msg_id:int = messages.Af
messages.getEmojiGameInfo#fb7e8ca7 = messages.EmojiGameInfo; messages.getEmojiGameInfo#fb7e8ca7 = messages.EmojiGameInfo;
messages.summarizeText#9d4104e2 flags:# peer:InputPeer id:int to_lang:flags.0?string = TextWithEntities; messages.summarizeText#abbbd346 flags:# peer:InputPeer id:int to_lang:flags.0?string tone:flags.2?string = TextWithEntities;
messages.editChatCreator#f743b857 peer:InputPeer user_id:InputUser password:InputCheckPasswordSRP = Updates; messages.editChatCreator#f743b857 peer:InputPeer user_id:InputUser password:InputCheckPasswordSRP = Updates;
@@ -3975,6 +4003,20 @@ messages.declineUrlAuth#35436bbc url:string = Bool;
messages.checkUrlAuthMatchCode#c9a47b0b url:string match_code:string = Bool; messages.checkUrlAuthMatchCode#c9a47b0b url:string match_code:string = Bool;
messages.composeMessageWithAI#fd426afe flags:# proofread:flags.0?true emojify:flags.3?true text:TextWithEntities translate_to_lang:flags.1?string change_tone:flags.2?string = messages.ComposedMessageWithAI;
messages.reportReadMetrics#4067c5e6 peer:InputPeer metrics:Vector<InputMessageReadMetric> = Bool;
messages.reportMusicListen#ddbcd819 id:InputDocument listened_duration:int = Bool;
messages.addPollAnswer#19bc4b6d peer:InputPeer msg_id:int answer:PollAnswer = Updates;
messages.deletePollAnswer#ac8505a5 peer:InputPeer msg_id:int option:bytes = Updates;
messages.getUnreadPollVotes#43286cf2 flags:# peer:InputPeer top_msg_id:flags.0?int offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
messages.readPollVotes#1720b4d8 flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;
updates.getState#edd4882a = updates.State; updates.getState#edd4882a = updates.State;
updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference; updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;
@@ -4233,6 +4275,16 @@ bots.setCustomVerification#8b89dfbd flags:# enabled:flags.1?true bot:flags.0?Inp
bots.getBotRecommendations#a1b70815 bot:InputUser = users.Users; bots.getBotRecommendations#a1b70815 bot:InputUser = users.Users;
bots.checkUsername#87f2219b username:string = Bool;
bots.createBot#e5b17f2b flags:# via_deeplink:flags.0?true name:string username:string manager_id:InputUser = User;
bots.exportBotToken#bd0d99eb bot:InputUser revoke:Bool = bots.ExportedBotToken;
bots.requestWebViewButton#31a2a35e user_id:InputUser button:KeyboardButton = bots.RequestedButton;
bots.getRequestedWebViewButton#bf25b7f3 bot:InputUser webapp_req_id:string = KeyboardButton;
payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm; payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm;
payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt; payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt;
@@ -4329,7 +4381,7 @@ payments.toggleStarGiftsPinnedToTop#1513e7b0 peer:InputPeer stargift:Vector<Inpu
payments.canPurchaseStore#4fdc5ea7 purpose:InputStorePaymentPurpose = Bool; payments.canPurchaseStore#4fdc5ea7 purpose:InputStorePaymentPurpose = Bool;
payments.getResaleStarGifts#7a5fa236 flags:# sort_by_price:flags.1?true sort_by_num:flags.2?true for_craft:flags.4?true attributes_hash:flags.0?long gift_id:long attributes:flags.3?Vector<StarGiftAttributeId> offset:string limit:int = payments.ResaleStarGifts; payments.getResaleStarGifts#7a5fa236 flags:# sort_by_price:flags.1?true sort_by_num:flags.2?true for_craft:flags.4?true stars_only:flags.5?true attributes_hash:flags.0?long gift_id:long attributes:flags.3?Vector<StarGiftAttributeId> offset:string limit:int = payments.ResaleStarGifts;
payments.updateStarGiftPrice#edbe6ccb stargift:InputSavedStarGift resell_amount:StarsAmount = Updates; payments.updateStarGiftPrice#edbe6ccb stargift:InputSavedStarGift resell_amount:StarsAmount = Updates;
@@ -4521,9 +4573,9 @@ chatlists.leaveChatlist#74fae13a chatlist:InputChatlist peers:Vector<InputPeer>
stories.canSendStory#30eb63f0 peer:InputPeer = stories.CanSendStoryCount; stories.canSendStory#30eb63f0 peer:InputPeer = stories.CanSendStoryCount;
stories.sendStory#737fc2ec flags:# pinned:flags.2?true noforwards:flags.4?true fwd_modified:flags.7?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int fwd_from_id:flags.6?InputPeer fwd_from_story:flags.6?int albums:flags.8?Vector<int> = Updates; stories.sendStory#8f9e6898 flags:# pinned:flags.2?true noforwards:flags.4?true fwd_modified:flags.7?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int fwd_from_id:flags.6?InputPeer fwd_from_story:flags.6?int albums:flags.8?Vector<int> music:flags.9?InputDocument = Updates;
stories.editStory#b583ba46 flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> = Updates; stories.editStory#2c63a72b flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> music:flags.4?InputDocument = Updates;
stories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>; stories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>;
@@ -4611,4 +4663,4 @@ smsjobs.finishJob#4f1ebf24 flags:# job_id:string error:flags.0?string = Bool;
fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo; fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo;
// LAYER 223 // LAYER 224
+82 -30
View File
@@ -2,8 +2,8 @@
// //
// Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/SourceFiles/mtproto/scheme/api.tl // Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/SourceFiles/mtproto/scheme/api.tl
// Merge: _schema/legacy.tl // Merge: _schema/legacy.tl
// Layer: 223 // Layer: 224
// SHA256: efb4626bec87841fc0736a74e02bfd4e8bfbff001cab309246195af4897e6602 // SHA256: 44b4a8cced28a25e13fcb2bfd34983e6b906414f42dc04bbd0e3dded9253331d
boolFalse#bc799737 = Bool; boolFalse#bc799737 = Bool;
@@ -47,9 +47,9 @@ inputFileStoryDocument#62dc8b48 id:InputDocument = InputFile;
inputMediaEmpty#9664f57f = InputMedia; inputMediaEmpty#9664f57f = InputMedia;
inputMediaUploadedPhoto#1e287d04 flags:# spoiler:flags.2?true file:InputFile stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia; inputMediaUploadedPhoto#7d8375da flags:# spoiler:flags.2?true live_photo:flags.3?true file:InputFile stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int video:flags.3?InputDocument = InputMedia;
inputMediaPhoto#b3ba0635 flags:# spoiler:flags.1?true id:InputPhoto ttl_seconds:flags.0?int = InputMedia; inputMediaPhoto#e3af4434 flags:# spoiler:flags.1?true live_photo:flags.2?true id:InputPhoto ttl_seconds:flags.0?int video:flags.2?InputDocument = InputMedia;
inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
@@ -71,7 +71,7 @@ inputMediaInvoice#405fef0d flags:# title:string description:string photo:flags.0
inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia; inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;
inputMediaPoll#f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> = InputMedia; inputMediaPoll#883a4108 flags:# poll:Poll correct_answers:flags.0?Vector<int> attached_media:flags.3?InputMedia solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> solution_media:flags.2?InputMedia = InputMedia;
inputMediaDice#e66fbf7b emoticon:string = InputMedia; inputMediaDice#e66fbf7b emoticon:string = InputMedia;
@@ -147,7 +147,7 @@ storage.fileWebp#1081464c = storage.FileType;
userEmpty#d3bc4b7a id:long = User; userEmpty#d3bc4b7a id:long = User;
user#31774388 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true bot_has_main_app:flags2.13?true bot_forum_view:flags2.16?true bot_forum_can_manage_topics:flags2.17?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?RecentStory color:flags2.8?PeerColor profile_color:flags2.9?PeerColor bot_active_users:flags2.12?int bot_verification_icon:flags2.14?long send_paid_messages_stars:flags2.15?long = User; user#31774388 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true bot_has_main_app:flags2.13?true bot_forum_view:flags2.16?true bot_forum_can_manage_topics:flags2.17?true bot_can_manage_bots:flags2.18?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?RecentStory color:flags2.8?PeerColor profile_color:flags2.9?PeerColor bot_active_users:flags2.12?int bot_verification_icon:flags2.14?long send_paid_messages_stars:flags2.15?long = User;
userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
@@ -201,7 +201,7 @@ messageService#7a800e0a flags:# out:flags.1?true mentioned:flags.4?true media_un
messageMediaEmpty#3ded6320 = MessageMedia; messageMediaEmpty#3ded6320 = MessageMedia;
messageMediaPhoto#695150d7 flags:# spoiler:flags.3?true photo:flags.0?Photo ttl_seconds:flags.2?int = MessageMedia; messageMediaPhoto#e216eb63 flags:# spoiler:flags.3?true live_photo:flags.4?true photo:flags.0?Photo ttl_seconds:flags.2?int video:flags.4?Document = MessageMedia;
messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
@@ -221,7 +221,7 @@ messageMediaInvoice#f6a548d3 flags:# shipping_address_requested:flags.1?true tes
messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia; messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;
messageMediaPoll#4bd6e798 poll:Poll results:PollResults = MessageMedia; messageMediaPoll#773f4e66 flags:# poll:Poll results:PollResults attached_media:flags.0?MessageMedia = MessageMedia;
messageMediaDice#8cbec07 flags:# value:int emoticon:string game_outcome:flags.0?messages.EmojiGameOutcome = MessageMedia; messageMediaDice#8cbec07 flags:# value:int emoticon:string game_outcome:flags.0?messages.EmojiGameOutcome = MessageMedia;
@@ -365,7 +365,13 @@ messageActionNoForwardsToggle#bf7d6572 prev_value:Bool new_value:Bool = MessageA
messageActionNoForwardsRequest#3e2793ba flags:# expired:flags.0?true prev_value:Bool new_value:Bool = MessageAction; messageActionNoForwardsRequest#3e2793ba flags:# expired:flags.0?true prev_value:Bool new_value:Bool = MessageAction;
dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog; messageActionPollAppendAnswer#9da1cd6c answer:PollAnswer = MessageAction;
messageActionPollDeleteAnswer#399674dc answer:PollAnswer = MessageAction;
messageActionManagedBotCreated#16605e3e bot_id:long = MessageAction;
dialog#fc89f7f3 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int unread_poll_votes_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog; dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
@@ -441,7 +447,7 @@ inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
inputReportReasonPersonalDetails#9ec7863d = ReportReason; inputReportReasonPersonalDetails#9ec7863d = ReportReason;
userFull#a02bc13e flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true bot_can_manage_emoji_status:flags2.10?true display_gifts_button:flags2.16?true noforwards_my_enabled:flags2.23?true noforwards_peer_enabled:flags2.24?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme:flags.15?ChatTheme private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int stargifts_count:flags2.8?int starref_program:flags2.11?StarRefProgram bot_verification:flags2.12?BotVerification send_paid_messages_stars:flags2.14?long disallowed_gifts:flags2.15?DisallowedGiftsSettings stars_rating:flags2.17?StarsRating stars_my_pending_rating:flags2.18?StarsRating stars_my_pending_rating_date:flags2.18?int main_tab:flags2.20?ProfileTab saved_music:flags2.21?Document note:flags2.22?TextWithEntities = UserFull; userFull#6cbe645 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true bot_can_manage_emoji_status:flags2.10?true display_gifts_button:flags2.16?true noforwards_my_enabled:flags2.23?true noforwards_peer_enabled:flags2.24?true unofficial_security_risk:flags2.26?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme:flags.15?ChatTheme private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int stargifts_count:flags2.8?int starref_program:flags2.11?StarRefProgram bot_verification:flags2.12?BotVerification send_paid_messages_stars:flags2.14?long disallowed_gifts:flags2.15?DisallowedGiftsSettings stars_rating:flags2.17?StarsRating stars_my_pending_rating:flags2.18?StarsRating stars_my_pending_rating_date:flags2.18?int main_tab:flags2.20?ProfileTab saved_music:flags2.21?Document note:flags2.22?TextWithEntities bot_manager_id:flags2.25?long = UserFull;
contact#145ade0b user_id:long mutual:Bool = Contact; contact#145ade0b user_id:long mutual:Bool = Contact;
@@ -515,6 +521,8 @@ inputMessagesFilterContacts#e062db83 = MessagesFilter;
inputMessagesFilterPinned#1bb00451 = MessagesFilter; inputMessagesFilterPinned#1bb00451 = MessagesFilter;
inputMessagesFilterPoll#fa2bc90a = MessagesFilter;
updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
updateMessageID#4e90bfd6 id:int random_id:long = Update; updateMessageID#4e90bfd6 id:int random_id:long = Update;
@@ -639,7 +647,7 @@ updateChannelAvailableMessages#b23fc698 channel_id:long available_min_id:int = U
updateDialogUnreadMark#b658f23e flags:# unread:flags.0?true peer:DialogPeer saved_peer_id:flags.1?Peer = Update; updateDialogUnreadMark#b658f23e flags:# unread:flags.0?true peer:DialogPeer saved_peer_id:flags.1?Peer = Update;
updateMessagePoll#aca1657b flags:# poll_id:long poll:flags.0?Poll results:PollResults = Update; updateMessagePoll#d64c522b flags:# peer:flags.1?Peer msg_id:flags.1?int top_msg_id:flags.2?int poll_id:long poll:flags.0?Poll results:PollResults = Update;
updateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update; updateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update;
@@ -659,7 +667,7 @@ updateGeoLiveViewed#871fb939 peer:Peer msg_id:int = Update;
updateLoginToken#564fe691 = Update; updateLoginToken#564fe691 = Update;
updateMessagePollVote#24f40e77 poll_id:long peer:Peer options:Vector<bytes> qts:int = Update; updateMessagePollVote#7699f014 poll_id:long peer:Peer options:Vector<bytes> positions:Vector<int> qts:int = Update;
updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update; updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update;
@@ -821,6 +829,8 @@ updateStarGiftCraftFail#ac072444 = Update;
updateChatParticipantRank#bd8367b9 chat_id:long user_id:long rank:string version:int = Update; updateChatParticipantRank#bd8367b9 chat_id:long user_id:long rank:string version:int = Update;
updateManagedBot#4880ed9a user_id:long bot_id:long qts:int = Update;
updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
@@ -1255,6 +1265,12 @@ messageEntityBlockquote#f1ccaaac flags:# collapsed:flags.0?true offset:int lengt
messageEntityFormattedDate#904ac7c7 flags:# relative:flags.0?true short_time:flags.1?true long_time:flags.2?true short_date:flags.3?true long_date:flags.4?true day_of_week:flags.5?true offset:int length:int date:int = MessageEntity; messageEntityFormattedDate#904ac7c7 flags:# relative:flags.0?true short_time:flags.1?true long_time:flags.2?true short_date:flags.3?true long_date:flags.4?true day_of_week:flags.5?true offset:int length:int date:int = MessageEntity;
messageEntityDiffInsert#71777116 offset:int length:int = MessageEntity;
messageEntityDiffReplace#c6c1e5a7 offset:int length:int old_text:string = MessageEntity;
messageEntityDiffDelete#652c1c5 offset:int length:int = MessageEntity;
inputChannelEmpty#ee8c1e86 = InputChannel; inputChannelEmpty#ee8c1e86 = InputChannel;
inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel; inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel;
@@ -1981,13 +1997,15 @@ help.userInfoEmpty#f3ae2eed = help.UserInfo;
help.userInfo#1eb3758 message:string entities:Vector<MessageEntity> author:string date:int = help.UserInfo; help.userInfo#1eb3758 message:string entities:Vector<MessageEntity> author:string date:int = help.UserInfo;
pollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer; pollAnswer#4b7d786a flags:# text:TextWithEntities option:bytes media:flags.0?MessageMedia added_by:flags.1?Peer date:flags.1?int = PollAnswer;
poll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll; inputPollAnswer#199fed96 flags:# text:TextWithEntities media:flags.0?InputMedia = PollAnswer;
pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters; poll#b8425be9 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true open_answers:flags.6?true revoting_disabled:flags.7?true shuffle_answers:flags.8?true hide_results_until_close:flags.9?true creator:flags.10?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int hash:long = Poll;
pollResults#7adf2420 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults; pollAnswerVoters#3645230a flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:flags.2?int recent_voters:flags.2?Vector<Peer> = PollAnswerVoters;
pollResults#ba7bb15e flags:# min:flags.0?true has_unread_votes:flags.6?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> solution_media:flags.5?MessageMedia = PollResults;
chatOnlines#f041e250 onlines:int = ChatOnlines; chatOnlines#f041e250 onlines:int = ChatOnlines;
@@ -2033,7 +2051,7 @@ folderPeer#e9baa668 peer:Peer folder_id:int = FolderPeer;
messages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter; messages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter;
urlAuthResultRequest#f8f8eb1e flags:# request_write_access:flags.0?true request_phone_number:flags.1?true match_codes_first:flags.5?true bot:User domain:string browser:flags.2?string platform:flags.2?string ip:flags.2?string region:flags.2?string match_codes:flags.3?Vector<string> user_id_hint:flags.4?long = UrlAuthResult; urlAuthResultRequest#3cd623ec flags:# request_write_access:flags.0?true request_phone_number:flags.1?true match_codes_first:flags.5?true is_app:flags.6?true bot:User domain:string browser:flags.2?string platform:flags.2?string ip:flags.2?string region:flags.2?string match_codes:flags.3?Vector<string> user_id_hint:flags.4?long verified_app_name:flags.7?string = UrlAuthResult;
urlAuthResultAccepted#623a8fa0 flags:# url:flags.0?string = UrlAuthResult; urlAuthResultAccepted#623a8fa0 flags:# url:flags.0?string = UrlAuthResult;
@@ -2157,7 +2175,7 @@ messages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> use
messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage; messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;
messageReplyHeader#6917560b flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int todo_item_id:flags.11?int = MessageReplyHeader; messageReplyHeader#1b97dd66 flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int todo_item_id:flags.11?int poll_option:flags.12?bytes = MessageReplyHeader;
messageReplyStoryHeader#e5af939 peer:Peer story_id:int = MessageReplyHeader; messageReplyStoryHeader#e5af939 peer:Peer story_id:int = MessageReplyHeader;
@@ -2459,7 +2477,7 @@ username#b4073647 flags:# editable:flags.0?true active:flags.1?true username:str
forumTopicDeleted#23f109b id:int = ForumTopic; forumTopicDeleted#23f109b id:int = ForumTopic;
forumTopic#cdff0eca flags:# my:flags.1?true closed:flags.2?true pinned:flags.3?true short:flags.5?true hidden:flags.6?true title_missing:flags.7?true id:int date:int peer:Peer title:string icon_color:int icon_emoji_id:flags.0?long top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int from_id:Peer notify_settings:PeerNotifySettings draft:flags.4?DraftMessage = ForumTopic; forumTopic#fcdad815 flags:# my:flags.1?true closed:flags.2?true pinned:flags.3?true short:flags.5?true hidden:flags.6?true title_missing:flags.7?true id:int date:int peer:Peer title:string icon_color:int icon_emoji_id:flags.0?long top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int unread_poll_votes_count:int from_id:Peer notify_settings:PeerNotifySettings draft:flags.4?DraftMessage = ForumTopic;
messages.forumTopics#367617d3 flags:# order_by_create_date:flags.0?true count:int topics:Vector<ForumTopic> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int = messages.ForumTopics; messages.forumTopics#367617d3 flags:# order_by_create_date:flags.0?true count:int topics:Vector<ForumTopic> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int = messages.ForumTopics;
@@ -2473,6 +2491,8 @@ requestPeerTypeChat#c9f06e1b flags:# creator:flags.0?true bot_participant:flags.
requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType; requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;
requestPeerTypeCreateBot#3e81e078 flags:# bot_managed:flags.0?true suggested_name:flags.1?string suggested_username:flags.2?string = RequestPeerType;
emojiListNotModified#481eadfa = EmojiList; emojiListNotModified#481eadfa = EmojiList;
emojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList; emojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList;
@@ -2543,7 +2563,7 @@ storyItemDeleted#51e6ee4f id:int = StoryItem;
storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true live:flags.9?true id:int date:int expire_date:int = StoryItem; storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true live:flags.9?true id:int date:int expire_date:int = StoryItem;
storyItem#edf164f1 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction albums:flags.19?Vector<int> = StoryItem; storyItem#16a4b93c flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction albums:flags.19?Vector<int> music:flags.20?Document = StoryItem;
stories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories; stories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories;
@@ -2561,7 +2581,7 @@ stories.storyViewsList#59d78fc5 flags:# count:int views_count:int forwards_count
stories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews; stories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews;
inputReplyToMessage#869fbe10 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int monoforum_peer_id:flags.5?InputPeer todo_item_id:flags.6?int = InputReplyTo; inputReplyToMessage#3bd4b7c2 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int monoforum_peer_id:flags.5?InputPeer todo_item_id:flags.6?int poll_option:flags.7?bytes = InputReplyTo;
inputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo; inputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo;
@@ -2781,7 +2801,7 @@ reactionNotificationsFromContacts#bac3a61a = ReactionNotificationsFrom;
reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom; reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom;
reactionsNotifySettings#56e34970 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings; reactionsNotifySettings#71e4ea58 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom poll_votes_notify_from:flags.2?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings;
availableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect; availableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect;
@@ -3095,6 +3115,14 @@ starGiftAttributeRarityLegendary#cef7e7a8 = StarGiftAttributeRarity;
keyboardButtonStyle#4fdd3430 flags:# bg_primary:flags.0?true bg_danger:flags.1?true bg_success:flags.2?true icon:flags.3?long = KeyboardButtonStyle; keyboardButtonStyle#4fdd3430 flags:# bg_primary:flags.0?true bg_danger:flags.1?true bg_success:flags.2?true icon:flags.3?long = KeyboardButtonStyle;
inputMessageReadMetric#402b4495 msg_id:int view_id:long time_in_view_ms:int active_time_in_view_ms:int height_to_viewport_ratio_permille:int seen_range_ratio_permille:int = InputMessageReadMetric;
bots.exportedBotToken#3c60b621 token:string = bots.ExportedBotToken;
bots.requestedButton#f13bbcd7 webapp_req_id:string = bots.RequestedButton;
messages.composedMessageWithAI#90d7adfa flags:# result_text:TextWithEntities diff_text:flags.0?TextWithEntities = messages.ComposedMessageWithAI;
---functions--- ---functions---
@@ -3684,7 +3712,7 @@ messages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?
messages.sendVote#10ea6184 peer:InputPeer msg_id:int options:Vector<bytes> = Updates; messages.sendVote#10ea6184 peer:InputPeer msg_id:int options:Vector<bytes> = Updates;
messages.getPollResults#73bb643b peer:InputPeer msg_id:int = Updates; messages.getPollResults#eda3e33b peer:InputPeer msg_id:int poll_hash:long = Updates;
messages.getOnlines#6e2be050 peer:InputPeer = ChatOnlines; messages.getOnlines#6e2be050 peer:InputPeer = ChatOnlines;
@@ -3796,7 +3824,7 @@ messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
messages.setDefaultReaction#4f47a016 reaction:Reaction = Bool; messages.setDefaultReaction#4f47a016 reaction:Reaction = Bool;
messages.translateText#63183030 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string = messages.TranslatedText; messages.translateText#a5eec345 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string tone:flags.2?string = messages.TranslatedText;
messages.getUnreadReactions#bd7f90ac flags:# peer:InputPeer top_msg_id:flags.0?int saved_peer_id:flags.1?InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages; messages.getUnreadReactions#bd7f90ac flags:# peer:InputPeer top_msg_id:flags.0?int saved_peer_id:flags.1?InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
@@ -3844,7 +3872,7 @@ messages.setDefaultHistoryTTL#9eb51445 period:int = Bool;
messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL; messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL;
messages.sendBotRequestedPeer#91b2d060 peer:InputPeer msg_id:int button_id:int requested_peers:Vector<InputPeer> = Updates; messages.sendBotRequestedPeer#6c5cf2a7 flags:# peer:InputPeer msg_id:flags.0?int webapp_req_id:flags.1?string button_id:int requested_peers:Vector<InputPeer> = Updates;
messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups; messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups;
@@ -3964,7 +3992,7 @@ messages.deleteTopicHistory#d2816f10 peer:InputPeer top_msg_id:int = messages.Af
messages.getEmojiGameInfo#fb7e8ca7 = messages.EmojiGameInfo; messages.getEmojiGameInfo#fb7e8ca7 = messages.EmojiGameInfo;
messages.summarizeText#9d4104e2 flags:# peer:InputPeer id:int to_lang:flags.0?string = TextWithEntities; messages.summarizeText#abbbd346 flags:# peer:InputPeer id:int to_lang:flags.0?string tone:flags.2?string = TextWithEntities;
messages.editChatCreator#f743b857 peer:InputPeer user_id:InputUser password:InputCheckPasswordSRP = Updates; messages.editChatCreator#f743b857 peer:InputPeer user_id:InputUser password:InputCheckPasswordSRP = Updates;
@@ -3976,6 +4004,20 @@ messages.declineUrlAuth#35436bbc url:string = Bool;
messages.checkUrlAuthMatchCode#c9a47b0b url:string match_code:string = Bool; messages.checkUrlAuthMatchCode#c9a47b0b url:string match_code:string = Bool;
messages.composeMessageWithAI#fd426afe flags:# proofread:flags.0?true emojify:flags.3?true text:TextWithEntities translate_to_lang:flags.1?string change_tone:flags.2?string = messages.ComposedMessageWithAI;
messages.reportReadMetrics#4067c5e6 peer:InputPeer metrics:Vector<InputMessageReadMetric> = Bool;
messages.reportMusicListen#ddbcd819 id:InputDocument listened_duration:int = Bool;
messages.addPollAnswer#19bc4b6d peer:InputPeer msg_id:int answer:PollAnswer = Updates;
messages.deletePollAnswer#ac8505a5 peer:InputPeer msg_id:int option:bytes = Updates;
messages.getUnreadPollVotes#43286cf2 flags:# peer:InputPeer top_msg_id:flags.0?int offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
messages.readPollVotes#1720b4d8 flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;
updates.getState#edd4882a = updates.State; updates.getState#edd4882a = updates.State;
updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference; updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;
@@ -4234,6 +4276,16 @@ bots.setCustomVerification#8b89dfbd flags:# enabled:flags.1?true bot:flags.0?Inp
bots.getBotRecommendations#a1b70815 bot:InputUser = users.Users; bots.getBotRecommendations#a1b70815 bot:InputUser = users.Users;
bots.checkUsername#87f2219b username:string = Bool;
bots.createBot#e5b17f2b flags:# via_deeplink:flags.0?true name:string username:string manager_id:InputUser = User;
bots.exportBotToken#bd0d99eb bot:InputUser revoke:Bool = bots.ExportedBotToken;
bots.requestWebViewButton#31a2a35e user_id:InputUser button:KeyboardButton = bots.RequestedButton;
bots.getRequestedWebViewButton#bf25b7f3 bot:InputUser webapp_req_id:string = KeyboardButton;
payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm; payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm;
payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt; payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt;
@@ -4330,7 +4382,7 @@ payments.toggleStarGiftsPinnedToTop#1513e7b0 peer:InputPeer stargift:Vector<Inpu
payments.canPurchaseStore#4fdc5ea7 purpose:InputStorePaymentPurpose = Bool; payments.canPurchaseStore#4fdc5ea7 purpose:InputStorePaymentPurpose = Bool;
payments.getResaleStarGifts#7a5fa236 flags:# sort_by_price:flags.1?true sort_by_num:flags.2?true for_craft:flags.4?true attributes_hash:flags.0?long gift_id:long attributes:flags.3?Vector<StarGiftAttributeId> offset:string limit:int = payments.ResaleStarGifts; payments.getResaleStarGifts#7a5fa236 flags:# sort_by_price:flags.1?true sort_by_num:flags.2?true for_craft:flags.4?true stars_only:flags.5?true attributes_hash:flags.0?long gift_id:long attributes:flags.3?Vector<StarGiftAttributeId> offset:string limit:int = payments.ResaleStarGifts;
payments.updateStarGiftPrice#edbe6ccb stargift:InputSavedStarGift resell_amount:StarsAmount = Updates; payments.updateStarGiftPrice#edbe6ccb stargift:InputSavedStarGift resell_amount:StarsAmount = Updates;
@@ -4522,9 +4574,9 @@ chatlists.leaveChatlist#74fae13a chatlist:InputChatlist peers:Vector<InputPeer>
stories.canSendStory#30eb63f0 peer:InputPeer = stories.CanSendStoryCount; stories.canSendStory#30eb63f0 peer:InputPeer = stories.CanSendStoryCount;
stories.sendStory#737fc2ec flags:# pinned:flags.2?true noforwards:flags.4?true fwd_modified:flags.7?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int fwd_from_id:flags.6?InputPeer fwd_from_story:flags.6?int albums:flags.8?Vector<int> = Updates; stories.sendStory#8f9e6898 flags:# pinned:flags.2?true noforwards:flags.4?true fwd_modified:flags.7?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int fwd_from_id:flags.6?InputPeer fwd_from_story:flags.6?int albums:flags.8?Vector<int> music:flags.9?InputDocument = Updates;
stories.editStory#b583ba46 flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> = Updates; stories.editStory#2c63a72b flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> music:flags.4?InputDocument = Updates;
stories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>; stories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>;
@@ -4644,4 +4696,4 @@ test.useError#ee75af01 = Error;
test.useConfigSimple#f9b7b23d = help.ConfigSimple; test.useConfigSimple#f9b7b23d = help.ConfigSimple;
// LAYER 223 // LAYER 224
@@ -50,7 +50,7 @@ func TestConn_handleSessionCreated(t *testing.T) {
msgs := logs.All() msgs := logs.All()
a.Len(msgs, 1) a.Len(msgs, 1)
a.Equal("Local clock needs synchronization", msgs[0].Message) a.Equal("Updated server time offset (high)", msgs[0].Message)
}) })
t.Run("Invalid", func(t *testing.T) { t.Run("Invalid", func(t *testing.T) {
conn := Conn{} conn := Conn{}
+58
View File
@@ -422,3 +422,61 @@ func FormattedDate(relative bool, shortTime bool, longTime bool, shortDate bool,
func (b *Builder) FormattedDate(s string, relative bool, shortTime bool, longTime bool, shortDate bool, longDate bool, dayOfWeek bool, date int) *Builder { func (b *Builder) FormattedDate(s string, relative bool, shortTime bool, longTime bool, shortDate bool, longDate bool, dayOfWeek bool, date int) *Builder {
return b.Format(s, FormattedDate(relative, shortTime, longTime, shortDate, longDate, dayOfWeek, date)) return b.Format(s, FormattedDate(relative, shortTime, longTime, shortDate, longDate, dayOfWeek, date))
} }
// DiffInsert creates Formatter of DiffInsert message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffInsert.
func DiffInsert() Formatter {
return func(offset, length int) tg.MessageEntityClass {
return &tg.MessageEntityDiffInsert{
Offset: offset,
Length: length,
}
}
}
// DiffInsert adds and formats message as DiffInsert message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffInsert.
func (b *Builder) DiffInsert(s string) *Builder {
return b.Format(s, DiffInsert())
}
// DiffReplace creates Formatter of DiffReplace message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffReplace.
func DiffReplace(oldText string) Formatter {
return func(offset, length int) tg.MessageEntityClass {
return &tg.MessageEntityDiffReplace{
Offset: offset,
Length: length,
OldText: oldText,
}
}
}
// DiffReplace adds and formats message as DiffReplace message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffReplace.
func (b *Builder) DiffReplace(s string, oldText string) *Builder {
return b.Format(s, DiffReplace(oldText))
}
// DiffDelete creates Formatter of DiffDelete message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffDelete.
func DiffDelete() Formatter {
return func(offset, length int) tg.MessageEntityClass {
return &tg.MessageEntityDiffDelete{
Offset: offset,
Length: length,
}
}
}
// DiffDelete adds and formats message as DiffDelete message entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffDelete.
func (b *Builder) DiffDelete(s string) *Builder {
return b.Format(s, DiffDelete())
}
+4 -4
View File
@@ -21,7 +21,7 @@ type pollAnswerBuilder struct {
type PollAnswerOption func(p *pollAnswerBuilder) type PollAnswerOption func(p *pollAnswerBuilder)
// RawPollAnswer creates new raw poll answer option. // RawPollAnswer creates new raw poll answer option.
func RawPollAnswer(poll tg.PollAnswer) PollAnswerOption { func RawPollAnswer(poll *tg.PollAnswer) PollAnswerOption {
return func(p *pollAnswerBuilder) { return func(p *pollAnswerBuilder) {
p.input.Poll.Answers = append(p.input.Poll.Answers, poll) p.input.Poll.Answers = append(p.input.Poll.Answers, poll)
} }
@@ -31,7 +31,7 @@ func RawPollAnswer(poll tg.PollAnswer) PollAnswerOption {
func PollAnswer(text string, entities ...tg.MessageEntityClass) PollAnswerOption { func PollAnswer(text string, entities ...tg.MessageEntityClass) PollAnswerOption {
return func(p *pollAnswerBuilder) { return func(p *pollAnswerBuilder) {
i := len(p.input.Poll.Answers) i := len(p.input.Poll.Answers)
p.input.Poll.Answers = append(p.input.Poll.Answers, tg.PollAnswer{ p.input.Poll.Answers = append(p.input.Poll.Answers, &tg.PollAnswer{
Text: tg.TextWithEntities{Text: text, Entities: entities}, Text: tg.TextWithEntities{Text: text, Entities: entities},
Option: []byte(strconv.Itoa(i)), Option: []byte(strconv.Itoa(i)),
}) })
@@ -44,11 +44,11 @@ func CorrectPollAnswer(text string, entities ...tg.MessageEntityClass) PollAnswe
p.input.Poll.Quiz = true p.input.Poll.Quiz = true
i := len(p.input.Poll.Answers) i := len(p.input.Poll.Answers)
option := []byte(strconv.Itoa(i)) option := []byte(strconv.Itoa(i))
p.input.Poll.Answers = append(p.input.Poll.Answers, tg.PollAnswer{ p.input.Poll.Answers = append(p.input.Poll.Answers, &tg.PollAnswer{
Text: tg.TextWithEntities{Text: text, Entities: entities}, Text: tg.TextWithEntities{Text: text, Entities: entities},
Option: option, Option: option,
}) })
p.input.CorrectAnswers = append(p.input.CorrectAnswers, option) p.input.CorrectAnswers = append(p.input.CorrectAnswers, i)
} }
} }
+1 -1
View File
@@ -26,7 +26,7 @@ func TestPoll(t *testing.T) {
id = m.Poll.ID id = m.Poll.ID
require.Len(t, m.Poll.Answers, 3) require.Len(t, m.Poll.Answers, 3)
require.Len(t, m.CorrectAnswers, 1) require.Len(t, m.CorrectAnswers, 1)
require.Equal(t, m.Poll.Answers[0].Option, m.CorrectAnswers[0]) require.Equal(t, 0, m.CorrectAnswers[0])
}).ThenResult(&tg.Updates{}) }).ThenResult(&tg.Updates{})
mock.ExpectFunc(func(b bin.Encoder) { mock.ExpectFunc(func(b bin.Encoder) {
req, ok := b.(*tg.MessagesSendMediaRequest) req, ok := b.(*tg.MessagesSendMediaRequest)
+30
View File
@@ -221,3 +221,33 @@ func FormattedDate(s string, relative bool, shortTime bool, longTime bool, short
return nil return nil
}) })
} }
// DiffInsert formats text as DiffInsert entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffInsert.
func DiffInsert(s string) StyledTextOption {
return styledTextOption(s, func(b *textBuilder) error {
b.DiffInsert(s)
return nil
})
}
// DiffReplace formats text as DiffReplace entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffReplace.
func DiffReplace(s string, oldText string) StyledTextOption {
return styledTextOption(s, func(b *textBuilder) error {
b.DiffReplace(s, oldText)
return nil
})
}
// DiffDelete formats text as DiffDelete entity.
//
// See https://core.telegram.org/constructor/messageEntityDiffDelete.
func DiffDelete(s string) StyledTextOption {
return styledTextOption(s, func(b *textBuilder) error {
b.DiffDelete(s)
return nil
})
}
+124
View File
@@ -692,6 +692,112 @@ func (b *GetUnreadMentionsQueryBuilder) Collect(ctx context.Context) ([]Elem, er
return r, iter.Err() return r, iter.Err()
} }
// GetUnreadPollVotesQueryBuilder is query builder of MessagesGetUnreadPollVotes.
type GetUnreadPollVotesQueryBuilder struct {
raw *tg.Client
req tg.MessagesGetUnreadPollVotesRequest
batchSize int
addOffset int
offsetID int
}
// GetUnreadPollVotes creates query builder of MessagesGetUnreadPollVotes.
func (q *QueryBuilder) GetUnreadPollVotes(paramPeer tg.InputPeerClass) *GetUnreadPollVotesQueryBuilder {
b := &GetUnreadPollVotesQueryBuilder{
raw: q.raw,
batchSize: 1,
req: tg.MessagesGetUnreadPollVotesRequest{
Peer: &tg.InputPeerEmpty{},
},
}
b.req.Peer = paramPeer
return b
}
// BatchSize sets buffer of message loaded from one request.
// Be carefully, when set this limit, because Telegram does not return error if limit is too big,
// so results can be incorrect.
func (b *GetUnreadPollVotesQueryBuilder) BatchSize(batchSize int) *GetUnreadPollVotesQueryBuilder {
b.batchSize = batchSize
return b
}
// OffsetID sets offsetID from which iterate start.
func (b *GetUnreadPollVotesQueryBuilder) OffsetID(offsetID int) *GetUnreadPollVotesQueryBuilder {
b.offsetID = offsetID
return b
}
// Peer sets Peer field of GetUnreadPollVotes query.
func (b *GetUnreadPollVotesQueryBuilder) Peer(paramPeer tg.InputPeerClass) *GetUnreadPollVotesQueryBuilder {
b.req.Peer = paramPeer
return b
}
// TopMsgID sets TopMsgID field of GetUnreadPollVotes query.
func (b *GetUnreadPollVotesQueryBuilder) TopMsgID(paramTopMsgID int) *GetUnreadPollVotesQueryBuilder {
b.req.TopMsgID = paramTopMsgID
return b
}
// Query implements Query interface.
func (b *GetUnreadPollVotesQueryBuilder) Query(ctx context.Context, req Request) (tg.MessagesMessagesClass, error) {
r := &tg.MessagesGetUnreadPollVotesRequest{
Limit: req.Limit,
}
r.Peer = b.req.Peer
r.TopMsgID = b.req.TopMsgID
r.AddOffset = req.AddOffset
r.OffsetID = req.OffsetID
return b.raw.MessagesGetUnreadPollVotes(ctx, r)
}
// Iter returns iterator using built query.
func (b *GetUnreadPollVotesQueryBuilder) Iter() *Iterator {
iter := NewIterator(b, b.batchSize)
iter = iter.OffsetID(b.offsetID)
return iter
}
// ForEach calls given callback on each iterator element.
func (b *GetUnreadPollVotesQueryBuilder) ForEach(ctx context.Context, cb func(context.Context, Elem) error) error {
iter := b.Iter()
for iter.Next(ctx) {
if err := cb(ctx, iter.Value()); err != nil {
return err
}
}
return iter.Err()
}
// Count fetches remote state to get number of elements.
func (b *GetUnreadPollVotesQueryBuilder) Count(ctx context.Context) (int, error) {
iter := b.Iter()
c, err := iter.Total(ctx)
if err != nil {
return 0, errors.Wrap(err, "get total")
}
return c, nil
}
// Collect creates iterator and collects all elements to slice.
func (b *GetUnreadPollVotesQueryBuilder) Collect(ctx context.Context) ([]Elem, error) {
iter := b.Iter()
c, err := iter.Total(ctx)
if err != nil {
return nil, errors.Wrap(err, "get total")
}
r := make([]Elem, 0, c)
for iter.Next(ctx) {
r = append(r, iter.Value())
}
return r, iter.Err()
}
// GetUnreadReactionsQueryBuilder is query builder of MessagesGetUnreadReactions. // GetUnreadReactionsQueryBuilder is query builder of MessagesGetUnreadReactions.
type GetUnreadReactionsQueryBuilder struct { type GetUnreadReactionsQueryBuilder struct {
raw *tg.Client raw *tg.Client
@@ -968,6 +1074,12 @@ func (b *SearchQueryBuilder) Pinned() *SearchQueryBuilder {
return b return b
} }
// Poll sets Filter field of Search query.
func (b *SearchQueryBuilder) Poll() *SearchQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterPoll{}
return b
}
// RoundVideo sets Filter field of Search query. // RoundVideo sets Filter field of Search query.
func (b *SearchQueryBuilder) RoundVideo() *SearchQueryBuilder { func (b *SearchQueryBuilder) RoundVideo() *SearchQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterRoundVideo{} b.req.Filter = &tg.InputMessagesFilterRoundVideo{}
@@ -1215,6 +1327,12 @@ func (b *SearchGlobalQueryBuilder) Pinned() *SearchGlobalQueryBuilder {
return b return b
} }
// Poll sets Filter field of SearchGlobal query.
func (b *SearchGlobalQueryBuilder) Poll() *SearchGlobalQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterPoll{}
return b
}
// RoundVideo sets Filter field of SearchGlobal query. // RoundVideo sets Filter field of SearchGlobal query.
func (b *SearchGlobalQueryBuilder) RoundVideo() *SearchGlobalQueryBuilder { func (b *SearchGlobalQueryBuilder) RoundVideo() *SearchGlobalQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterRoundVideo{} b.req.Filter = &tg.InputMessagesFilterRoundVideo{}
@@ -1417,6 +1535,12 @@ func (b *SearchSentMediaQueryBuilder) Pinned() *SearchSentMediaQueryBuilder {
return b return b
} }
// Poll sets Filter field of SearchSentMedia query.
func (b *SearchSentMediaQueryBuilder) Poll() *SearchSentMediaQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterPoll{}
return b
}
// RoundVideo sets Filter field of SearchSentMedia query. // RoundVideo sets Filter field of SearchSentMedia query.
func (b *SearchSentMediaQueryBuilder) RoundVideo() *SearchSentMediaQueryBuilder { func (b *SearchSentMediaQueryBuilder) RoundVideo() *SearchSentMediaQueryBuilder {
b.req.Filter = &tg.InputMessagesFilterRoundVideo{} b.req.Filter = &tg.InputMessagesFilterRoundVideo{}
+177
View File
@@ -0,0 +1,177 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsCheckUsernameRequest represents TL type `bots.checkUsername#87f2219b`.
//
// See https://core.telegram.org/method/bots.checkUsername for reference.
type BotsCheckUsernameRequest struct {
// Username field of BotsCheckUsernameRequest.
Username string
}
// BotsCheckUsernameRequestTypeID is TL type id of BotsCheckUsernameRequest.
const BotsCheckUsernameRequestTypeID = 0x87f2219b
// Ensuring interfaces in compile-time for BotsCheckUsernameRequest.
var (
_ bin.Encoder = &BotsCheckUsernameRequest{}
_ bin.Decoder = &BotsCheckUsernameRequest{}
_ bin.BareEncoder = &BotsCheckUsernameRequest{}
_ bin.BareDecoder = &BotsCheckUsernameRequest{}
)
func (c *BotsCheckUsernameRequest) Zero() bool {
if c == nil {
return true
}
if !(c.Username == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *BotsCheckUsernameRequest) String() string {
if c == nil {
return "BotsCheckUsernameRequest(nil)"
}
type Alias BotsCheckUsernameRequest
return fmt.Sprintf("BotsCheckUsernameRequest%+v", Alias(*c))
}
// FillFrom fills BotsCheckUsernameRequest from given interface.
func (c *BotsCheckUsernameRequest) FillFrom(from interface {
GetUsername() (value string)
}) {
c.Username = from.GetUsername()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsCheckUsernameRequest) TypeID() uint32 {
return BotsCheckUsernameRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsCheckUsernameRequest) TypeName() string {
return "bots.checkUsername"
}
// TypeInfo returns info about TL type.
func (c *BotsCheckUsernameRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.checkUsername",
ID: BotsCheckUsernameRequestTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Username",
SchemaName: "username",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *BotsCheckUsernameRequest) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode bots.checkUsername#87f2219b as nil")
}
b.PutID(BotsCheckUsernameRequestTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *BotsCheckUsernameRequest) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode bots.checkUsername#87f2219b as nil")
}
b.PutString(c.Username)
return nil
}
// Decode implements bin.Decoder.
func (c *BotsCheckUsernameRequest) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode bots.checkUsername#87f2219b to nil")
}
if err := b.ConsumeID(BotsCheckUsernameRequestTypeID); err != nil {
return fmt.Errorf("unable to decode bots.checkUsername#87f2219b: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *BotsCheckUsernameRequest) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode bots.checkUsername#87f2219b to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.checkUsername#87f2219b: field username: %w", err)
}
c.Username = value
}
return nil
}
// GetUsername returns value of Username field.
func (c *BotsCheckUsernameRequest) GetUsername() (value string) {
if c == nil {
return
}
return c.Username
}
// BotsCheckUsername invokes method bots.checkUsername#87f2219b returning error if any.
//
// See https://core.telegram.org/method/bots.checkUsername for reference.
func (c *Client) BotsCheckUsername(ctx context.Context, username string) (bool, error) {
var result BoolBox
request := &BotsCheckUsernameRequest{
Username: username,
}
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return false, err
}
_, ok := result.Bool.(*BoolTrue)
return ok, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+285
View File
@@ -0,0 +1,285 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsCreateBotRequest represents TL type `bots.createBot#e5b17f2b`.
//
// See https://core.telegram.org/method/bots.createBot for reference.
type BotsCreateBotRequest struct {
// Flags field of BotsCreateBotRequest.
Flags bin.Fields
// ViaDeeplink field of BotsCreateBotRequest.
ViaDeeplink bool
// Name field of BotsCreateBotRequest.
Name string
// Username field of BotsCreateBotRequest.
Username string
// ManagerID field of BotsCreateBotRequest.
ManagerID InputUserClass
}
// BotsCreateBotRequestTypeID is TL type id of BotsCreateBotRequest.
const BotsCreateBotRequestTypeID = 0xe5b17f2b
// Ensuring interfaces in compile-time for BotsCreateBotRequest.
var (
_ bin.Encoder = &BotsCreateBotRequest{}
_ bin.Decoder = &BotsCreateBotRequest{}
_ bin.BareEncoder = &BotsCreateBotRequest{}
_ bin.BareDecoder = &BotsCreateBotRequest{}
)
func (c *BotsCreateBotRequest) Zero() bool {
if c == nil {
return true
}
if !(c.Flags.Zero()) {
return false
}
if !(c.ViaDeeplink == false) {
return false
}
if !(c.Name == "") {
return false
}
if !(c.Username == "") {
return false
}
if !(c.ManagerID == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *BotsCreateBotRequest) String() string {
if c == nil {
return "BotsCreateBotRequest(nil)"
}
type Alias BotsCreateBotRequest
return fmt.Sprintf("BotsCreateBotRequest%+v", Alias(*c))
}
// FillFrom fills BotsCreateBotRequest from given interface.
func (c *BotsCreateBotRequest) FillFrom(from interface {
GetViaDeeplink() (value bool)
GetName() (value string)
GetUsername() (value string)
GetManagerID() (value InputUserClass)
}) {
c.ViaDeeplink = from.GetViaDeeplink()
c.Name = from.GetName()
c.Username = from.GetUsername()
c.ManagerID = from.GetManagerID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsCreateBotRequest) TypeID() uint32 {
return BotsCreateBotRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsCreateBotRequest) TypeName() string {
return "bots.createBot"
}
// TypeInfo returns info about TL type.
func (c *BotsCreateBotRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.createBot",
ID: BotsCreateBotRequestTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ViaDeeplink",
SchemaName: "via_deeplink",
Null: !c.Flags.Has(0),
},
{
Name: "Name",
SchemaName: "name",
},
{
Name: "Username",
SchemaName: "username",
},
{
Name: "ManagerID",
SchemaName: "manager_id",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (c *BotsCreateBotRequest) SetFlags() {
if !(c.ViaDeeplink == false) {
c.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (c *BotsCreateBotRequest) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode bots.createBot#e5b17f2b as nil")
}
b.PutID(BotsCreateBotRequestTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *BotsCreateBotRequest) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode bots.createBot#e5b17f2b as nil")
}
c.SetFlags()
if err := c.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.createBot#e5b17f2b: field flags: %w", err)
}
b.PutString(c.Name)
b.PutString(c.Username)
if c.ManagerID == nil {
return fmt.Errorf("unable to encode bots.createBot#e5b17f2b: field manager_id is nil")
}
if err := c.ManagerID.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.createBot#e5b17f2b: field manager_id: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (c *BotsCreateBotRequest) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode bots.createBot#e5b17f2b to nil")
}
if err := b.ConsumeID(BotsCreateBotRequestTypeID); err != nil {
return fmt.Errorf("unable to decode bots.createBot#e5b17f2b: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *BotsCreateBotRequest) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode bots.createBot#e5b17f2b to nil")
}
{
if err := c.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode bots.createBot#e5b17f2b: field flags: %w", err)
}
}
c.ViaDeeplink = c.Flags.Has(0)
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.createBot#e5b17f2b: field name: %w", err)
}
c.Name = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.createBot#e5b17f2b: field username: %w", err)
}
c.Username = value
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode bots.createBot#e5b17f2b: field manager_id: %w", err)
}
c.ManagerID = value
}
return nil
}
// SetViaDeeplink sets value of ViaDeeplink conditional field.
func (c *BotsCreateBotRequest) SetViaDeeplink(value bool) {
if value {
c.Flags.Set(0)
c.ViaDeeplink = true
} else {
c.Flags.Unset(0)
c.ViaDeeplink = false
}
}
// GetViaDeeplink returns value of ViaDeeplink conditional field.
func (c *BotsCreateBotRequest) GetViaDeeplink() (value bool) {
if c == nil {
return
}
return c.Flags.Has(0)
}
// GetName returns value of Name field.
func (c *BotsCreateBotRequest) GetName() (value string) {
if c == nil {
return
}
return c.Name
}
// GetUsername returns value of Username field.
func (c *BotsCreateBotRequest) GetUsername() (value string) {
if c == nil {
return
}
return c.Username
}
// GetManagerID returns value of ManagerID field.
func (c *BotsCreateBotRequest) GetManagerID() (value InputUserClass) {
if c == nil {
return
}
return c.ManagerID
}
// BotsCreateBot invokes method bots.createBot#e5b17f2b returning error if any.
//
// See https://core.telegram.org/method/bots.createBot for reference.
func (c *Client) BotsCreateBot(ctx context.Context, request *BotsCreateBotRequest) (UserClass, error) {
var result UserBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.User, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+205
View File
@@ -0,0 +1,205 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsExportBotTokenRequest represents TL type `bots.exportBotToken#bd0d99eb`.
//
// See https://core.telegram.org/method/bots.exportBotToken for reference.
type BotsExportBotTokenRequest struct {
// Bot field of BotsExportBotTokenRequest.
Bot InputUserClass
// Revoke field of BotsExportBotTokenRequest.
Revoke bool
}
// BotsExportBotTokenRequestTypeID is TL type id of BotsExportBotTokenRequest.
const BotsExportBotTokenRequestTypeID = 0xbd0d99eb
// Ensuring interfaces in compile-time for BotsExportBotTokenRequest.
var (
_ bin.Encoder = &BotsExportBotTokenRequest{}
_ bin.Decoder = &BotsExportBotTokenRequest{}
_ bin.BareEncoder = &BotsExportBotTokenRequest{}
_ bin.BareDecoder = &BotsExportBotTokenRequest{}
)
func (e *BotsExportBotTokenRequest) Zero() bool {
if e == nil {
return true
}
if !(e.Bot == nil) {
return false
}
if !(e.Revoke == false) {
return false
}
return true
}
// String implements fmt.Stringer.
func (e *BotsExportBotTokenRequest) String() string {
if e == nil {
return "BotsExportBotTokenRequest(nil)"
}
type Alias BotsExportBotTokenRequest
return fmt.Sprintf("BotsExportBotTokenRequest%+v", Alias(*e))
}
// FillFrom fills BotsExportBotTokenRequest from given interface.
func (e *BotsExportBotTokenRequest) FillFrom(from interface {
GetBot() (value InputUserClass)
GetRevoke() (value bool)
}) {
e.Bot = from.GetBot()
e.Revoke = from.GetRevoke()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsExportBotTokenRequest) TypeID() uint32 {
return BotsExportBotTokenRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsExportBotTokenRequest) TypeName() string {
return "bots.exportBotToken"
}
// TypeInfo returns info about TL type.
func (e *BotsExportBotTokenRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.exportBotToken",
ID: BotsExportBotTokenRequestTypeID,
}
if e == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Bot",
SchemaName: "bot",
},
{
Name: "Revoke",
SchemaName: "revoke",
},
}
return typ
}
// Encode implements bin.Encoder.
func (e *BotsExportBotTokenRequest) Encode(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't encode bots.exportBotToken#bd0d99eb as nil")
}
b.PutID(BotsExportBotTokenRequestTypeID)
return e.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (e *BotsExportBotTokenRequest) EncodeBare(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't encode bots.exportBotToken#bd0d99eb as nil")
}
if e.Bot == nil {
return fmt.Errorf("unable to encode bots.exportBotToken#bd0d99eb: field bot is nil")
}
if err := e.Bot.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.exportBotToken#bd0d99eb: field bot: %w", err)
}
b.PutBool(e.Revoke)
return nil
}
// Decode implements bin.Decoder.
func (e *BotsExportBotTokenRequest) Decode(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't decode bots.exportBotToken#bd0d99eb to nil")
}
if err := b.ConsumeID(BotsExportBotTokenRequestTypeID); err != nil {
return fmt.Errorf("unable to decode bots.exportBotToken#bd0d99eb: %w", err)
}
return e.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (e *BotsExportBotTokenRequest) DecodeBare(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't decode bots.exportBotToken#bd0d99eb to nil")
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode bots.exportBotToken#bd0d99eb: field bot: %w", err)
}
e.Bot = value
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode bots.exportBotToken#bd0d99eb: field revoke: %w", err)
}
e.Revoke = value
}
return nil
}
// GetBot returns value of Bot field.
func (e *BotsExportBotTokenRequest) GetBot() (value InputUserClass) {
if e == nil {
return
}
return e.Bot
}
// GetRevoke returns value of Revoke field.
func (e *BotsExportBotTokenRequest) GetRevoke() (value bool) {
if e == nil {
return
}
return e.Revoke
}
// BotsExportBotToken invokes method bots.exportBotToken#bd0d99eb returning error if any.
//
// See https://core.telegram.org/method/bots.exportBotToken for reference.
func (c *Client) BotsExportBotToken(ctx context.Context, request *BotsExportBotTokenRequest) (*BotsExportedBotToken, error) {
var result BotsExportedBotToken
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return &result, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+161
View File
@@ -0,0 +1,161 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsExportedBotToken represents TL type `bots.exportedBotToken#3c60b621`.
//
// See https://core.telegram.org/constructor/bots.exportedBotToken for reference.
type BotsExportedBotToken struct {
// Token field of BotsExportedBotToken.
Token string
}
// BotsExportedBotTokenTypeID is TL type id of BotsExportedBotToken.
const BotsExportedBotTokenTypeID = 0x3c60b621
// Ensuring interfaces in compile-time for BotsExportedBotToken.
var (
_ bin.Encoder = &BotsExportedBotToken{}
_ bin.Decoder = &BotsExportedBotToken{}
_ bin.BareEncoder = &BotsExportedBotToken{}
_ bin.BareDecoder = &BotsExportedBotToken{}
)
func (e *BotsExportedBotToken) Zero() bool {
if e == nil {
return true
}
if !(e.Token == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (e *BotsExportedBotToken) String() string {
if e == nil {
return "BotsExportedBotToken(nil)"
}
type Alias BotsExportedBotToken
return fmt.Sprintf("BotsExportedBotToken%+v", Alias(*e))
}
// FillFrom fills BotsExportedBotToken from given interface.
func (e *BotsExportedBotToken) FillFrom(from interface {
GetToken() (value string)
}) {
e.Token = from.GetToken()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsExportedBotToken) TypeID() uint32 {
return BotsExportedBotTokenTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsExportedBotToken) TypeName() string {
return "bots.exportedBotToken"
}
// TypeInfo returns info about TL type.
func (e *BotsExportedBotToken) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.exportedBotToken",
ID: BotsExportedBotTokenTypeID,
}
if e == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Token",
SchemaName: "token",
},
}
return typ
}
// Encode implements bin.Encoder.
func (e *BotsExportedBotToken) Encode(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't encode bots.exportedBotToken#3c60b621 as nil")
}
b.PutID(BotsExportedBotTokenTypeID)
return e.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (e *BotsExportedBotToken) EncodeBare(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't encode bots.exportedBotToken#3c60b621 as nil")
}
b.PutString(e.Token)
return nil
}
// Decode implements bin.Decoder.
func (e *BotsExportedBotToken) Decode(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't decode bots.exportedBotToken#3c60b621 to nil")
}
if err := b.ConsumeID(BotsExportedBotTokenTypeID); err != nil {
return fmt.Errorf("unable to decode bots.exportedBotToken#3c60b621: %w", err)
}
return e.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (e *BotsExportedBotToken) DecodeBare(b *bin.Buffer) error {
if e == nil {
return fmt.Errorf("can't decode bots.exportedBotToken#3c60b621 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.exportedBotToken#3c60b621: field token: %w", err)
}
e.Token = value
}
return nil
}
// GetToken returns value of Token field.
func (e *BotsExportedBotToken) GetToken() (value string) {
if e == nil {
return
}
return e.Token
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+205
View File
@@ -0,0 +1,205 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsGetRequestedWebViewButtonRequest represents TL type `bots.getRequestedWebViewButton#bf25b7f3`.
//
// See https://core.telegram.org/method/bots.getRequestedWebViewButton for reference.
type BotsGetRequestedWebViewButtonRequest struct {
// Bot field of BotsGetRequestedWebViewButtonRequest.
Bot InputUserClass
// WebappReqID field of BotsGetRequestedWebViewButtonRequest.
WebappReqID string
}
// BotsGetRequestedWebViewButtonRequestTypeID is TL type id of BotsGetRequestedWebViewButtonRequest.
const BotsGetRequestedWebViewButtonRequestTypeID = 0xbf25b7f3
// Ensuring interfaces in compile-time for BotsGetRequestedWebViewButtonRequest.
var (
_ bin.Encoder = &BotsGetRequestedWebViewButtonRequest{}
_ bin.Decoder = &BotsGetRequestedWebViewButtonRequest{}
_ bin.BareEncoder = &BotsGetRequestedWebViewButtonRequest{}
_ bin.BareDecoder = &BotsGetRequestedWebViewButtonRequest{}
)
func (g *BotsGetRequestedWebViewButtonRequest) Zero() bool {
if g == nil {
return true
}
if !(g.Bot == nil) {
return false
}
if !(g.WebappReqID == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (g *BotsGetRequestedWebViewButtonRequest) String() string {
if g == nil {
return "BotsGetRequestedWebViewButtonRequest(nil)"
}
type Alias BotsGetRequestedWebViewButtonRequest
return fmt.Sprintf("BotsGetRequestedWebViewButtonRequest%+v", Alias(*g))
}
// FillFrom fills BotsGetRequestedWebViewButtonRequest from given interface.
func (g *BotsGetRequestedWebViewButtonRequest) FillFrom(from interface {
GetBot() (value InputUserClass)
GetWebappReqID() (value string)
}) {
g.Bot = from.GetBot()
g.WebappReqID = from.GetWebappReqID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsGetRequestedWebViewButtonRequest) TypeID() uint32 {
return BotsGetRequestedWebViewButtonRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsGetRequestedWebViewButtonRequest) TypeName() string {
return "bots.getRequestedWebViewButton"
}
// TypeInfo returns info about TL type.
func (g *BotsGetRequestedWebViewButtonRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.getRequestedWebViewButton",
ID: BotsGetRequestedWebViewButtonRequestTypeID,
}
if g == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Bot",
SchemaName: "bot",
},
{
Name: "WebappReqID",
SchemaName: "webapp_req_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (g *BotsGetRequestedWebViewButtonRequest) Encode(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't encode bots.getRequestedWebViewButton#bf25b7f3 as nil")
}
b.PutID(BotsGetRequestedWebViewButtonRequestTypeID)
return g.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (g *BotsGetRequestedWebViewButtonRequest) EncodeBare(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't encode bots.getRequestedWebViewButton#bf25b7f3 as nil")
}
if g.Bot == nil {
return fmt.Errorf("unable to encode bots.getRequestedWebViewButton#bf25b7f3: field bot is nil")
}
if err := g.Bot.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.getRequestedWebViewButton#bf25b7f3: field bot: %w", err)
}
b.PutString(g.WebappReqID)
return nil
}
// Decode implements bin.Decoder.
func (g *BotsGetRequestedWebViewButtonRequest) Decode(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't decode bots.getRequestedWebViewButton#bf25b7f3 to nil")
}
if err := b.ConsumeID(BotsGetRequestedWebViewButtonRequestTypeID); err != nil {
return fmt.Errorf("unable to decode bots.getRequestedWebViewButton#bf25b7f3: %w", err)
}
return g.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (g *BotsGetRequestedWebViewButtonRequest) DecodeBare(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't decode bots.getRequestedWebViewButton#bf25b7f3 to nil")
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode bots.getRequestedWebViewButton#bf25b7f3: field bot: %w", err)
}
g.Bot = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.getRequestedWebViewButton#bf25b7f3: field webapp_req_id: %w", err)
}
g.WebappReqID = value
}
return nil
}
// GetBot returns value of Bot field.
func (g *BotsGetRequestedWebViewButtonRequest) GetBot() (value InputUserClass) {
if g == nil {
return
}
return g.Bot
}
// GetWebappReqID returns value of WebappReqID field.
func (g *BotsGetRequestedWebViewButtonRequest) GetWebappReqID() (value string) {
if g == nil {
return
}
return g.WebappReqID
}
// BotsGetRequestedWebViewButton invokes method bots.getRequestedWebViewButton#bf25b7f3 returning error if any.
//
// See https://core.telegram.org/method/bots.getRequestedWebViewButton for reference.
func (c *Client) BotsGetRequestedWebViewButton(ctx context.Context, request *BotsGetRequestedWebViewButtonRequest) (KeyboardButtonClass, error) {
var result KeyboardButtonBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.KeyboardButton, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+210
View File
@@ -0,0 +1,210 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsRequestWebViewButtonRequest represents TL type `bots.requestWebViewButton#31a2a35e`.
//
// See https://core.telegram.org/method/bots.requestWebViewButton for reference.
type BotsRequestWebViewButtonRequest struct {
// UserID field of BotsRequestWebViewButtonRequest.
UserID InputUserClass
// Button field of BotsRequestWebViewButtonRequest.
Button KeyboardButtonClass
}
// BotsRequestWebViewButtonRequestTypeID is TL type id of BotsRequestWebViewButtonRequest.
const BotsRequestWebViewButtonRequestTypeID = 0x31a2a35e
// Ensuring interfaces in compile-time for BotsRequestWebViewButtonRequest.
var (
_ bin.Encoder = &BotsRequestWebViewButtonRequest{}
_ bin.Decoder = &BotsRequestWebViewButtonRequest{}
_ bin.BareEncoder = &BotsRequestWebViewButtonRequest{}
_ bin.BareDecoder = &BotsRequestWebViewButtonRequest{}
)
func (r *BotsRequestWebViewButtonRequest) Zero() bool {
if r == nil {
return true
}
if !(r.UserID == nil) {
return false
}
if !(r.Button == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *BotsRequestWebViewButtonRequest) String() string {
if r == nil {
return "BotsRequestWebViewButtonRequest(nil)"
}
type Alias BotsRequestWebViewButtonRequest
return fmt.Sprintf("BotsRequestWebViewButtonRequest%+v", Alias(*r))
}
// FillFrom fills BotsRequestWebViewButtonRequest from given interface.
func (r *BotsRequestWebViewButtonRequest) FillFrom(from interface {
GetUserID() (value InputUserClass)
GetButton() (value KeyboardButtonClass)
}) {
r.UserID = from.GetUserID()
r.Button = from.GetButton()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsRequestWebViewButtonRequest) TypeID() uint32 {
return BotsRequestWebViewButtonRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsRequestWebViewButtonRequest) TypeName() string {
return "bots.requestWebViewButton"
}
// TypeInfo returns info about TL type.
func (r *BotsRequestWebViewButtonRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.requestWebViewButton",
ID: BotsRequestWebViewButtonRequestTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "UserID",
SchemaName: "user_id",
},
{
Name: "Button",
SchemaName: "button",
},
}
return typ
}
// Encode implements bin.Encoder.
func (r *BotsRequestWebViewButtonRequest) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode bots.requestWebViewButton#31a2a35e as nil")
}
b.PutID(BotsRequestWebViewButtonRequestTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *BotsRequestWebViewButtonRequest) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode bots.requestWebViewButton#31a2a35e as nil")
}
if r.UserID == nil {
return fmt.Errorf("unable to encode bots.requestWebViewButton#31a2a35e: field user_id is nil")
}
if err := r.UserID.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.requestWebViewButton#31a2a35e: field user_id: %w", err)
}
if r.Button == nil {
return fmt.Errorf("unable to encode bots.requestWebViewButton#31a2a35e: field button is nil")
}
if err := r.Button.Encode(b); err != nil {
return fmt.Errorf("unable to encode bots.requestWebViewButton#31a2a35e: field button: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (r *BotsRequestWebViewButtonRequest) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode bots.requestWebViewButton#31a2a35e to nil")
}
if err := b.ConsumeID(BotsRequestWebViewButtonRequestTypeID); err != nil {
return fmt.Errorf("unable to decode bots.requestWebViewButton#31a2a35e: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *BotsRequestWebViewButtonRequest) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode bots.requestWebViewButton#31a2a35e to nil")
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode bots.requestWebViewButton#31a2a35e: field user_id: %w", err)
}
r.UserID = value
}
{
value, err := DecodeKeyboardButton(b)
if err != nil {
return fmt.Errorf("unable to decode bots.requestWebViewButton#31a2a35e: field button: %w", err)
}
r.Button = value
}
return nil
}
// GetUserID returns value of UserID field.
func (r *BotsRequestWebViewButtonRequest) GetUserID() (value InputUserClass) {
if r == nil {
return
}
return r.UserID
}
// GetButton returns value of Button field.
func (r *BotsRequestWebViewButtonRequest) GetButton() (value KeyboardButtonClass) {
if r == nil {
return
}
return r.Button
}
// BotsRequestWebViewButton invokes method bots.requestWebViewButton#31a2a35e returning error if any.
//
// See https://core.telegram.org/method/bots.requestWebViewButton for reference.
func (c *Client) BotsRequestWebViewButton(ctx context.Context, request *BotsRequestWebViewButtonRequest) (*BotsRequestedButton, error) {
var result BotsRequestedButton
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return &result, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+161
View File
@@ -0,0 +1,161 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// BotsRequestedButton represents TL type `bots.requestedButton#f13bbcd7`.
//
// See https://core.telegram.org/constructor/bots.requestedButton for reference.
type BotsRequestedButton struct {
// WebappReqID field of BotsRequestedButton.
WebappReqID string
}
// BotsRequestedButtonTypeID is TL type id of BotsRequestedButton.
const BotsRequestedButtonTypeID = 0xf13bbcd7
// Ensuring interfaces in compile-time for BotsRequestedButton.
var (
_ bin.Encoder = &BotsRequestedButton{}
_ bin.Decoder = &BotsRequestedButton{}
_ bin.BareEncoder = &BotsRequestedButton{}
_ bin.BareDecoder = &BotsRequestedButton{}
)
func (r *BotsRequestedButton) Zero() bool {
if r == nil {
return true
}
if !(r.WebappReqID == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *BotsRequestedButton) String() string {
if r == nil {
return "BotsRequestedButton(nil)"
}
type Alias BotsRequestedButton
return fmt.Sprintf("BotsRequestedButton%+v", Alias(*r))
}
// FillFrom fills BotsRequestedButton from given interface.
func (r *BotsRequestedButton) FillFrom(from interface {
GetWebappReqID() (value string)
}) {
r.WebappReqID = from.GetWebappReqID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*BotsRequestedButton) TypeID() uint32 {
return BotsRequestedButtonTypeID
}
// TypeName returns name of type in TL schema.
func (*BotsRequestedButton) TypeName() string {
return "bots.requestedButton"
}
// TypeInfo returns info about TL type.
func (r *BotsRequestedButton) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "bots.requestedButton",
ID: BotsRequestedButtonTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "WebappReqID",
SchemaName: "webapp_req_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (r *BotsRequestedButton) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode bots.requestedButton#f13bbcd7 as nil")
}
b.PutID(BotsRequestedButtonTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *BotsRequestedButton) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode bots.requestedButton#f13bbcd7 as nil")
}
b.PutString(r.WebappReqID)
return nil
}
// Decode implements bin.Decoder.
func (r *BotsRequestedButton) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode bots.requestedButton#f13bbcd7 to nil")
}
if err := b.ConsumeID(BotsRequestedButtonTypeID); err != nil {
return fmt.Errorf("unable to decode bots.requestedButton#f13bbcd7: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *BotsRequestedButton) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode bots.requestedButton#f13bbcd7 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode bots.requestedButton#f13bbcd7: field webapp_req_id: %w", err)
}
r.WebappReqID = value
}
return nil
}
// GetWebappReqID returns value of WebappReqID field.
func (r *BotsRequestedButton) GetWebappReqID() (value string) {
if r == nil {
return
}
return r.WebappReqID
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+55 -28
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// Dialog represents TL type `dialog#d58a08c6`. // Dialog represents TL type `dialog#fc89f7f3`.
// Chat // Chat
// //
// See https://core.telegram.org/constructor/dialog for reference. // See https://core.telegram.org/constructor/dialog for reference.
@@ -72,6 +72,8 @@ type Dialog struct {
UnreadMentionsCount int UnreadMentionsCount int
// Number of unread reactions to messages you sent // Number of unread reactions to messages you sent
UnreadReactionsCount int UnreadReactionsCount int
// UnreadPollVotesCount field of Dialog.
UnreadPollVotesCount int
// Notification settings // Notification settings
NotifySettings PeerNotifySettings NotifySettings PeerNotifySettings
// PTS¹ // PTS¹
@@ -102,7 +104,7 @@ type Dialog struct {
} }
// DialogTypeID is TL type id of Dialog. // DialogTypeID is TL type id of Dialog.
const DialogTypeID = 0xd58a08c6 const DialogTypeID = 0xfc89f7f3
// construct implements constructor of DialogClass. // construct implements constructor of DialogClass.
func (d Dialog) construct() DialogClass { return &d } func (d Dialog) construct() DialogClass { return &d }
@@ -154,6 +156,9 @@ func (d *Dialog) Zero() bool {
if !(d.UnreadReactionsCount == 0) { if !(d.UnreadReactionsCount == 0) {
return false return false
} }
if !(d.UnreadPollVotesCount == 0) {
return false
}
if !(d.NotifySettings.Zero()) { if !(d.NotifySettings.Zero()) {
return false return false
} }
@@ -194,6 +199,7 @@ func (d *Dialog) FillFrom(from interface {
GetUnreadCount() (value int) GetUnreadCount() (value int)
GetUnreadMentionsCount() (value int) GetUnreadMentionsCount() (value int)
GetUnreadReactionsCount() (value int) GetUnreadReactionsCount() (value int)
GetUnreadPollVotesCount() (value int)
GetNotifySettings() (value PeerNotifySettings) GetNotifySettings() (value PeerNotifySettings)
GetPts() (value int, ok bool) GetPts() (value int, ok bool)
GetDraft() (value DraftMessageClass, ok bool) GetDraft() (value DraftMessageClass, ok bool)
@@ -210,6 +216,7 @@ func (d *Dialog) FillFrom(from interface {
d.UnreadCount = from.GetUnreadCount() d.UnreadCount = from.GetUnreadCount()
d.UnreadMentionsCount = from.GetUnreadMentionsCount() d.UnreadMentionsCount = from.GetUnreadMentionsCount()
d.UnreadReactionsCount = from.GetUnreadReactionsCount() d.UnreadReactionsCount = from.GetUnreadReactionsCount()
d.UnreadPollVotesCount = from.GetUnreadPollVotesCount()
d.NotifySettings = from.GetNotifySettings() d.NotifySettings = from.GetNotifySettings()
if val, ok := from.GetPts(); ok { if val, ok := from.GetPts(); ok {
d.Pts = val d.Pts = val
@@ -295,6 +302,10 @@ func (d *Dialog) TypeInfo() tdp.Type {
Name: "UnreadReactionsCount", Name: "UnreadReactionsCount",
SchemaName: "unread_reactions_count", SchemaName: "unread_reactions_count",
}, },
{
Name: "UnreadPollVotesCount",
SchemaName: "unread_poll_votes_count",
},
{ {
Name: "NotifySettings", Name: "NotifySettings",
SchemaName: "notify_settings", SchemaName: "notify_settings",
@@ -351,7 +362,7 @@ func (d *Dialog) SetFlags() {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (d *Dialog) Encode(b *bin.Buffer) error { func (d *Dialog) Encode(b *bin.Buffer) error {
if d == nil { if d == nil {
return fmt.Errorf("can't encode dialog#d58a08c6 as nil") return fmt.Errorf("can't encode dialog#fc89f7f3 as nil")
} }
b.PutID(DialogTypeID) b.PutID(DialogTypeID)
return d.EncodeBare(b) return d.EncodeBare(b)
@@ -360,17 +371,17 @@ func (d *Dialog) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (d *Dialog) EncodeBare(b *bin.Buffer) error { func (d *Dialog) EncodeBare(b *bin.Buffer) error {
if d == nil { if d == nil {
return fmt.Errorf("can't encode dialog#d58a08c6 as nil") return fmt.Errorf("can't encode dialog#fc89f7f3 as nil")
} }
d.SetFlags() d.SetFlags()
if err := d.Flags.Encode(b); err != nil { if err := d.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field flags: %w", err) return fmt.Errorf("unable to encode dialog#fc89f7f3: field flags: %w", err)
} }
if d.Peer == nil { if d.Peer == nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field peer is nil") return fmt.Errorf("unable to encode dialog#fc89f7f3: field peer is nil")
} }
if err := d.Peer.Encode(b); err != nil { if err := d.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field peer: %w", err) return fmt.Errorf("unable to encode dialog#fc89f7f3: field peer: %w", err)
} }
b.PutInt(d.TopMessage) b.PutInt(d.TopMessage)
b.PutInt(d.ReadInboxMaxID) b.PutInt(d.ReadInboxMaxID)
@@ -378,18 +389,19 @@ func (d *Dialog) EncodeBare(b *bin.Buffer) error {
b.PutInt(d.UnreadCount) b.PutInt(d.UnreadCount)
b.PutInt(d.UnreadMentionsCount) b.PutInt(d.UnreadMentionsCount)
b.PutInt(d.UnreadReactionsCount) b.PutInt(d.UnreadReactionsCount)
b.PutInt(d.UnreadPollVotesCount)
if err := d.NotifySettings.Encode(b); err != nil { if err := d.NotifySettings.Encode(b); err != nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field notify_settings: %w", err) return fmt.Errorf("unable to encode dialog#fc89f7f3: field notify_settings: %w", err)
} }
if d.Flags.Has(0) { if d.Flags.Has(0) {
b.PutInt(d.Pts) b.PutInt(d.Pts)
} }
if d.Flags.Has(1) { if d.Flags.Has(1) {
if d.Draft == nil { if d.Draft == nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field draft is nil") return fmt.Errorf("unable to encode dialog#fc89f7f3: field draft is nil")
} }
if err := d.Draft.Encode(b); err != nil { if err := d.Draft.Encode(b); err != nil {
return fmt.Errorf("unable to encode dialog#d58a08c6: field draft: %w", err) return fmt.Errorf("unable to encode dialog#fc89f7f3: field draft: %w", err)
} }
} }
if d.Flags.Has(4) { if d.Flags.Has(4) {
@@ -404,10 +416,10 @@ func (d *Dialog) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (d *Dialog) Decode(b *bin.Buffer) error { func (d *Dialog) Decode(b *bin.Buffer) error {
if d == nil { if d == nil {
return fmt.Errorf("can't decode dialog#d58a08c6 to nil") return fmt.Errorf("can't decode dialog#fc89f7f3 to nil")
} }
if err := b.ConsumeID(DialogTypeID); err != nil { if err := b.ConsumeID(DialogTypeID); err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: %w", err)
} }
return d.DecodeBare(b) return d.DecodeBare(b)
} }
@@ -415,11 +427,11 @@ func (d *Dialog) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (d *Dialog) DecodeBare(b *bin.Buffer) error { func (d *Dialog) DecodeBare(b *bin.Buffer) error {
if d == nil { if d == nil {
return fmt.Errorf("can't decode dialog#d58a08c6 to nil") return fmt.Errorf("can't decode dialog#fc89f7f3 to nil")
} }
{ {
if err := d.Flags.Decode(b); err != nil { if err := d.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field flags: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field flags: %w", err)
} }
} }
d.Pinned = d.Flags.Has(2) d.Pinned = d.Flags.Has(2)
@@ -428,82 +440,89 @@ func (d *Dialog) DecodeBare(b *bin.Buffer) error {
{ {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field peer: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field peer: %w", err)
} }
d.Peer = value d.Peer = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field top_message: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field top_message: %w", err)
} }
d.TopMessage = value d.TopMessage = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field read_inbox_max_id: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field read_inbox_max_id: %w", err)
} }
d.ReadInboxMaxID = value d.ReadInboxMaxID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field read_outbox_max_id: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field read_outbox_max_id: %w", err)
} }
d.ReadOutboxMaxID = value d.ReadOutboxMaxID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field unread_count: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field unread_count: %w", err)
} }
d.UnreadCount = value d.UnreadCount = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field unread_mentions_count: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field unread_mentions_count: %w", err)
} }
d.UnreadMentionsCount = value d.UnreadMentionsCount = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field unread_reactions_count: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field unread_reactions_count: %w", err)
} }
d.UnreadReactionsCount = value d.UnreadReactionsCount = value
} }
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode dialog#fc89f7f3: field unread_poll_votes_count: %w", err)
}
d.UnreadPollVotesCount = value
}
{ {
if err := d.NotifySettings.Decode(b); err != nil { if err := d.NotifySettings.Decode(b); err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field notify_settings: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field notify_settings: %w", err)
} }
} }
if d.Flags.Has(0) { if d.Flags.Has(0) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field pts: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field pts: %w", err)
} }
d.Pts = value d.Pts = value
} }
if d.Flags.Has(1) { if d.Flags.Has(1) {
value, err := DecodeDraftMessage(b) value, err := DecodeDraftMessage(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field draft: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field draft: %w", err)
} }
d.Draft = value d.Draft = value
} }
if d.Flags.Has(4) { if d.Flags.Has(4) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field folder_id: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field folder_id: %w", err)
} }
d.FolderID = value d.FolderID = value
} }
if d.Flags.Has(5) { if d.Flags.Has(5) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode dialog#d58a08c6: field ttl_period: %w", err) return fmt.Errorf("unable to decode dialog#fc89f7f3: field ttl_period: %w", err)
} }
d.TTLPeriod = value d.TTLPeriod = value
} }
@@ -623,6 +642,14 @@ func (d *Dialog) GetUnreadReactionsCount() (value int) {
return d.UnreadReactionsCount return d.UnreadReactionsCount
} }
// GetUnreadPollVotesCount returns value of UnreadPollVotesCount field.
func (d *Dialog) GetUnreadPollVotesCount() (value int) {
if d == nil {
return
}
return d.UnreadPollVotesCount
}
// GetNotifySettings returns value of NotifySettings field. // GetNotifySettings returns value of NotifySettings field.
func (d *Dialog) GetNotifySettings() (value PeerNotifySettings) { func (d *Dialog) GetNotifySettings() (value PeerNotifySettings) {
if d == nil { if d == nil {
@@ -1075,7 +1102,7 @@ const DialogClassName = "Dialog"
// panic(err) // panic(err)
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.Dialog: // dialog#d58a08c6 // case *tg.Dialog: // dialog#fc89f7f3
// case *tg.DialogFolder: // dialogFolder#71bd134c // case *tg.DialogFolder: // dialogFolder#71bd134c
// default: panic(v) // default: panic(v)
// } // }
@@ -1125,7 +1152,7 @@ func DecodeDialog(buf *bin.Buffer) (DialogClass, error) {
} }
switch id { switch id {
case DialogTypeID: case DialogTypeID:
// Decoding dialog#d58a08c6. // Decoding dialog#fc89f7f3.
v := Dialog{} v := Dialog{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode DialogClass: %w", err) return nil, fmt.Errorf("unable to decode DialogClass: %w", err)
+60 -33
View File
@@ -166,7 +166,7 @@ func (f *ForumTopicDeleted) GetID() (value int) {
return f.ID return f.ID
} }
// ForumTopic represents TL type `forumTopic#cdff0eca`. // ForumTopic represents TL type `forumTopic#fcdad815`.
// Represents a forum topic¹. // Represents a forum topic¹.
// //
// Links: // Links:
@@ -236,6 +236,8 @@ type ForumTopic struct {
UnreadMentionsCount int UnreadMentionsCount int
// Number of unread reactions to messages you sent // Number of unread reactions to messages you sent
UnreadReactionsCount int UnreadReactionsCount int
// UnreadPollVotesCount field of ForumTopic.
UnreadPollVotesCount int
// ID of the peer that created the topic // ID of the peer that created the topic
FromID PeerClass FromID PeerClass
// Notification settings // Notification settings
@@ -250,7 +252,7 @@ type ForumTopic struct {
} }
// ForumTopicTypeID is TL type id of ForumTopic. // ForumTopicTypeID is TL type id of ForumTopic.
const ForumTopicTypeID = 0xcdff0eca const ForumTopicTypeID = 0xfcdad815
// construct implements constructor of ForumTopicClass. // construct implements constructor of ForumTopicClass.
func (f ForumTopic) construct() ForumTopicClass { return &f } func (f ForumTopic) construct() ForumTopicClass { return &f }
@@ -326,6 +328,9 @@ func (f *ForumTopic) Zero() bool {
if !(f.UnreadReactionsCount == 0) { if !(f.UnreadReactionsCount == 0) {
return false return false
} }
if !(f.UnreadPollVotesCount == 0) {
return false
}
if !(f.FromID == nil) { if !(f.FromID == nil) {
return false return false
} }
@@ -368,6 +373,7 @@ func (f *ForumTopic) FillFrom(from interface {
GetUnreadCount() (value int) GetUnreadCount() (value int)
GetUnreadMentionsCount() (value int) GetUnreadMentionsCount() (value int)
GetUnreadReactionsCount() (value int) GetUnreadReactionsCount() (value int)
GetUnreadPollVotesCount() (value int)
GetFromID() (value PeerClass) GetFromID() (value PeerClass)
GetNotifySettings() (value PeerNotifySettings) GetNotifySettings() (value PeerNotifySettings)
GetDraft() (value DraftMessageClass, ok bool) GetDraft() (value DraftMessageClass, ok bool)
@@ -393,6 +399,7 @@ func (f *ForumTopic) FillFrom(from interface {
f.UnreadCount = from.GetUnreadCount() f.UnreadCount = from.GetUnreadCount()
f.UnreadMentionsCount = from.GetUnreadMentionsCount() f.UnreadMentionsCount = from.GetUnreadMentionsCount()
f.UnreadReactionsCount = from.GetUnreadReactionsCount() f.UnreadReactionsCount = from.GetUnreadReactionsCount()
f.UnreadPollVotesCount = from.GetUnreadPollVotesCount()
f.FromID = from.GetFromID() f.FromID = from.GetFromID()
f.NotifySettings = from.GetNotifySettings() f.NotifySettings = from.GetNotifySettings()
if val, ok := from.GetDraft(); ok { if val, ok := from.GetDraft(); ok {
@@ -503,6 +510,10 @@ func (f *ForumTopic) TypeInfo() tdp.Type {
Name: "UnreadReactionsCount", Name: "UnreadReactionsCount",
SchemaName: "unread_reactions_count", SchemaName: "unread_reactions_count",
}, },
{
Name: "UnreadPollVotesCount",
SchemaName: "unread_poll_votes_count",
},
{ {
Name: "FromID", Name: "FromID",
SchemaName: "from_id", SchemaName: "from_id",
@@ -551,7 +562,7 @@ func (f *ForumTopic) SetFlags() {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (f *ForumTopic) Encode(b *bin.Buffer) error { func (f *ForumTopic) Encode(b *bin.Buffer) error {
if f == nil { if f == nil {
return fmt.Errorf("can't encode forumTopic#cdff0eca as nil") return fmt.Errorf("can't encode forumTopic#fcdad815 as nil")
} }
b.PutID(ForumTopicTypeID) b.PutID(ForumTopicTypeID)
return f.EncodeBare(b) return f.EncodeBare(b)
@@ -560,19 +571,19 @@ func (f *ForumTopic) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (f *ForumTopic) EncodeBare(b *bin.Buffer) error { func (f *ForumTopic) EncodeBare(b *bin.Buffer) error {
if f == nil { if f == nil {
return fmt.Errorf("can't encode forumTopic#cdff0eca as nil") return fmt.Errorf("can't encode forumTopic#fcdad815 as nil")
} }
f.SetFlags() f.SetFlags()
if err := f.Flags.Encode(b); err != nil { if err := f.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field flags: %w", err) return fmt.Errorf("unable to encode forumTopic#fcdad815: field flags: %w", err)
} }
b.PutInt(f.ID) b.PutInt(f.ID)
b.PutInt(f.Date) b.PutInt(f.Date)
if f.Peer == nil { if f.Peer == nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field peer is nil") return fmt.Errorf("unable to encode forumTopic#fcdad815: field peer is nil")
} }
if err := f.Peer.Encode(b); err != nil { if err := f.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field peer: %w", err) return fmt.Errorf("unable to encode forumTopic#fcdad815: field peer: %w", err)
} }
b.PutString(f.Title) b.PutString(f.Title)
b.PutInt(f.IconColor) b.PutInt(f.IconColor)
@@ -585,21 +596,22 @@ func (f *ForumTopic) EncodeBare(b *bin.Buffer) error {
b.PutInt(f.UnreadCount) b.PutInt(f.UnreadCount)
b.PutInt(f.UnreadMentionsCount) b.PutInt(f.UnreadMentionsCount)
b.PutInt(f.UnreadReactionsCount) b.PutInt(f.UnreadReactionsCount)
b.PutInt(f.UnreadPollVotesCount)
if f.FromID == nil { if f.FromID == nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field from_id is nil") return fmt.Errorf("unable to encode forumTopic#fcdad815: field from_id is nil")
} }
if err := f.FromID.Encode(b); err != nil { if err := f.FromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field from_id: %w", err) return fmt.Errorf("unable to encode forumTopic#fcdad815: field from_id: %w", err)
} }
if err := f.NotifySettings.Encode(b); err != nil { if err := f.NotifySettings.Encode(b); err != nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field notify_settings: %w", err) return fmt.Errorf("unable to encode forumTopic#fcdad815: field notify_settings: %w", err)
} }
if f.Flags.Has(4) { if f.Flags.Has(4) {
if f.Draft == nil { if f.Draft == nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field draft is nil") return fmt.Errorf("unable to encode forumTopic#fcdad815: field draft is nil")
} }
if err := f.Draft.Encode(b); err != nil { if err := f.Draft.Encode(b); err != nil {
return fmt.Errorf("unable to encode forumTopic#cdff0eca: field draft: %w", err) return fmt.Errorf("unable to encode forumTopic#fcdad815: field draft: %w", err)
} }
} }
return nil return nil
@@ -608,10 +620,10 @@ func (f *ForumTopic) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (f *ForumTopic) Decode(b *bin.Buffer) error { func (f *ForumTopic) Decode(b *bin.Buffer) error {
if f == nil { if f == nil {
return fmt.Errorf("can't decode forumTopic#cdff0eca to nil") return fmt.Errorf("can't decode forumTopic#fcdad815 to nil")
} }
if err := b.ConsumeID(ForumTopicTypeID); err != nil { if err := b.ConsumeID(ForumTopicTypeID); err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: %w", err)
} }
return f.DecodeBare(b) return f.DecodeBare(b)
} }
@@ -619,11 +631,11 @@ func (f *ForumTopic) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (f *ForumTopic) DecodeBare(b *bin.Buffer) error { func (f *ForumTopic) DecodeBare(b *bin.Buffer) error {
if f == nil { if f == nil {
return fmt.Errorf("can't decode forumTopic#cdff0eca to nil") return fmt.Errorf("can't decode forumTopic#fcdad815 to nil")
} }
{ {
if err := f.Flags.Decode(b); err != nil { if err := f.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field flags: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field flags: %w", err)
} }
} }
f.My = f.Flags.Has(1) f.My = f.Flags.Has(1)
@@ -635,103 +647,110 @@ func (f *ForumTopic) DecodeBare(b *bin.Buffer) error {
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field id: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field id: %w", err)
} }
f.ID = value f.ID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field date: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field date: %w", err)
} }
f.Date = value f.Date = value
} }
{ {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field peer: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field peer: %w", err)
} }
f.Peer = value f.Peer = value
} }
{ {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field title: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field title: %w", err)
} }
f.Title = value f.Title = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field icon_color: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field icon_color: %w", err)
} }
f.IconColor = value f.IconColor = value
} }
if f.Flags.Has(0) { if f.Flags.Has(0) {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field icon_emoji_id: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field icon_emoji_id: %w", err)
} }
f.IconEmojiID = value f.IconEmojiID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field top_message: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field top_message: %w", err)
} }
f.TopMessage = value f.TopMessage = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field read_inbox_max_id: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field read_inbox_max_id: %w", err)
} }
f.ReadInboxMaxID = value f.ReadInboxMaxID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field read_outbox_max_id: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field read_outbox_max_id: %w", err)
} }
f.ReadOutboxMaxID = value f.ReadOutboxMaxID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field unread_count: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field unread_count: %w", err)
} }
f.UnreadCount = value f.UnreadCount = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field unread_mentions_count: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field unread_mentions_count: %w", err)
} }
f.UnreadMentionsCount = value f.UnreadMentionsCount = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field unread_reactions_count: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field unread_reactions_count: %w", err)
} }
f.UnreadReactionsCount = value f.UnreadReactionsCount = value
} }
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode forumTopic#fcdad815: field unread_poll_votes_count: %w", err)
}
f.UnreadPollVotesCount = value
}
{ {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field from_id: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field from_id: %w", err)
} }
f.FromID = value f.FromID = value
} }
{ {
if err := f.NotifySettings.Decode(b); err != nil { if err := f.NotifySettings.Decode(b); err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field notify_settings: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field notify_settings: %w", err)
} }
} }
if f.Flags.Has(4) { if f.Flags.Has(4) {
value, err := DecodeDraftMessage(b) value, err := DecodeDraftMessage(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode forumTopic#cdff0eca: field draft: %w", err) return fmt.Errorf("unable to decode forumTopic#fcdad815: field draft: %w", err)
} }
f.Draft = value f.Draft = value
} }
@@ -958,6 +977,14 @@ func (f *ForumTopic) GetUnreadReactionsCount() (value int) {
return f.UnreadReactionsCount return f.UnreadReactionsCount
} }
// GetUnreadPollVotesCount returns value of UnreadPollVotesCount field.
func (f *ForumTopic) GetUnreadPollVotesCount() (value int) {
if f == nil {
return
}
return f.UnreadPollVotesCount
}
// GetFromID returns value of FromID field. // GetFromID returns value of FromID field.
func (f *ForumTopic) GetFromID() (value PeerClass) { func (f *ForumTopic) GetFromID() (value PeerClass) {
if f == nil { if f == nil {
@@ -1007,7 +1034,7 @@ const ForumTopicClassName = "ForumTopic"
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.ForumTopicDeleted: // forumTopicDeleted#23f109b // case *tg.ForumTopicDeleted: // forumTopicDeleted#23f109b
// case *tg.ForumTopic: // forumTopic#cdff0eca // case *tg.ForumTopic: // forumTopic#fcdad815
// default: panic(v) // default: panic(v)
// } // }
type ForumTopicClass interface { type ForumTopicClass interface {
@@ -1047,7 +1074,7 @@ func DecodeForumTopic(buf *bin.Buffer) (ForumTopicClass, error) {
} }
return &v, nil return &v, nil
case ForumTopicTypeID: case ForumTopicTypeID:
// Decoding forumTopic#cdff0eca. // Decoding forumTopic#fcdad815.
v := ForumTopic{} v := ForumTopic{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ForumTopicClass: %w", err) return nil, fmt.Errorf("unable to decode ForumTopicClass: %w", err)
+10
View File
@@ -1561,6 +1561,16 @@ func (u UpdateDispatcher) OnChatParticipantRank(handler ChatParticipantRankHandl
} }
} }
// ManagedBotHandler is a ManagedBot event handler.
type ManagedBotHandler func(ctx context.Context, e Entities, update *UpdateManagedBot) error
// OnManagedBot sets ManagedBot handler.
func (u UpdateDispatcher) OnManagedBot(handler ManagedBotHandler) {
u.handlers[UpdateManagedBotTypeID] = func(ctx context.Context, e Entities, update UpdateClass) error {
return handler(ctx, e, update.(*UpdateManagedBot))
}
}
// OnFallback sets fallback handler. // OnFallback sets fallback handler.
func (u *UpdateDispatcher) OnFallback(handler Handler) { func (u *UpdateDispatcher) OnFallback(handler Handler) {
u.fallback = handler u.fallback = handler
+343 -61
View File
@@ -133,7 +133,7 @@ func (i *InputMediaEmpty) DecodeBare(b *bin.Buffer) error {
return nil return nil
} }
// InputMediaUploadedPhoto represents TL type `inputMediaUploadedPhoto#1e287d04`. // InputMediaUploadedPhoto represents TL type `inputMediaUploadedPhoto#7d8375da`.
// Photo // Photo
// //
// See https://core.telegram.org/constructor/inputMediaUploadedPhoto for reference. // See https://core.telegram.org/constructor/inputMediaUploadedPhoto for reference.
@@ -145,6 +145,8 @@ type InputMediaUploadedPhoto struct {
Flags bin.Fields Flags bin.Fields
// Whether this media should be hidden behind a spoiler warning // Whether this media should be hidden behind a spoiler warning
Spoiler bool Spoiler bool
// LivePhoto field of InputMediaUploadedPhoto.
LivePhoto bool
// The uploaded file¹ // The uploaded file¹
// //
// Links: // Links:
@@ -158,10 +160,14 @@ type InputMediaUploadedPhoto struct {
// //
// Use SetTTLSeconds and GetTTLSeconds helpers. // Use SetTTLSeconds and GetTTLSeconds helpers.
TTLSeconds int TTLSeconds int
// Video field of InputMediaUploadedPhoto.
//
// Use SetVideo and GetVideo helpers.
Video InputDocumentClass
} }
// InputMediaUploadedPhotoTypeID is TL type id of InputMediaUploadedPhoto. // InputMediaUploadedPhotoTypeID is TL type id of InputMediaUploadedPhoto.
const InputMediaUploadedPhotoTypeID = 0x1e287d04 const InputMediaUploadedPhotoTypeID = 0x7d8375da
// construct implements constructor of InputMediaClass. // construct implements constructor of InputMediaClass.
func (i InputMediaUploadedPhoto) construct() InputMediaClass { return &i } func (i InputMediaUploadedPhoto) construct() InputMediaClass { return &i }
@@ -186,6 +192,9 @@ func (i *InputMediaUploadedPhoto) Zero() bool {
if !(i.Spoiler == false) { if !(i.Spoiler == false) {
return false return false
} }
if !(i.LivePhoto == false) {
return false
}
if !(i.File == nil) { if !(i.File == nil) {
return false return false
} }
@@ -195,6 +204,9 @@ func (i *InputMediaUploadedPhoto) Zero() bool {
if !(i.TTLSeconds == 0) { if !(i.TTLSeconds == 0) {
return false return false
} }
if !(i.Video == nil) {
return false
}
return true return true
} }
@@ -211,11 +223,14 @@ func (i *InputMediaUploadedPhoto) String() string {
// FillFrom fills InputMediaUploadedPhoto from given interface. // FillFrom fills InputMediaUploadedPhoto from given interface.
func (i *InputMediaUploadedPhoto) FillFrom(from interface { func (i *InputMediaUploadedPhoto) FillFrom(from interface {
GetSpoiler() (value bool) GetSpoiler() (value bool)
GetLivePhoto() (value bool)
GetFile() (value InputFileClass) GetFile() (value InputFileClass)
GetStickers() (value []InputDocumentClass, ok bool) GetStickers() (value []InputDocumentClass, ok bool)
GetTTLSeconds() (value int, ok bool) GetTTLSeconds() (value int, ok bool)
GetVideo() (value InputDocumentClass, ok bool)
}) { }) {
i.Spoiler = from.GetSpoiler() i.Spoiler = from.GetSpoiler()
i.LivePhoto = from.GetLivePhoto()
i.File = from.GetFile() i.File = from.GetFile()
if val, ok := from.GetStickers(); ok { if val, ok := from.GetStickers(); ok {
i.Stickers = val i.Stickers = val
@@ -225,6 +240,10 @@ func (i *InputMediaUploadedPhoto) FillFrom(from interface {
i.TTLSeconds = val i.TTLSeconds = val
} }
if val, ok := from.GetVideo(); ok {
i.Video = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -255,6 +274,11 @@ func (i *InputMediaUploadedPhoto) TypeInfo() tdp.Type {
SchemaName: "spoiler", SchemaName: "spoiler",
Null: !i.Flags.Has(2), Null: !i.Flags.Has(2),
}, },
{
Name: "LivePhoto",
SchemaName: "live_photo",
Null: !i.Flags.Has(3),
},
{ {
Name: "File", Name: "File",
SchemaName: "file", SchemaName: "file",
@@ -269,6 +293,11 @@ func (i *InputMediaUploadedPhoto) TypeInfo() tdp.Type {
SchemaName: "ttl_seconds", SchemaName: "ttl_seconds",
Null: !i.Flags.Has(1), Null: !i.Flags.Has(1),
}, },
{
Name: "Video",
SchemaName: "video",
Null: !i.Flags.Has(3),
},
} }
return typ return typ
} }
@@ -278,18 +307,24 @@ func (i *InputMediaUploadedPhoto) SetFlags() {
if !(i.Spoiler == false) { if !(i.Spoiler == false) {
i.Flags.Set(2) i.Flags.Set(2)
} }
if !(i.LivePhoto == false) {
i.Flags.Set(3)
}
if !(i.Stickers == nil) { if !(i.Stickers == nil) {
i.Flags.Set(0) i.Flags.Set(0)
} }
if !(i.TTLSeconds == 0) { if !(i.TTLSeconds == 0) {
i.Flags.Set(1) i.Flags.Set(1)
} }
if !(i.Video == nil) {
i.Flags.Set(3)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (i *InputMediaUploadedPhoto) Encode(b *bin.Buffer) error { func (i *InputMediaUploadedPhoto) Encode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaUploadedPhoto#1e287d04 as nil") return fmt.Errorf("can't encode inputMediaUploadedPhoto#7d8375da as nil")
} }
b.PutID(InputMediaUploadedPhotoTypeID) b.PutID(InputMediaUploadedPhotoTypeID)
return i.EncodeBare(b) return i.EncodeBare(b)
@@ -298,42 +333,50 @@ func (i *InputMediaUploadedPhoto) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (i *InputMediaUploadedPhoto) EncodeBare(b *bin.Buffer) error { func (i *InputMediaUploadedPhoto) EncodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaUploadedPhoto#1e287d04 as nil") return fmt.Errorf("can't encode inputMediaUploadedPhoto#7d8375da as nil")
} }
i.SetFlags() i.SetFlags()
if err := i.Flags.Encode(b); err != nil { if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#1e287d04: field flags: %w", err) return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field flags: %w", err)
} }
if i.File == nil { if i.File == nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#1e287d04: field file is nil") return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field file is nil")
} }
if err := i.File.Encode(b); err != nil { if err := i.File.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#1e287d04: field file: %w", err) return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field file: %w", err)
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
b.PutVectorHeader(len(i.Stickers)) b.PutVectorHeader(len(i.Stickers))
for idx, v := range i.Stickers { for idx, v := range i.Stickers {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#1e287d04: field stickers element with index %d is nil", idx) return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field stickers element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#1e287d04: field stickers element with index %d: %w", idx, err) return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field stickers element with index %d: %w", idx, err)
} }
} }
} }
if i.Flags.Has(1) { if i.Flags.Has(1) {
b.PutInt(i.TTLSeconds) b.PutInt(i.TTLSeconds)
} }
if i.Flags.Has(3) {
if i.Video == nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field video is nil")
}
if err := i.Video.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaUploadedPhoto#7d8375da: field video: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (i *InputMediaUploadedPhoto) Decode(b *bin.Buffer) error { func (i *InputMediaUploadedPhoto) Decode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaUploadedPhoto#1e287d04 to nil") return fmt.Errorf("can't decode inputMediaUploadedPhoto#7d8375da to nil")
} }
if err := b.ConsumeID(InputMediaUploadedPhotoTypeID); err != nil { if err := b.ConsumeID(InputMediaUploadedPhotoTypeID); err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: %w", err)
} }
return i.DecodeBare(b) return i.DecodeBare(b)
} }
@@ -341,25 +384,26 @@ func (i *InputMediaUploadedPhoto) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (i *InputMediaUploadedPhoto) DecodeBare(b *bin.Buffer) error { func (i *InputMediaUploadedPhoto) DecodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaUploadedPhoto#1e287d04 to nil") return fmt.Errorf("can't decode inputMediaUploadedPhoto#7d8375da to nil")
} }
{ {
if err := i.Flags.Decode(b); err != nil { if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: field flags: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field flags: %w", err)
} }
} }
i.Spoiler = i.Flags.Has(2) i.Spoiler = i.Flags.Has(2)
i.LivePhoto = i.Flags.Has(3)
{ {
value, err := DecodeInputFile(b) value, err := DecodeInputFile(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: field file: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field file: %w", err)
} }
i.File = value i.File = value
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: field stickers: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field stickers: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -368,7 +412,7 @@ func (i *InputMediaUploadedPhoto) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeInputDocument(b) value, err := DecodeInputDocument(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: field stickers: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field stickers: %w", err)
} }
i.Stickers = append(i.Stickers, value) i.Stickers = append(i.Stickers, value)
} }
@@ -376,10 +420,17 @@ func (i *InputMediaUploadedPhoto) DecodeBare(b *bin.Buffer) error {
if i.Flags.Has(1) { if i.Flags.Has(1) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#1e287d04: field ttl_seconds: %w", err) return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field ttl_seconds: %w", err)
} }
i.TTLSeconds = value i.TTLSeconds = value
} }
if i.Flags.Has(3) {
value, err := DecodeInputDocument(b)
if err != nil {
return fmt.Errorf("unable to decode inputMediaUploadedPhoto#7d8375da: field video: %w", err)
}
i.Video = value
}
return nil return nil
} }
@@ -402,6 +453,25 @@ func (i *InputMediaUploadedPhoto) GetSpoiler() (value bool) {
return i.Flags.Has(2) return i.Flags.Has(2)
} }
// SetLivePhoto sets value of LivePhoto conditional field.
func (i *InputMediaUploadedPhoto) SetLivePhoto(value bool) {
if value {
i.Flags.Set(3)
i.LivePhoto = true
} else {
i.Flags.Unset(3)
i.LivePhoto = false
}
}
// GetLivePhoto returns value of LivePhoto conditional field.
func (i *InputMediaUploadedPhoto) GetLivePhoto() (value bool) {
if i == nil {
return
}
return i.Flags.Has(3)
}
// GetFile returns value of File field. // GetFile returns value of File field.
func (i *InputMediaUploadedPhoto) GetFile() (value InputFileClass) { func (i *InputMediaUploadedPhoto) GetFile() (value InputFileClass) {
if i == nil { if i == nil {
@@ -446,6 +516,24 @@ func (i *InputMediaUploadedPhoto) GetTTLSeconds() (value int, ok bool) {
return i.TTLSeconds, true return i.TTLSeconds, true
} }
// SetVideo sets value of Video conditional field.
func (i *InputMediaUploadedPhoto) SetVideo(value InputDocumentClass) {
i.Flags.Set(3)
i.Video = value
}
// GetVideo returns value of Video conditional field and
// boolean which is true if field was set.
func (i *InputMediaUploadedPhoto) GetVideo() (value InputDocumentClass, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(3) {
return value, false
}
return i.Video, true
}
// MapStickers returns field Stickers wrapped in InputDocumentClassArray helper. // MapStickers returns field Stickers wrapped in InputDocumentClassArray helper.
func (i *InputMediaUploadedPhoto) MapStickers() (value InputDocumentClassArray, ok bool) { func (i *InputMediaUploadedPhoto) MapStickers() (value InputDocumentClassArray, ok bool) {
if !i.Flags.Has(0) { if !i.Flags.Has(0) {
@@ -454,7 +542,7 @@ func (i *InputMediaUploadedPhoto) MapStickers() (value InputDocumentClassArray,
return InputDocumentClassArray(i.Stickers), true return InputDocumentClassArray(i.Stickers), true
} }
// InputMediaPhoto represents TL type `inputMediaPhoto#b3ba0635`. // InputMediaPhoto represents TL type `inputMediaPhoto#e3af4434`.
// Forwarded photo // Forwarded photo
// //
// See https://core.telegram.org/constructor/inputMediaPhoto for reference. // See https://core.telegram.org/constructor/inputMediaPhoto for reference.
@@ -466,16 +554,22 @@ type InputMediaPhoto struct {
Flags bin.Fields Flags bin.Fields
// Whether this media should be hidden behind a spoiler warning // Whether this media should be hidden behind a spoiler warning
Spoiler bool Spoiler bool
// LivePhoto field of InputMediaPhoto.
LivePhoto bool
// Photo to be forwarded // Photo to be forwarded
ID InputPhotoClass ID InputPhotoClass
// Time to live in seconds of self-destructing photo // Time to live in seconds of self-destructing photo
// //
// Use SetTTLSeconds and GetTTLSeconds helpers. // Use SetTTLSeconds and GetTTLSeconds helpers.
TTLSeconds int TTLSeconds int
// Video field of InputMediaPhoto.
//
// Use SetVideo and GetVideo helpers.
Video InputDocumentClass
} }
// InputMediaPhotoTypeID is TL type id of InputMediaPhoto. // InputMediaPhotoTypeID is TL type id of InputMediaPhoto.
const InputMediaPhotoTypeID = 0xb3ba0635 const InputMediaPhotoTypeID = 0xe3af4434
// construct implements constructor of InputMediaClass. // construct implements constructor of InputMediaClass.
func (i InputMediaPhoto) construct() InputMediaClass { return &i } func (i InputMediaPhoto) construct() InputMediaClass { return &i }
@@ -500,12 +594,18 @@ func (i *InputMediaPhoto) Zero() bool {
if !(i.Spoiler == false) { if !(i.Spoiler == false) {
return false return false
} }
if !(i.LivePhoto == false) {
return false
}
if !(i.ID == nil) { if !(i.ID == nil) {
return false return false
} }
if !(i.TTLSeconds == 0) { if !(i.TTLSeconds == 0) {
return false return false
} }
if !(i.Video == nil) {
return false
}
return true return true
} }
@@ -522,15 +622,22 @@ func (i *InputMediaPhoto) String() string {
// FillFrom fills InputMediaPhoto from given interface. // FillFrom fills InputMediaPhoto from given interface.
func (i *InputMediaPhoto) FillFrom(from interface { func (i *InputMediaPhoto) FillFrom(from interface {
GetSpoiler() (value bool) GetSpoiler() (value bool)
GetLivePhoto() (value bool)
GetID() (value InputPhotoClass) GetID() (value InputPhotoClass)
GetTTLSeconds() (value int, ok bool) GetTTLSeconds() (value int, ok bool)
GetVideo() (value InputDocumentClass, ok bool)
}) { }) {
i.Spoiler = from.GetSpoiler() i.Spoiler = from.GetSpoiler()
i.LivePhoto = from.GetLivePhoto()
i.ID = from.GetID() i.ID = from.GetID()
if val, ok := from.GetTTLSeconds(); ok { if val, ok := from.GetTTLSeconds(); ok {
i.TTLSeconds = val i.TTLSeconds = val
} }
if val, ok := from.GetVideo(); ok {
i.Video = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -561,6 +668,11 @@ func (i *InputMediaPhoto) TypeInfo() tdp.Type {
SchemaName: "spoiler", SchemaName: "spoiler",
Null: !i.Flags.Has(1), Null: !i.Flags.Has(1),
}, },
{
Name: "LivePhoto",
SchemaName: "live_photo",
Null: !i.Flags.Has(2),
},
{ {
Name: "ID", Name: "ID",
SchemaName: "id", SchemaName: "id",
@@ -570,6 +682,11 @@ func (i *InputMediaPhoto) TypeInfo() tdp.Type {
SchemaName: "ttl_seconds", SchemaName: "ttl_seconds",
Null: !i.Flags.Has(0), Null: !i.Flags.Has(0),
}, },
{
Name: "Video",
SchemaName: "video",
Null: !i.Flags.Has(2),
},
} }
return typ return typ
} }
@@ -579,15 +696,21 @@ func (i *InputMediaPhoto) SetFlags() {
if !(i.Spoiler == false) { if !(i.Spoiler == false) {
i.Flags.Set(1) i.Flags.Set(1)
} }
if !(i.LivePhoto == false) {
i.Flags.Set(2)
}
if !(i.TTLSeconds == 0) { if !(i.TTLSeconds == 0) {
i.Flags.Set(0) i.Flags.Set(0)
} }
if !(i.Video == nil) {
i.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (i *InputMediaPhoto) Encode(b *bin.Buffer) error { func (i *InputMediaPhoto) Encode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaPhoto#b3ba0635 as nil") return fmt.Errorf("can't encode inputMediaPhoto#e3af4434 as nil")
} }
b.PutID(InputMediaPhotoTypeID) b.PutID(InputMediaPhotoTypeID)
return i.EncodeBare(b) return i.EncodeBare(b)
@@ -596,31 +719,39 @@ func (i *InputMediaPhoto) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (i *InputMediaPhoto) EncodeBare(b *bin.Buffer) error { func (i *InputMediaPhoto) EncodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaPhoto#b3ba0635 as nil") return fmt.Errorf("can't encode inputMediaPhoto#e3af4434 as nil")
} }
i.SetFlags() i.SetFlags()
if err := i.Flags.Encode(b); err != nil { if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPhoto#b3ba0635: field flags: %w", err) return fmt.Errorf("unable to encode inputMediaPhoto#e3af4434: field flags: %w", err)
} }
if i.ID == nil { if i.ID == nil {
return fmt.Errorf("unable to encode inputMediaPhoto#b3ba0635: field id is nil") return fmt.Errorf("unable to encode inputMediaPhoto#e3af4434: field id is nil")
} }
if err := i.ID.Encode(b); err != nil { if err := i.ID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPhoto#b3ba0635: field id: %w", err) return fmt.Errorf("unable to encode inputMediaPhoto#e3af4434: field id: %w", err)
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
b.PutInt(i.TTLSeconds) b.PutInt(i.TTLSeconds)
} }
if i.Flags.Has(2) {
if i.Video == nil {
return fmt.Errorf("unable to encode inputMediaPhoto#e3af4434: field video is nil")
}
if err := i.Video.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPhoto#e3af4434: field video: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (i *InputMediaPhoto) Decode(b *bin.Buffer) error { func (i *InputMediaPhoto) Decode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaPhoto#b3ba0635 to nil") return fmt.Errorf("can't decode inputMediaPhoto#e3af4434 to nil")
} }
if err := b.ConsumeID(InputMediaPhotoTypeID); err != nil { if err := b.ConsumeID(InputMediaPhotoTypeID); err != nil {
return fmt.Errorf("unable to decode inputMediaPhoto#b3ba0635: %w", err) return fmt.Errorf("unable to decode inputMediaPhoto#e3af4434: %w", err)
} }
return i.DecodeBare(b) return i.DecodeBare(b)
} }
@@ -628,28 +759,36 @@ func (i *InputMediaPhoto) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (i *InputMediaPhoto) DecodeBare(b *bin.Buffer) error { func (i *InputMediaPhoto) DecodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaPhoto#b3ba0635 to nil") return fmt.Errorf("can't decode inputMediaPhoto#e3af4434 to nil")
} }
{ {
if err := i.Flags.Decode(b); err != nil { if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputMediaPhoto#b3ba0635: field flags: %w", err) return fmt.Errorf("unable to decode inputMediaPhoto#e3af4434: field flags: %w", err)
} }
} }
i.Spoiler = i.Flags.Has(1) i.Spoiler = i.Flags.Has(1)
i.LivePhoto = i.Flags.Has(2)
{ {
value, err := DecodeInputPhoto(b) value, err := DecodeInputPhoto(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPhoto#b3ba0635: field id: %w", err) return fmt.Errorf("unable to decode inputMediaPhoto#e3af4434: field id: %w", err)
} }
i.ID = value i.ID = value
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPhoto#b3ba0635: field ttl_seconds: %w", err) return fmt.Errorf("unable to decode inputMediaPhoto#e3af4434: field ttl_seconds: %w", err)
} }
i.TTLSeconds = value i.TTLSeconds = value
} }
if i.Flags.Has(2) {
value, err := DecodeInputDocument(b)
if err != nil {
return fmt.Errorf("unable to decode inputMediaPhoto#e3af4434: field video: %w", err)
}
i.Video = value
}
return nil return nil
} }
@@ -672,6 +811,25 @@ func (i *InputMediaPhoto) GetSpoiler() (value bool) {
return i.Flags.Has(1) return i.Flags.Has(1)
} }
// SetLivePhoto sets value of LivePhoto conditional field.
func (i *InputMediaPhoto) SetLivePhoto(value bool) {
if value {
i.Flags.Set(2)
i.LivePhoto = true
} else {
i.Flags.Unset(2)
i.LivePhoto = false
}
}
// GetLivePhoto returns value of LivePhoto conditional field.
func (i *InputMediaPhoto) GetLivePhoto() (value bool) {
if i == nil {
return
}
return i.Flags.Has(2)
}
// GetID returns value of ID field. // GetID returns value of ID field.
func (i *InputMediaPhoto) GetID() (value InputPhotoClass) { func (i *InputMediaPhoto) GetID() (value InputPhotoClass) {
if i == nil { if i == nil {
@@ -698,6 +856,24 @@ func (i *InputMediaPhoto) GetTTLSeconds() (value int, ok bool) {
return i.TTLSeconds, true return i.TTLSeconds, true
} }
// SetVideo sets value of Video conditional field.
func (i *InputMediaPhoto) SetVideo(value InputDocumentClass) {
i.Flags.Set(2)
i.Video = value
}
// GetVideo returns value of Video conditional field and
// boolean which is true if field was set.
func (i *InputMediaPhoto) GetVideo() (value InputDocumentClass, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(2) {
return value, false
}
return i.Video, true
}
// InputMediaGeoPoint represents TL type `inputMediaGeoPoint#f9c44144`. // InputMediaGeoPoint represents TL type `inputMediaGeoPoint#f9c44144`.
// Map. // Map.
// //
@@ -3898,7 +4074,7 @@ func (i *InputMediaGeoLive) GetProximityNotificationRadius() (value int, ok bool
return i.ProximityNotificationRadius, true return i.ProximityNotificationRadius, true
} }
// InputMediaPoll represents TL type `inputMediaPoll#f94e5f1`. // InputMediaPoll represents TL type `inputMediaPoll#883a4108`.
// A poll // A poll
// //
// See https://core.telegram.org/constructor/inputMediaPoll for reference. // See https://core.telegram.org/constructor/inputMediaPoll for reference.
@@ -3913,7 +4089,11 @@ type InputMediaPoll struct {
// Correct answer IDs (for quiz polls) // Correct answer IDs (for quiz polls)
// //
// Use SetCorrectAnswers and GetCorrectAnswers helpers. // Use SetCorrectAnswers and GetCorrectAnswers helpers.
CorrectAnswers [][]byte CorrectAnswers []int
// AttachedMedia field of InputMediaPoll.
//
// Use SetAttachedMedia and GetAttachedMedia helpers.
AttachedMedia InputMediaClass
// Explanation of quiz solution // Explanation of quiz solution
// //
// Use SetSolution and GetSolution helpers. // Use SetSolution and GetSolution helpers.
@@ -3925,10 +4105,14 @@ type InputMediaPoll struct {
// //
// Use SetSolutionEntities and GetSolutionEntities helpers. // Use SetSolutionEntities and GetSolutionEntities helpers.
SolutionEntities []MessageEntityClass SolutionEntities []MessageEntityClass
// SolutionMedia field of InputMediaPoll.
//
// Use SetSolutionMedia and GetSolutionMedia helpers.
SolutionMedia InputMediaClass
} }
// InputMediaPollTypeID is TL type id of InputMediaPoll. // InputMediaPollTypeID is TL type id of InputMediaPoll.
const InputMediaPollTypeID = 0xf94e5f1 const InputMediaPollTypeID = 0x883a4108
// construct implements constructor of InputMediaClass. // construct implements constructor of InputMediaClass.
func (i InputMediaPoll) construct() InputMediaClass { return &i } func (i InputMediaPoll) construct() InputMediaClass { return &i }
@@ -3956,12 +4140,18 @@ func (i *InputMediaPoll) Zero() bool {
if !(i.CorrectAnswers == nil) { if !(i.CorrectAnswers == nil) {
return false return false
} }
if !(i.AttachedMedia == nil) {
return false
}
if !(i.Solution == "") { if !(i.Solution == "") {
return false return false
} }
if !(i.SolutionEntities == nil) { if !(i.SolutionEntities == nil) {
return false return false
} }
if !(i.SolutionMedia == nil) {
return false
}
return true return true
} }
@@ -3978,15 +4168,21 @@ func (i *InputMediaPoll) String() string {
// FillFrom fills InputMediaPoll from given interface. // FillFrom fills InputMediaPoll from given interface.
func (i *InputMediaPoll) FillFrom(from interface { func (i *InputMediaPoll) FillFrom(from interface {
GetPoll() (value Poll) GetPoll() (value Poll)
GetCorrectAnswers() (value [][]byte, ok bool) GetCorrectAnswers() (value []int, ok bool)
GetAttachedMedia() (value InputMediaClass, ok bool)
GetSolution() (value string, ok bool) GetSolution() (value string, ok bool)
GetSolutionEntities() (value []MessageEntityClass, ok bool) GetSolutionEntities() (value []MessageEntityClass, ok bool)
GetSolutionMedia() (value InputMediaClass, ok bool)
}) { }) {
i.Poll = from.GetPoll() i.Poll = from.GetPoll()
if val, ok := from.GetCorrectAnswers(); ok { if val, ok := from.GetCorrectAnswers(); ok {
i.CorrectAnswers = val i.CorrectAnswers = val
} }
if val, ok := from.GetAttachedMedia(); ok {
i.AttachedMedia = val
}
if val, ok := from.GetSolution(); ok { if val, ok := from.GetSolution(); ok {
i.Solution = val i.Solution = val
} }
@@ -3995,6 +4191,10 @@ func (i *InputMediaPoll) FillFrom(from interface {
i.SolutionEntities = val i.SolutionEntities = val
} }
if val, ok := from.GetSolutionMedia(); ok {
i.SolutionMedia = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -4029,6 +4229,11 @@ func (i *InputMediaPoll) TypeInfo() tdp.Type {
SchemaName: "correct_answers", SchemaName: "correct_answers",
Null: !i.Flags.Has(0), Null: !i.Flags.Has(0),
}, },
{
Name: "AttachedMedia",
SchemaName: "attached_media",
Null: !i.Flags.Has(3),
},
{ {
Name: "Solution", Name: "Solution",
SchemaName: "solution", SchemaName: "solution",
@@ -4039,6 +4244,11 @@ func (i *InputMediaPoll) TypeInfo() tdp.Type {
SchemaName: "solution_entities", SchemaName: "solution_entities",
Null: !i.Flags.Has(1), Null: !i.Flags.Has(1),
}, },
{
Name: "SolutionMedia",
SchemaName: "solution_media",
Null: !i.Flags.Has(2),
},
} }
return typ return typ
} }
@@ -4048,18 +4258,24 @@ func (i *InputMediaPoll) SetFlags() {
if !(i.CorrectAnswers == nil) { if !(i.CorrectAnswers == nil) {
i.Flags.Set(0) i.Flags.Set(0)
} }
if !(i.AttachedMedia == nil) {
i.Flags.Set(3)
}
if !(i.Solution == "") { if !(i.Solution == "") {
i.Flags.Set(1) i.Flags.Set(1)
} }
if !(i.SolutionEntities == nil) { if !(i.SolutionEntities == nil) {
i.Flags.Set(1) i.Flags.Set(1)
} }
if !(i.SolutionMedia == nil) {
i.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (i *InputMediaPoll) Encode(b *bin.Buffer) error { func (i *InputMediaPoll) Encode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaPoll#f94e5f1 as nil") return fmt.Errorf("can't encode inputMediaPoll#883a4108 as nil")
} }
b.PutID(InputMediaPollTypeID) b.PutID(InputMediaPollTypeID)
return i.EncodeBare(b) return i.EncodeBare(b)
@@ -4068,19 +4284,27 @@ func (i *InputMediaPoll) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (i *InputMediaPoll) EncodeBare(b *bin.Buffer) error { func (i *InputMediaPoll) EncodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputMediaPoll#f94e5f1 as nil") return fmt.Errorf("can't encode inputMediaPoll#883a4108 as nil")
} }
i.SetFlags() i.SetFlags()
if err := i.Flags.Encode(b); err != nil { if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPoll#f94e5f1: field flags: %w", err) return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field flags: %w", err)
} }
if err := i.Poll.Encode(b); err != nil { if err := i.Poll.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPoll#f94e5f1: field poll: %w", err) return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field poll: %w", err)
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
b.PutVectorHeader(len(i.CorrectAnswers)) b.PutVectorHeader(len(i.CorrectAnswers))
for _, v := range i.CorrectAnswers { for _, v := range i.CorrectAnswers {
b.PutBytes(v) b.PutInt(v)
}
}
if i.Flags.Has(3) {
if i.AttachedMedia == nil {
return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field attached_media is nil")
}
if err := i.AttachedMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field attached_media: %w", err)
} }
} }
if i.Flags.Has(1) { if i.Flags.Has(1) {
@@ -4090,23 +4314,31 @@ func (i *InputMediaPoll) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(i.SolutionEntities)) b.PutVectorHeader(len(i.SolutionEntities))
for idx, v := range i.SolutionEntities { for idx, v := range i.SolutionEntities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode inputMediaPoll#f94e5f1: field solution_entities element with index %d is nil", idx) return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field solution_entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPoll#f94e5f1: field solution_entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field solution_entities element with index %d: %w", idx, err)
} }
} }
} }
if i.Flags.Has(2) {
if i.SolutionMedia == nil {
return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field solution_media is nil")
}
if err := i.SolutionMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputMediaPoll#883a4108: field solution_media: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (i *InputMediaPoll) Decode(b *bin.Buffer) error { func (i *InputMediaPoll) Decode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaPoll#f94e5f1 to nil") return fmt.Errorf("can't decode inputMediaPoll#883a4108 to nil")
} }
if err := b.ConsumeID(InputMediaPollTypeID); err != nil { if err := b.ConsumeID(InputMediaPollTypeID); err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: %w", err)
} }
return i.DecodeBare(b) return i.DecodeBare(b)
} }
@@ -4114,46 +4346,53 @@ func (i *InputMediaPoll) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (i *InputMediaPoll) DecodeBare(b *bin.Buffer) error { func (i *InputMediaPoll) DecodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputMediaPoll#f94e5f1 to nil") return fmt.Errorf("can't decode inputMediaPoll#883a4108 to nil")
} }
{ {
if err := i.Flags.Decode(b); err != nil { if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field flags: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field flags: %w", err)
} }
} }
{ {
if err := i.Poll.Decode(b); err != nil { if err := i.Poll.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field poll: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field poll: %w", err)
} }
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field correct_answers: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field correct_answers: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
i.CorrectAnswers = make([][]byte, 0, headerLen%bin.PreallocateLimit) i.CorrectAnswers = make([]int, 0, headerLen%bin.PreallocateLimit)
} }
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.Bytes() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field correct_answers: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field correct_answers: %w", err)
} }
i.CorrectAnswers = append(i.CorrectAnswers, value) i.CorrectAnswers = append(i.CorrectAnswers, value)
} }
} }
if i.Flags.Has(3) {
value, err := DecodeInputMedia(b)
if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field attached_media: %w", err)
}
i.AttachedMedia = value
}
if i.Flags.Has(1) { if i.Flags.Has(1) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field solution: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field solution: %w", err)
} }
i.Solution = value i.Solution = value
} }
if i.Flags.Has(1) { if i.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field solution_entities: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field solution_entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -4162,11 +4401,18 @@ func (i *InputMediaPoll) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#f94e5f1: field solution_entities: %w", err) return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field solution_entities: %w", err)
} }
i.SolutionEntities = append(i.SolutionEntities, value) i.SolutionEntities = append(i.SolutionEntities, value)
} }
} }
if i.Flags.Has(2) {
value, err := DecodeInputMedia(b)
if err != nil {
return fmt.Errorf("unable to decode inputMediaPoll#883a4108: field solution_media: %w", err)
}
i.SolutionMedia = value
}
return nil return nil
} }
@@ -4179,14 +4425,14 @@ func (i *InputMediaPoll) GetPoll() (value Poll) {
} }
// SetCorrectAnswers sets value of CorrectAnswers conditional field. // SetCorrectAnswers sets value of CorrectAnswers conditional field.
func (i *InputMediaPoll) SetCorrectAnswers(value [][]byte) { func (i *InputMediaPoll) SetCorrectAnswers(value []int) {
i.Flags.Set(0) i.Flags.Set(0)
i.CorrectAnswers = value i.CorrectAnswers = value
} }
// GetCorrectAnswers returns value of CorrectAnswers conditional field and // GetCorrectAnswers returns value of CorrectAnswers conditional field and
// boolean which is true if field was set. // boolean which is true if field was set.
func (i *InputMediaPoll) GetCorrectAnswers() (value [][]byte, ok bool) { func (i *InputMediaPoll) GetCorrectAnswers() (value []int, ok bool) {
if i == nil { if i == nil {
return return
} }
@@ -4196,6 +4442,24 @@ func (i *InputMediaPoll) GetCorrectAnswers() (value [][]byte, ok bool) {
return i.CorrectAnswers, true return i.CorrectAnswers, true
} }
// SetAttachedMedia sets value of AttachedMedia conditional field.
func (i *InputMediaPoll) SetAttachedMedia(value InputMediaClass) {
i.Flags.Set(3)
i.AttachedMedia = value
}
// GetAttachedMedia returns value of AttachedMedia conditional field and
// boolean which is true if field was set.
func (i *InputMediaPoll) GetAttachedMedia() (value InputMediaClass, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(3) {
return value, false
}
return i.AttachedMedia, true
}
// SetSolution sets value of Solution conditional field. // SetSolution sets value of Solution conditional field.
func (i *InputMediaPoll) SetSolution(value string) { func (i *InputMediaPoll) SetSolution(value string) {
i.Flags.Set(1) i.Flags.Set(1)
@@ -4232,6 +4496,24 @@ func (i *InputMediaPoll) GetSolutionEntities() (value []MessageEntityClass, ok b
return i.SolutionEntities, true return i.SolutionEntities, true
} }
// SetSolutionMedia sets value of SolutionMedia conditional field.
func (i *InputMediaPoll) SetSolutionMedia(value InputMediaClass) {
i.Flags.Set(2)
i.SolutionMedia = value
}
// GetSolutionMedia returns value of SolutionMedia conditional field and
// boolean which is true if field was set.
func (i *InputMediaPoll) GetSolutionMedia() (value InputMediaClass, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(2) {
return value, false
}
return i.SolutionMedia, true
}
// MapSolutionEntities returns field SolutionEntities wrapped in MessageEntityClassArray helper. // MapSolutionEntities returns field SolutionEntities wrapped in MessageEntityClassArray helper.
func (i *InputMediaPoll) MapSolutionEntities() (value MessageEntityClassArray, ok bool) { func (i *InputMediaPoll) MapSolutionEntities() (value MessageEntityClassArray, ok bool) {
if !i.Flags.Has(1) { if !i.Flags.Has(1) {
@@ -5416,8 +5698,8 @@ const InputMediaClassName = "InputMedia"
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.InputMediaEmpty: // inputMediaEmpty#9664f57f // case *tg.InputMediaEmpty: // inputMediaEmpty#9664f57f
// case *tg.InputMediaUploadedPhoto: // inputMediaUploadedPhoto#1e287d04 // case *tg.InputMediaUploadedPhoto: // inputMediaUploadedPhoto#7d8375da
// case *tg.InputMediaPhoto: // inputMediaPhoto#b3ba0635 // case *tg.InputMediaPhoto: // inputMediaPhoto#e3af4434
// case *tg.InputMediaGeoPoint: // inputMediaGeoPoint#f9c44144 // case *tg.InputMediaGeoPoint: // inputMediaGeoPoint#f9c44144
// case *tg.InputMediaContact: // inputMediaContact#f8ab7dfb // case *tg.InputMediaContact: // inputMediaContact#f8ab7dfb
// case *tg.InputMediaUploadedDocument: // inputMediaUploadedDocument#37c9330 // case *tg.InputMediaUploadedDocument: // inputMediaUploadedDocument#37c9330
@@ -5428,7 +5710,7 @@ const InputMediaClassName = "InputMedia"
// case *tg.InputMediaGame: // inputMediaGame#d33f43f3 // case *tg.InputMediaGame: // inputMediaGame#d33f43f3
// case *tg.InputMediaInvoice: // inputMediaInvoice#405fef0d // case *tg.InputMediaInvoice: // inputMediaInvoice#405fef0d
// case *tg.InputMediaGeoLive: // inputMediaGeoLive#971fa843 // case *tg.InputMediaGeoLive: // inputMediaGeoLive#971fa843
// case *tg.InputMediaPoll: // inputMediaPoll#f94e5f1 // case *tg.InputMediaPoll: // inputMediaPoll#883a4108
// case *tg.InputMediaDice: // inputMediaDice#e66fbf7b // case *tg.InputMediaDice: // inputMediaDice#e66fbf7b
// case *tg.InputMediaStory: // inputMediaStory#89fdd778 // case *tg.InputMediaStory: // inputMediaStory#89fdd778
// case *tg.InputMediaWebPage: // inputMediaWebPage#c21b8849 // case *tg.InputMediaWebPage: // inputMediaWebPage#c21b8849
@@ -5471,14 +5753,14 @@ func DecodeInputMedia(buf *bin.Buffer) (InputMediaClass, error) {
} }
return &v, nil return &v, nil
case InputMediaUploadedPhotoTypeID: case InputMediaUploadedPhotoTypeID:
// Decoding inputMediaUploadedPhoto#1e287d04. // Decoding inputMediaUploadedPhoto#7d8375da.
v := InputMediaUploadedPhoto{} v := InputMediaUploadedPhoto{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err) return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err)
} }
return &v, nil return &v, nil
case InputMediaPhotoTypeID: case InputMediaPhotoTypeID:
// Decoding inputMediaPhoto#b3ba0635. // Decoding inputMediaPhoto#e3af4434.
v := InputMediaPhoto{} v := InputMediaPhoto{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err) return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err)
@@ -5555,7 +5837,7 @@ func DecodeInputMedia(buf *bin.Buffer) (InputMediaClass, error) {
} }
return &v, nil return &v, nil
case InputMediaPollTypeID: case InputMediaPollTypeID:
// Decoding inputMediaPoll#f94e5f1. // Decoding inputMediaPoll#883a4108.
v := InputMediaPoll{} v := InputMediaPoll{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err) return nil, fmt.Errorf("unable to decode InputMediaClass: %w", err)
+296
View File
@@ -0,0 +1,296 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// InputMessageReadMetric represents TL type `inputMessageReadMetric#402b4495`.
//
// See https://core.telegram.org/constructor/inputMessageReadMetric for reference.
type InputMessageReadMetric struct {
// MsgID field of InputMessageReadMetric.
MsgID int
// ViewID field of InputMessageReadMetric.
ViewID int64
// TimeInViewMs field of InputMessageReadMetric.
TimeInViewMs int
// ActiveTimeInViewMs field of InputMessageReadMetric.
ActiveTimeInViewMs int
// HeightToViewportRatioPermille field of InputMessageReadMetric.
HeightToViewportRatioPermille int
// SeenRangeRatioPermille field of InputMessageReadMetric.
SeenRangeRatioPermille int
}
// InputMessageReadMetricTypeID is TL type id of InputMessageReadMetric.
const InputMessageReadMetricTypeID = 0x402b4495
// Ensuring interfaces in compile-time for InputMessageReadMetric.
var (
_ bin.Encoder = &InputMessageReadMetric{}
_ bin.Decoder = &InputMessageReadMetric{}
_ bin.BareEncoder = &InputMessageReadMetric{}
_ bin.BareDecoder = &InputMessageReadMetric{}
)
func (i *InputMessageReadMetric) Zero() bool {
if i == nil {
return true
}
if !(i.MsgID == 0) {
return false
}
if !(i.ViewID == 0) {
return false
}
if !(i.TimeInViewMs == 0) {
return false
}
if !(i.ActiveTimeInViewMs == 0) {
return false
}
if !(i.HeightToViewportRatioPermille == 0) {
return false
}
if !(i.SeenRangeRatioPermille == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputMessageReadMetric) String() string {
if i == nil {
return "InputMessageReadMetric(nil)"
}
type Alias InputMessageReadMetric
return fmt.Sprintf("InputMessageReadMetric%+v", Alias(*i))
}
// FillFrom fills InputMessageReadMetric from given interface.
func (i *InputMessageReadMetric) FillFrom(from interface {
GetMsgID() (value int)
GetViewID() (value int64)
GetTimeInViewMs() (value int)
GetActiveTimeInViewMs() (value int)
GetHeightToViewportRatioPermille() (value int)
GetSeenRangeRatioPermille() (value int)
}) {
i.MsgID = from.GetMsgID()
i.ViewID = from.GetViewID()
i.TimeInViewMs = from.GetTimeInViewMs()
i.ActiveTimeInViewMs = from.GetActiveTimeInViewMs()
i.HeightToViewportRatioPermille = from.GetHeightToViewportRatioPermille()
i.SeenRangeRatioPermille = from.GetSeenRangeRatioPermille()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputMessageReadMetric) TypeID() uint32 {
return InputMessageReadMetricTypeID
}
// TypeName returns name of type in TL schema.
func (*InputMessageReadMetric) TypeName() string {
return "inputMessageReadMetric"
}
// TypeInfo returns info about TL type.
func (i *InputMessageReadMetric) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputMessageReadMetric",
ID: InputMessageReadMetricTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "MsgID",
SchemaName: "msg_id",
},
{
Name: "ViewID",
SchemaName: "view_id",
},
{
Name: "TimeInViewMs",
SchemaName: "time_in_view_ms",
},
{
Name: "ActiveTimeInViewMs",
SchemaName: "active_time_in_view_ms",
},
{
Name: "HeightToViewportRatioPermille",
SchemaName: "height_to_viewport_ratio_permille",
},
{
Name: "SeenRangeRatioPermille",
SchemaName: "seen_range_ratio_permille",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputMessageReadMetric) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputMessageReadMetric#402b4495 as nil")
}
b.PutID(InputMessageReadMetricTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputMessageReadMetric) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputMessageReadMetric#402b4495 as nil")
}
b.PutInt(i.MsgID)
b.PutLong(i.ViewID)
b.PutInt(i.TimeInViewMs)
b.PutInt(i.ActiveTimeInViewMs)
b.PutInt(i.HeightToViewportRatioPermille)
b.PutInt(i.SeenRangeRatioPermille)
return nil
}
// Decode implements bin.Decoder.
func (i *InputMessageReadMetric) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputMessageReadMetric#402b4495 to nil")
}
if err := b.ConsumeID(InputMessageReadMetricTypeID); err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputMessageReadMetric) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputMessageReadMetric#402b4495 to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field msg_id: %w", err)
}
i.MsgID = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field view_id: %w", err)
}
i.ViewID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field time_in_view_ms: %w", err)
}
i.TimeInViewMs = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field active_time_in_view_ms: %w", err)
}
i.ActiveTimeInViewMs = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field height_to_viewport_ratio_permille: %w", err)
}
i.HeightToViewportRatioPermille = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputMessageReadMetric#402b4495: field seen_range_ratio_permille: %w", err)
}
i.SeenRangeRatioPermille = value
}
return nil
}
// GetMsgID returns value of MsgID field.
func (i *InputMessageReadMetric) GetMsgID() (value int) {
if i == nil {
return
}
return i.MsgID
}
// GetViewID returns value of ViewID field.
func (i *InputMessageReadMetric) GetViewID() (value int64) {
if i == nil {
return
}
return i.ViewID
}
// GetTimeInViewMs returns value of TimeInViewMs field.
func (i *InputMessageReadMetric) GetTimeInViewMs() (value int) {
if i == nil {
return
}
return i.TimeInViewMs
}
// GetActiveTimeInViewMs returns value of ActiveTimeInViewMs field.
func (i *InputMessageReadMetric) GetActiveTimeInViewMs() (value int) {
if i == nil {
return
}
return i.ActiveTimeInViewMs
}
// GetHeightToViewportRatioPermille returns value of HeightToViewportRatioPermille field.
func (i *InputMessageReadMetric) GetHeightToViewportRatioPermille() (value int) {
if i == nil {
return
}
return i.HeightToViewportRatioPermille
}
// GetSeenRangeRatioPermille returns value of SeenRangeRatioPermille field.
func (i *InputMessageReadMetric) GetSeenRangeRatioPermille() (value int) {
if i == nil {
return
}
return i.SeenRangeRatioPermille
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+74 -26
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// InputReplyToMessage represents TL type `inputReplyToMessage#869fbe10`. // InputReplyToMessage represents TL type `inputReplyToMessage#3bd4b7c2`.
// Reply to a message. // Reply to a message.
// //
// See https://core.telegram.org/constructor/inputReplyToMessage for reference. // See https://core.telegram.org/constructor/inputReplyToMessage for reference.
@@ -93,10 +93,14 @@ type InputReplyToMessage struct {
// //
// Use SetTodoItemID and GetTodoItemID helpers. // Use SetTodoItemID and GetTodoItemID helpers.
TodoItemID int TodoItemID int
// PollOption field of InputReplyToMessage.
//
// Use SetPollOption and GetPollOption helpers.
PollOption []byte
} }
// InputReplyToMessageTypeID is TL type id of InputReplyToMessage. // InputReplyToMessageTypeID is TL type id of InputReplyToMessage.
const InputReplyToMessageTypeID = 0x869fbe10 const InputReplyToMessageTypeID = 0x3bd4b7c2
// construct implements constructor of InputReplyToClass. // construct implements constructor of InputReplyToClass.
func (i InputReplyToMessage) construct() InputReplyToClass { return &i } func (i InputReplyToMessage) construct() InputReplyToClass { return &i }
@@ -142,6 +146,9 @@ func (i *InputReplyToMessage) Zero() bool {
if !(i.TodoItemID == 0) { if !(i.TodoItemID == 0) {
return false return false
} }
if !(i.PollOption == nil) {
return false
}
return true return true
} }
@@ -165,6 +172,7 @@ func (i *InputReplyToMessage) FillFrom(from interface {
GetQuoteOffset() (value int, ok bool) GetQuoteOffset() (value int, ok bool)
GetMonoforumPeerID() (value InputPeerClass, ok bool) GetMonoforumPeerID() (value InputPeerClass, ok bool)
GetTodoItemID() (value int, ok bool) GetTodoItemID() (value int, ok bool)
GetPollOption() (value []byte, ok bool)
}) { }) {
i.ReplyToMsgID = from.GetReplyToMsgID() i.ReplyToMsgID = from.GetReplyToMsgID()
if val, ok := from.GetTopMsgID(); ok { if val, ok := from.GetTopMsgID(); ok {
@@ -195,6 +203,10 @@ func (i *InputReplyToMessage) FillFrom(from interface {
i.TodoItemID = val i.TodoItemID = val
} }
if val, ok := from.GetPollOption(); ok {
i.PollOption = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -259,6 +271,11 @@ func (i *InputReplyToMessage) TypeInfo() tdp.Type {
SchemaName: "todo_item_id", SchemaName: "todo_item_id",
Null: !i.Flags.Has(6), Null: !i.Flags.Has(6),
}, },
{
Name: "PollOption",
SchemaName: "poll_option",
Null: !i.Flags.Has(7),
},
} }
return typ return typ
} }
@@ -286,12 +303,15 @@ func (i *InputReplyToMessage) SetFlags() {
if !(i.TodoItemID == 0) { if !(i.TodoItemID == 0) {
i.Flags.Set(6) i.Flags.Set(6)
} }
if !(i.PollOption == nil) {
i.Flags.Set(7)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (i *InputReplyToMessage) Encode(b *bin.Buffer) error { func (i *InputReplyToMessage) Encode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputReplyToMessage#869fbe10 as nil") return fmt.Errorf("can't encode inputReplyToMessage#3bd4b7c2 as nil")
} }
b.PutID(InputReplyToMessageTypeID) b.PutID(InputReplyToMessageTypeID)
return i.EncodeBare(b) return i.EncodeBare(b)
@@ -300,11 +320,11 @@ func (i *InputReplyToMessage) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (i *InputReplyToMessage) EncodeBare(b *bin.Buffer) error { func (i *InputReplyToMessage) EncodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't encode inputReplyToMessage#869fbe10 as nil") return fmt.Errorf("can't encode inputReplyToMessage#3bd4b7c2 as nil")
} }
i.SetFlags() i.SetFlags()
if err := i.Flags.Encode(b); err != nil { if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field flags: %w", err) return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field flags: %w", err)
} }
b.PutInt(i.ReplyToMsgID) b.PutInt(i.ReplyToMsgID)
if i.Flags.Has(0) { if i.Flags.Has(0) {
@@ -312,10 +332,10 @@ func (i *InputReplyToMessage) EncodeBare(b *bin.Buffer) error {
} }
if i.Flags.Has(1) { if i.Flags.Has(1) {
if i.ReplyToPeerID == nil { if i.ReplyToPeerID == nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field reply_to_peer_id is nil") return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field reply_to_peer_id is nil")
} }
if err := i.ReplyToPeerID.Encode(b); err != nil { if err := i.ReplyToPeerID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field reply_to_peer_id: %w", err) return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field reply_to_peer_id: %w", err)
} }
} }
if i.Flags.Has(2) { if i.Flags.Has(2) {
@@ -325,10 +345,10 @@ func (i *InputReplyToMessage) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(i.QuoteEntities)) b.PutVectorHeader(len(i.QuoteEntities))
for idx, v := range i.QuoteEntities { for idx, v := range i.QuoteEntities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field quote_entities element with index %d is nil", idx) return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field quote_entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field quote_entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field quote_entities element with index %d: %w", idx, err)
} }
} }
} }
@@ -337,25 +357,28 @@ func (i *InputReplyToMessage) EncodeBare(b *bin.Buffer) error {
} }
if i.Flags.Has(5) { if i.Flags.Has(5) {
if i.MonoforumPeerID == nil { if i.MonoforumPeerID == nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field monoforum_peer_id is nil") return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field monoforum_peer_id is nil")
} }
if err := i.MonoforumPeerID.Encode(b); err != nil { if err := i.MonoforumPeerID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputReplyToMessage#869fbe10: field monoforum_peer_id: %w", err) return fmt.Errorf("unable to encode inputReplyToMessage#3bd4b7c2: field monoforum_peer_id: %w", err)
} }
} }
if i.Flags.Has(6) { if i.Flags.Has(6) {
b.PutInt(i.TodoItemID) b.PutInt(i.TodoItemID)
} }
if i.Flags.Has(7) {
b.PutBytes(i.PollOption)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (i *InputReplyToMessage) Decode(b *bin.Buffer) error { func (i *InputReplyToMessage) Decode(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputReplyToMessage#869fbe10 to nil") return fmt.Errorf("can't decode inputReplyToMessage#3bd4b7c2 to nil")
} }
if err := b.ConsumeID(InputReplyToMessageTypeID); err != nil { if err := b.ConsumeID(InputReplyToMessageTypeID); err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: %w", err)
} }
return i.DecodeBare(b) return i.DecodeBare(b)
} }
@@ -363,45 +386,45 @@ func (i *InputReplyToMessage) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (i *InputReplyToMessage) DecodeBare(b *bin.Buffer) error { func (i *InputReplyToMessage) DecodeBare(b *bin.Buffer) error {
if i == nil { if i == nil {
return fmt.Errorf("can't decode inputReplyToMessage#869fbe10 to nil") return fmt.Errorf("can't decode inputReplyToMessage#3bd4b7c2 to nil")
} }
{ {
if err := i.Flags.Decode(b); err != nil { if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field flags: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field flags: %w", err)
} }
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field reply_to_msg_id: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field reply_to_msg_id: %w", err)
} }
i.ReplyToMsgID = value i.ReplyToMsgID = value
} }
if i.Flags.Has(0) { if i.Flags.Has(0) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field top_msg_id: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field top_msg_id: %w", err)
} }
i.TopMsgID = value i.TopMsgID = value
} }
if i.Flags.Has(1) { if i.Flags.Has(1) {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field reply_to_peer_id: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field reply_to_peer_id: %w", err)
} }
i.ReplyToPeerID = value i.ReplyToPeerID = value
} }
if i.Flags.Has(2) { if i.Flags.Has(2) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field quote_text: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field quote_text: %w", err)
} }
i.QuoteText = value i.QuoteText = value
} }
if i.Flags.Has(3) { if i.Flags.Has(3) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field quote_entities: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field quote_entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -410,7 +433,7 @@ func (i *InputReplyToMessage) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field quote_entities: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field quote_entities: %w", err)
} }
i.QuoteEntities = append(i.QuoteEntities, value) i.QuoteEntities = append(i.QuoteEntities, value)
} }
@@ -418,24 +441,31 @@ func (i *InputReplyToMessage) DecodeBare(b *bin.Buffer) error {
if i.Flags.Has(4) { if i.Flags.Has(4) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field quote_offset: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field quote_offset: %w", err)
} }
i.QuoteOffset = value i.QuoteOffset = value
} }
if i.Flags.Has(5) { if i.Flags.Has(5) {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field monoforum_peer_id: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field monoforum_peer_id: %w", err)
} }
i.MonoforumPeerID = value i.MonoforumPeerID = value
} }
if i.Flags.Has(6) { if i.Flags.Has(6) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#869fbe10: field todo_item_id: %w", err) return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field todo_item_id: %w", err)
} }
i.TodoItemID = value i.TodoItemID = value
} }
if i.Flags.Has(7) {
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode inputReplyToMessage#3bd4b7c2: field poll_option: %w", err)
}
i.PollOption = value
}
return nil return nil
} }
@@ -573,6 +603,24 @@ func (i *InputReplyToMessage) GetTodoItemID() (value int, ok bool) {
return i.TodoItemID, true return i.TodoItemID, true
} }
// SetPollOption sets value of PollOption conditional field.
func (i *InputReplyToMessage) SetPollOption(value []byte) {
i.Flags.Set(7)
i.PollOption = value
}
// GetPollOption returns value of PollOption conditional field and
// boolean which is true if field was set.
func (i *InputReplyToMessage) GetPollOption() (value []byte, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(7) {
return value, false
}
return i.PollOption, true
}
// MapQuoteEntities returns field QuoteEntities wrapped in MessageEntityClassArray helper. // MapQuoteEntities returns field QuoteEntities wrapped in MessageEntityClassArray helper.
func (i *InputReplyToMessage) MapQuoteEntities() (value MessageEntityClassArray, ok bool) { func (i *InputReplyToMessage) MapQuoteEntities() (value MessageEntityClassArray, ok bool) {
if !i.Flags.Has(3) { if !i.Flags.Has(3) {
@@ -905,7 +953,7 @@ const InputReplyToClassName = "InputReplyTo"
// panic(err) // panic(err)
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.InputReplyToMessage: // inputReplyToMessage#869fbe10 // case *tg.InputReplyToMessage: // inputReplyToMessage#3bd4b7c2
// case *tg.InputReplyToStory: // inputReplyToStory#5881323a // case *tg.InputReplyToStory: // inputReplyToStory#5881323a
// case *tg.InputReplyToMonoForum: // inputReplyToMonoForum#69d66c45 // case *tg.InputReplyToMonoForum: // inputReplyToMonoForum#69d66c45
// default: panic(v) // default: panic(v)
@@ -937,7 +985,7 @@ func DecodeInputReplyTo(buf *bin.Buffer) (InputReplyToClass, error) {
} }
switch id { switch id {
case InputReplyToMessageTypeID: case InputReplyToMessageTypeID:
// Decoding inputReplyToMessage#869fbe10. // Decoding inputReplyToMessage#3bd4b7c2.
v := InputReplyToMessage{} v := InputReplyToMessage{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputReplyToClass: %w", err) return nil, fmt.Errorf("unable to decode InputReplyToClass: %w", err)
+436
View File
@@ -14774,6 +14774,418 @@ func (m *MessageActionNoForwardsRequest) GetNewValue() (value bool) {
return m.NewValue return m.NewValue
} }
// MessageActionPollAppendAnswer represents TL type `messageActionPollAppendAnswer#9da1cd6c`.
//
// See https://core.telegram.org/constructor/messageActionPollAppendAnswer for reference.
type MessageActionPollAppendAnswer struct {
// Answer field of MessageActionPollAppendAnswer.
Answer PollAnswerClass
}
// MessageActionPollAppendAnswerTypeID is TL type id of MessageActionPollAppendAnswer.
const MessageActionPollAppendAnswerTypeID = 0x9da1cd6c
// construct implements constructor of MessageActionClass.
func (m MessageActionPollAppendAnswer) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPollAppendAnswer.
var (
_ bin.Encoder = &MessageActionPollAppendAnswer{}
_ bin.Decoder = &MessageActionPollAppendAnswer{}
_ bin.BareEncoder = &MessageActionPollAppendAnswer{}
_ bin.BareDecoder = &MessageActionPollAppendAnswer{}
_ MessageActionClass = &MessageActionPollAppendAnswer{}
)
func (m *MessageActionPollAppendAnswer) Zero() bool {
if m == nil {
return true
}
if !(m.Answer == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPollAppendAnswer) String() string {
if m == nil {
return "MessageActionPollAppendAnswer(nil)"
}
type Alias MessageActionPollAppendAnswer
return fmt.Sprintf("MessageActionPollAppendAnswer%+v", Alias(*m))
}
// FillFrom fills MessageActionPollAppendAnswer from given interface.
func (m *MessageActionPollAppendAnswer) FillFrom(from interface {
GetAnswer() (value PollAnswerClass)
}) {
m.Answer = from.GetAnswer()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPollAppendAnswer) TypeID() uint32 {
return MessageActionPollAppendAnswerTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPollAppendAnswer) TypeName() string {
return "messageActionPollAppendAnswer"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPollAppendAnswer) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPollAppendAnswer",
ID: MessageActionPollAppendAnswerTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Answer",
SchemaName: "answer",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionPollAppendAnswer) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPollAppendAnswer#9da1cd6c as nil")
}
b.PutID(MessageActionPollAppendAnswerTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPollAppendAnswer) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPollAppendAnswer#9da1cd6c as nil")
}
if m.Answer == nil {
return fmt.Errorf("unable to encode messageActionPollAppendAnswer#9da1cd6c: field answer is nil")
}
if err := m.Answer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPollAppendAnswer#9da1cd6c: field answer: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPollAppendAnswer) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPollAppendAnswer#9da1cd6c to nil")
}
if err := b.ConsumeID(MessageActionPollAppendAnswerTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPollAppendAnswer#9da1cd6c: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPollAppendAnswer) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPollAppendAnswer#9da1cd6c to nil")
}
{
value, err := DecodePollAnswer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionPollAppendAnswer#9da1cd6c: field answer: %w", err)
}
m.Answer = value
}
return nil
}
// GetAnswer returns value of Answer field.
func (m *MessageActionPollAppendAnswer) GetAnswer() (value PollAnswerClass) {
if m == nil {
return
}
return m.Answer
}
// MessageActionPollDeleteAnswer represents TL type `messageActionPollDeleteAnswer#399674dc`.
//
// See https://core.telegram.org/constructor/messageActionPollDeleteAnswer for reference.
type MessageActionPollDeleteAnswer struct {
// Answer field of MessageActionPollDeleteAnswer.
Answer PollAnswerClass
}
// MessageActionPollDeleteAnswerTypeID is TL type id of MessageActionPollDeleteAnswer.
const MessageActionPollDeleteAnswerTypeID = 0x399674dc
// construct implements constructor of MessageActionClass.
func (m MessageActionPollDeleteAnswer) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPollDeleteAnswer.
var (
_ bin.Encoder = &MessageActionPollDeleteAnswer{}
_ bin.Decoder = &MessageActionPollDeleteAnswer{}
_ bin.BareEncoder = &MessageActionPollDeleteAnswer{}
_ bin.BareDecoder = &MessageActionPollDeleteAnswer{}
_ MessageActionClass = &MessageActionPollDeleteAnswer{}
)
func (m *MessageActionPollDeleteAnswer) Zero() bool {
if m == nil {
return true
}
if !(m.Answer == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPollDeleteAnswer) String() string {
if m == nil {
return "MessageActionPollDeleteAnswer(nil)"
}
type Alias MessageActionPollDeleteAnswer
return fmt.Sprintf("MessageActionPollDeleteAnswer%+v", Alias(*m))
}
// FillFrom fills MessageActionPollDeleteAnswer from given interface.
func (m *MessageActionPollDeleteAnswer) FillFrom(from interface {
GetAnswer() (value PollAnswerClass)
}) {
m.Answer = from.GetAnswer()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPollDeleteAnswer) TypeID() uint32 {
return MessageActionPollDeleteAnswerTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPollDeleteAnswer) TypeName() string {
return "messageActionPollDeleteAnswer"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPollDeleteAnswer) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPollDeleteAnswer",
ID: MessageActionPollDeleteAnswerTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Answer",
SchemaName: "answer",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionPollDeleteAnswer) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPollDeleteAnswer#399674dc as nil")
}
b.PutID(MessageActionPollDeleteAnswerTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPollDeleteAnswer) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPollDeleteAnswer#399674dc as nil")
}
if m.Answer == nil {
return fmt.Errorf("unable to encode messageActionPollDeleteAnswer#399674dc: field answer is nil")
}
if err := m.Answer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPollDeleteAnswer#399674dc: field answer: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPollDeleteAnswer) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPollDeleteAnswer#399674dc to nil")
}
if err := b.ConsumeID(MessageActionPollDeleteAnswerTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPollDeleteAnswer#399674dc: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPollDeleteAnswer) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPollDeleteAnswer#399674dc to nil")
}
{
value, err := DecodePollAnswer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionPollDeleteAnswer#399674dc: field answer: %w", err)
}
m.Answer = value
}
return nil
}
// GetAnswer returns value of Answer field.
func (m *MessageActionPollDeleteAnswer) GetAnswer() (value PollAnswerClass) {
if m == nil {
return
}
return m.Answer
}
// MessageActionManagedBotCreated represents TL type `messageActionManagedBotCreated#16605e3e`.
//
// See https://core.telegram.org/constructor/messageActionManagedBotCreated for reference.
type MessageActionManagedBotCreated struct {
// BotID field of MessageActionManagedBotCreated.
BotID int64
}
// MessageActionManagedBotCreatedTypeID is TL type id of MessageActionManagedBotCreated.
const MessageActionManagedBotCreatedTypeID = 0x16605e3e
// construct implements constructor of MessageActionClass.
func (m MessageActionManagedBotCreated) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionManagedBotCreated.
var (
_ bin.Encoder = &MessageActionManagedBotCreated{}
_ bin.Decoder = &MessageActionManagedBotCreated{}
_ bin.BareEncoder = &MessageActionManagedBotCreated{}
_ bin.BareDecoder = &MessageActionManagedBotCreated{}
_ MessageActionClass = &MessageActionManagedBotCreated{}
)
func (m *MessageActionManagedBotCreated) Zero() bool {
if m == nil {
return true
}
if !(m.BotID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionManagedBotCreated) String() string {
if m == nil {
return "MessageActionManagedBotCreated(nil)"
}
type Alias MessageActionManagedBotCreated
return fmt.Sprintf("MessageActionManagedBotCreated%+v", Alias(*m))
}
// FillFrom fills MessageActionManagedBotCreated from given interface.
func (m *MessageActionManagedBotCreated) FillFrom(from interface {
GetBotID() (value int64)
}) {
m.BotID = from.GetBotID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionManagedBotCreated) TypeID() uint32 {
return MessageActionManagedBotCreatedTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionManagedBotCreated) TypeName() string {
return "messageActionManagedBotCreated"
}
// TypeInfo returns info about TL type.
func (m *MessageActionManagedBotCreated) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionManagedBotCreated",
ID: MessageActionManagedBotCreatedTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "BotID",
SchemaName: "bot_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionManagedBotCreated) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionManagedBotCreated#16605e3e as nil")
}
b.PutID(MessageActionManagedBotCreatedTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionManagedBotCreated) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionManagedBotCreated#16605e3e as nil")
}
b.PutLong(m.BotID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionManagedBotCreated) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionManagedBotCreated#16605e3e to nil")
}
if err := b.ConsumeID(MessageActionManagedBotCreatedTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionManagedBotCreated#16605e3e: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionManagedBotCreated) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionManagedBotCreated#16605e3e to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionManagedBotCreated#16605e3e: field bot_id: %w", err)
}
m.BotID = value
}
return nil
}
// GetBotID returns value of BotID field.
func (m *MessageActionManagedBotCreated) GetBotID() (value int64) {
if m == nil {
return
}
return m.BotID
}
// MessageActionClassName is schema name of MessageActionClass. // MessageActionClassName is schema name of MessageActionClass.
const MessageActionClassName = "MessageAction" const MessageActionClassName = "MessageAction"
@@ -14852,6 +15264,9 @@ const MessageActionClassName = "MessageAction"
// case *tg.MessageActionChangeCreator: // messageActionChangeCreator#e188503b // case *tg.MessageActionChangeCreator: // messageActionChangeCreator#e188503b
// case *tg.MessageActionNoForwardsToggle: // messageActionNoForwardsToggle#bf7d6572 // case *tg.MessageActionNoForwardsToggle: // messageActionNoForwardsToggle#bf7d6572
// case *tg.MessageActionNoForwardsRequest: // messageActionNoForwardsRequest#3e2793ba // case *tg.MessageActionNoForwardsRequest: // messageActionNoForwardsRequest#3e2793ba
// case *tg.MessageActionPollAppendAnswer: // messageActionPollAppendAnswer#9da1cd6c
// case *tg.MessageActionPollDeleteAnswer: // messageActionPollDeleteAnswer#399674dc
// case *tg.MessageActionManagedBotCreated: // messageActionManagedBotCreated#16605e3e
// default: panic(v) // default: panic(v)
// } // }
type MessageActionClass interface { type MessageActionClass interface {
@@ -15328,6 +15743,27 @@ func DecodeMessageAction(buf *bin.Buffer) (MessageActionClass, error) {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err) return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
} }
return &v, nil return &v, nil
case MessageActionPollAppendAnswerTypeID:
// Decoding messageActionPollAppendAnswer#9da1cd6c.
v := MessageActionPollAppendAnswer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPollDeleteAnswerTypeID:
// Decoding messageActionPollDeleteAnswer#399674dc.
v := MessageActionPollDeleteAnswer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionManagedBotCreatedTypeID:
// Decoding messageActionManagedBotCreated#16605e3e.
v := MessageActionManagedBotCreated{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
default: default:
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", bin.NewUnexpectedID(id)) return nil, fmt.Errorf("unable to decode MessageActionClass: %w", bin.NewUnexpectedID(id))
} }
+285
View File
@@ -857,6 +857,45 @@ func (s MessageActionClassArray) AsMessageActionNoForwardsRequest() (to MessageA
return to return to
} }
// AsMessageActionPollAppendAnswer returns copy with only MessageActionPollAppendAnswer constructors.
func (s MessageActionClassArray) AsMessageActionPollAppendAnswer() (to MessageActionPollAppendAnswerArray) {
for _, elem := range s {
value, ok := elem.(*MessageActionPollAppendAnswer)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageActionPollDeleteAnswer returns copy with only MessageActionPollDeleteAnswer constructors.
func (s MessageActionClassArray) AsMessageActionPollDeleteAnswer() (to MessageActionPollDeleteAnswerArray) {
for _, elem := range s {
value, ok := elem.(*MessageActionPollDeleteAnswer)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageActionManagedBotCreated returns copy with only MessageActionManagedBotCreated constructors.
func (s MessageActionClassArray) AsMessageActionManagedBotCreated() (to MessageActionManagedBotCreatedArray) {
for _, elem := range s {
value, ok := elem.(*MessageActionManagedBotCreated)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// MessageActionChatCreateArray is adapter for slice of MessageActionChatCreate. // MessageActionChatCreateArray is adapter for slice of MessageActionChatCreate.
type MessageActionChatCreateArray []MessageActionChatCreate type MessageActionChatCreateArray []MessageActionChatCreate
@@ -5530,3 +5569,249 @@ func (s *MessageActionNoForwardsRequestArray) Pop() (v MessageActionNoForwardsRe
return v, true return v, true
} }
// MessageActionPollAppendAnswerArray is adapter for slice of MessageActionPollAppendAnswer.
type MessageActionPollAppendAnswerArray []MessageActionPollAppendAnswer
// Sort sorts slice of MessageActionPollAppendAnswer.
func (s MessageActionPollAppendAnswerArray) Sort(less func(a, b MessageActionPollAppendAnswer) bool) MessageActionPollAppendAnswerArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageActionPollAppendAnswer.
func (s MessageActionPollAppendAnswerArray) SortStable(less func(a, b MessageActionPollAppendAnswer) bool) MessageActionPollAppendAnswerArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageActionPollAppendAnswer.
func (s MessageActionPollAppendAnswerArray) Retain(keep func(x MessageActionPollAppendAnswer) bool) MessageActionPollAppendAnswerArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageActionPollAppendAnswerArray) First() (v MessageActionPollAppendAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageActionPollAppendAnswerArray) Last() (v MessageActionPollAppendAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageActionPollAppendAnswerArray) PopFirst() (v MessageActionPollAppendAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageActionPollAppendAnswer
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageActionPollAppendAnswerArray) Pop() (v MessageActionPollAppendAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// MessageActionPollDeleteAnswerArray is adapter for slice of MessageActionPollDeleteAnswer.
type MessageActionPollDeleteAnswerArray []MessageActionPollDeleteAnswer
// Sort sorts slice of MessageActionPollDeleteAnswer.
func (s MessageActionPollDeleteAnswerArray) Sort(less func(a, b MessageActionPollDeleteAnswer) bool) MessageActionPollDeleteAnswerArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageActionPollDeleteAnswer.
func (s MessageActionPollDeleteAnswerArray) SortStable(less func(a, b MessageActionPollDeleteAnswer) bool) MessageActionPollDeleteAnswerArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageActionPollDeleteAnswer.
func (s MessageActionPollDeleteAnswerArray) Retain(keep func(x MessageActionPollDeleteAnswer) bool) MessageActionPollDeleteAnswerArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageActionPollDeleteAnswerArray) First() (v MessageActionPollDeleteAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageActionPollDeleteAnswerArray) Last() (v MessageActionPollDeleteAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageActionPollDeleteAnswerArray) PopFirst() (v MessageActionPollDeleteAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageActionPollDeleteAnswer
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageActionPollDeleteAnswerArray) Pop() (v MessageActionPollDeleteAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// MessageActionManagedBotCreatedArray is adapter for slice of MessageActionManagedBotCreated.
type MessageActionManagedBotCreatedArray []MessageActionManagedBotCreated
// Sort sorts slice of MessageActionManagedBotCreated.
func (s MessageActionManagedBotCreatedArray) Sort(less func(a, b MessageActionManagedBotCreated) bool) MessageActionManagedBotCreatedArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageActionManagedBotCreated.
func (s MessageActionManagedBotCreatedArray) SortStable(less func(a, b MessageActionManagedBotCreated) bool) MessageActionManagedBotCreatedArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageActionManagedBotCreated.
func (s MessageActionManagedBotCreatedArray) Retain(keep func(x MessageActionManagedBotCreated) bool) MessageActionManagedBotCreatedArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageActionManagedBotCreatedArray) First() (v MessageActionManagedBotCreated, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageActionManagedBotCreatedArray) Last() (v MessageActionManagedBotCreated, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageActionManagedBotCreatedArray) PopFirst() (v MessageActionManagedBotCreated, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageActionManagedBotCreated
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageActionManagedBotCreatedArray) Pop() (v MessageActionManagedBotCreated, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
+534
View File
@@ -4217,6 +4217,516 @@ func (m *MessageEntityFormattedDate) GetDate() (value int) {
return m.Date return m.Date
} }
// MessageEntityDiffInsert represents TL type `messageEntityDiffInsert#71777116`.
//
// See https://core.telegram.org/constructor/messageEntityDiffInsert for reference.
type MessageEntityDiffInsert struct {
// Offset field of MessageEntityDiffInsert.
Offset int
// Length field of MessageEntityDiffInsert.
Length int
}
// MessageEntityDiffInsertTypeID is TL type id of MessageEntityDiffInsert.
const MessageEntityDiffInsertTypeID = 0x71777116
// construct implements constructor of MessageEntityClass.
func (m MessageEntityDiffInsert) construct() MessageEntityClass { return &m }
// Ensuring interfaces in compile-time for MessageEntityDiffInsert.
var (
_ bin.Encoder = &MessageEntityDiffInsert{}
_ bin.Decoder = &MessageEntityDiffInsert{}
_ bin.BareEncoder = &MessageEntityDiffInsert{}
_ bin.BareDecoder = &MessageEntityDiffInsert{}
_ MessageEntityClass = &MessageEntityDiffInsert{}
)
func (m *MessageEntityDiffInsert) Zero() bool {
if m == nil {
return true
}
if !(m.Offset == 0) {
return false
}
if !(m.Length == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageEntityDiffInsert) String() string {
if m == nil {
return "MessageEntityDiffInsert(nil)"
}
type Alias MessageEntityDiffInsert
return fmt.Sprintf("MessageEntityDiffInsert%+v", Alias(*m))
}
// FillFrom fills MessageEntityDiffInsert from given interface.
func (m *MessageEntityDiffInsert) FillFrom(from interface {
GetOffset() (value int)
GetLength() (value int)
}) {
m.Offset = from.GetOffset()
m.Length = from.GetLength()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageEntityDiffInsert) TypeID() uint32 {
return MessageEntityDiffInsertTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageEntityDiffInsert) TypeName() string {
return "messageEntityDiffInsert"
}
// TypeInfo returns info about TL type.
func (m *MessageEntityDiffInsert) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageEntityDiffInsert",
ID: MessageEntityDiffInsertTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Offset",
SchemaName: "offset",
},
{
Name: "Length",
SchemaName: "length",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageEntityDiffInsert) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffInsert#71777116 as nil")
}
b.PutID(MessageEntityDiffInsertTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageEntityDiffInsert) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffInsert#71777116 as nil")
}
b.PutInt(m.Offset)
b.PutInt(m.Length)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageEntityDiffInsert) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffInsert#71777116 to nil")
}
if err := b.ConsumeID(MessageEntityDiffInsertTypeID); err != nil {
return fmt.Errorf("unable to decode messageEntityDiffInsert#71777116: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageEntityDiffInsert) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffInsert#71777116 to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffInsert#71777116: field offset: %w", err)
}
m.Offset = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffInsert#71777116: field length: %w", err)
}
m.Length = value
}
return nil
}
// GetOffset returns value of Offset field.
func (m *MessageEntityDiffInsert) GetOffset() (value int) {
if m == nil {
return
}
return m.Offset
}
// GetLength returns value of Length field.
func (m *MessageEntityDiffInsert) GetLength() (value int) {
if m == nil {
return
}
return m.Length
}
// MessageEntityDiffReplace represents TL type `messageEntityDiffReplace#c6c1e5a7`.
//
// See https://core.telegram.org/constructor/messageEntityDiffReplace for reference.
type MessageEntityDiffReplace struct {
// Offset field of MessageEntityDiffReplace.
Offset int
// Length field of MessageEntityDiffReplace.
Length int
// OldText field of MessageEntityDiffReplace.
OldText string
}
// MessageEntityDiffReplaceTypeID is TL type id of MessageEntityDiffReplace.
const MessageEntityDiffReplaceTypeID = 0xc6c1e5a7
// construct implements constructor of MessageEntityClass.
func (m MessageEntityDiffReplace) construct() MessageEntityClass { return &m }
// Ensuring interfaces in compile-time for MessageEntityDiffReplace.
var (
_ bin.Encoder = &MessageEntityDiffReplace{}
_ bin.Decoder = &MessageEntityDiffReplace{}
_ bin.BareEncoder = &MessageEntityDiffReplace{}
_ bin.BareDecoder = &MessageEntityDiffReplace{}
_ MessageEntityClass = &MessageEntityDiffReplace{}
)
func (m *MessageEntityDiffReplace) Zero() bool {
if m == nil {
return true
}
if !(m.Offset == 0) {
return false
}
if !(m.Length == 0) {
return false
}
if !(m.OldText == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageEntityDiffReplace) String() string {
if m == nil {
return "MessageEntityDiffReplace(nil)"
}
type Alias MessageEntityDiffReplace
return fmt.Sprintf("MessageEntityDiffReplace%+v", Alias(*m))
}
// FillFrom fills MessageEntityDiffReplace from given interface.
func (m *MessageEntityDiffReplace) FillFrom(from interface {
GetOffset() (value int)
GetLength() (value int)
GetOldText() (value string)
}) {
m.Offset = from.GetOffset()
m.Length = from.GetLength()
m.OldText = from.GetOldText()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageEntityDiffReplace) TypeID() uint32 {
return MessageEntityDiffReplaceTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageEntityDiffReplace) TypeName() string {
return "messageEntityDiffReplace"
}
// TypeInfo returns info about TL type.
func (m *MessageEntityDiffReplace) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageEntityDiffReplace",
ID: MessageEntityDiffReplaceTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Offset",
SchemaName: "offset",
},
{
Name: "Length",
SchemaName: "length",
},
{
Name: "OldText",
SchemaName: "old_text",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageEntityDiffReplace) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffReplace#c6c1e5a7 as nil")
}
b.PutID(MessageEntityDiffReplaceTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageEntityDiffReplace) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffReplace#c6c1e5a7 as nil")
}
b.PutInt(m.Offset)
b.PutInt(m.Length)
b.PutString(m.OldText)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageEntityDiffReplace) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffReplace#c6c1e5a7 to nil")
}
if err := b.ConsumeID(MessageEntityDiffReplaceTypeID); err != nil {
return fmt.Errorf("unable to decode messageEntityDiffReplace#c6c1e5a7: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageEntityDiffReplace) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffReplace#c6c1e5a7 to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffReplace#c6c1e5a7: field offset: %w", err)
}
m.Offset = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffReplace#c6c1e5a7: field length: %w", err)
}
m.Length = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffReplace#c6c1e5a7: field old_text: %w", err)
}
m.OldText = value
}
return nil
}
// GetOffset returns value of Offset field.
func (m *MessageEntityDiffReplace) GetOffset() (value int) {
if m == nil {
return
}
return m.Offset
}
// GetLength returns value of Length field.
func (m *MessageEntityDiffReplace) GetLength() (value int) {
if m == nil {
return
}
return m.Length
}
// GetOldText returns value of OldText field.
func (m *MessageEntityDiffReplace) GetOldText() (value string) {
if m == nil {
return
}
return m.OldText
}
// MessageEntityDiffDelete represents TL type `messageEntityDiffDelete#652c1c5`.
//
// See https://core.telegram.org/constructor/messageEntityDiffDelete for reference.
type MessageEntityDiffDelete struct {
// Offset field of MessageEntityDiffDelete.
Offset int
// Length field of MessageEntityDiffDelete.
Length int
}
// MessageEntityDiffDeleteTypeID is TL type id of MessageEntityDiffDelete.
const MessageEntityDiffDeleteTypeID = 0x652c1c5
// construct implements constructor of MessageEntityClass.
func (m MessageEntityDiffDelete) construct() MessageEntityClass { return &m }
// Ensuring interfaces in compile-time for MessageEntityDiffDelete.
var (
_ bin.Encoder = &MessageEntityDiffDelete{}
_ bin.Decoder = &MessageEntityDiffDelete{}
_ bin.BareEncoder = &MessageEntityDiffDelete{}
_ bin.BareDecoder = &MessageEntityDiffDelete{}
_ MessageEntityClass = &MessageEntityDiffDelete{}
)
func (m *MessageEntityDiffDelete) Zero() bool {
if m == nil {
return true
}
if !(m.Offset == 0) {
return false
}
if !(m.Length == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageEntityDiffDelete) String() string {
if m == nil {
return "MessageEntityDiffDelete(nil)"
}
type Alias MessageEntityDiffDelete
return fmt.Sprintf("MessageEntityDiffDelete%+v", Alias(*m))
}
// FillFrom fills MessageEntityDiffDelete from given interface.
func (m *MessageEntityDiffDelete) FillFrom(from interface {
GetOffset() (value int)
GetLength() (value int)
}) {
m.Offset = from.GetOffset()
m.Length = from.GetLength()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageEntityDiffDelete) TypeID() uint32 {
return MessageEntityDiffDeleteTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageEntityDiffDelete) TypeName() string {
return "messageEntityDiffDelete"
}
// TypeInfo returns info about TL type.
func (m *MessageEntityDiffDelete) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageEntityDiffDelete",
ID: MessageEntityDiffDeleteTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Offset",
SchemaName: "offset",
},
{
Name: "Length",
SchemaName: "length",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageEntityDiffDelete) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffDelete#652c1c5 as nil")
}
b.PutID(MessageEntityDiffDeleteTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageEntityDiffDelete) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityDiffDelete#652c1c5 as nil")
}
b.PutInt(m.Offset)
b.PutInt(m.Length)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageEntityDiffDelete) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffDelete#652c1c5 to nil")
}
if err := b.ConsumeID(MessageEntityDiffDeleteTypeID); err != nil {
return fmt.Errorf("unable to decode messageEntityDiffDelete#652c1c5: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageEntityDiffDelete) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityDiffDelete#652c1c5 to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffDelete#652c1c5: field offset: %w", err)
}
m.Offset = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityDiffDelete#652c1c5: field length: %w", err)
}
m.Length = value
}
return nil
}
// GetOffset returns value of Offset field.
func (m *MessageEntityDiffDelete) GetOffset() (value int) {
if m == nil {
return
}
return m.Offset
}
// GetLength returns value of Length field.
func (m *MessageEntityDiffDelete) GetLength() (value int) {
if m == nil {
return
}
return m.Length
}
// MessageEntityClassName is schema name of MessageEntityClass. // MessageEntityClassName is schema name of MessageEntityClass.
const MessageEntityClassName = "MessageEntity" const MessageEntityClassName = "MessageEntity"
@@ -4253,6 +4763,9 @@ const MessageEntityClassName = "MessageEntity"
// case *tg.MessageEntityCustomEmoji: // messageEntityCustomEmoji#c8cf05f8 // case *tg.MessageEntityCustomEmoji: // messageEntityCustomEmoji#c8cf05f8
// case *tg.MessageEntityBlockquote: // messageEntityBlockquote#f1ccaaac // case *tg.MessageEntityBlockquote: // messageEntityBlockquote#f1ccaaac
// case *tg.MessageEntityFormattedDate: // messageEntityFormattedDate#904ac7c7 // case *tg.MessageEntityFormattedDate: // messageEntityFormattedDate#904ac7c7
// case *tg.MessageEntityDiffInsert: // messageEntityDiffInsert#71777116
// case *tg.MessageEntityDiffReplace: // messageEntityDiffReplace#c6c1e5a7
// case *tg.MessageEntityDiffDelete: // messageEntityDiffDelete#652c1c5
// default: panic(v) // default: panic(v)
// } // }
type MessageEntityClass interface { type MessageEntityClass interface {
@@ -4447,6 +4960,27 @@ func DecodeMessageEntity(buf *bin.Buffer) (MessageEntityClass, error) {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err) return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
} }
return &v, nil return &v, nil
case MessageEntityDiffInsertTypeID:
// Decoding messageEntityDiffInsert#71777116.
v := MessageEntityDiffInsert{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
}
return &v, nil
case MessageEntityDiffReplaceTypeID:
// Decoding messageEntityDiffReplace#c6c1e5a7.
v := MessageEntityDiffReplace{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
}
return &v, nil
case MessageEntityDiffDeleteTypeID:
// Decoding messageEntityDiffDelete#652c1c5.
v := MessageEntityDiffDelete{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
}
return &v, nil
default: default:
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", bin.NewUnexpectedID(id)) return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", bin.NewUnexpectedID(id))
} }
+285
View File
@@ -402,6 +402,45 @@ func (s MessageEntityClassArray) AsMessageEntityFormattedDate() (to MessageEntit
return to return to
} }
// AsMessageEntityDiffInsert returns copy with only MessageEntityDiffInsert constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffInsert() (to MessageEntityDiffInsertArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffInsert)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityDiffReplace returns copy with only MessageEntityDiffReplace constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffReplace() (to MessageEntityDiffReplaceArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffReplace)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityDiffDelete returns copy with only MessageEntityDiffDelete constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffDelete() (to MessageEntityDiffDeleteArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffDelete)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// MessageEntityUnknownArray is adapter for slice of MessageEntityUnknown. // MessageEntityUnknownArray is adapter for slice of MessageEntityUnknown.
type MessageEntityUnknownArray []MessageEntityUnknown type MessageEntityUnknownArray []MessageEntityUnknown
@@ -2219,3 +2258,249 @@ func (s MessageEntityFormattedDateArray) SortStableByDate() MessageEntityFormatt
return a.GetDate() < b.GetDate() return a.GetDate() < b.GetDate()
}) })
} }
// MessageEntityDiffInsertArray is adapter for slice of MessageEntityDiffInsert.
type MessageEntityDiffInsertArray []MessageEntityDiffInsert
// Sort sorts slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) Sort(less func(a, b MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) SortStable(less func(a, b MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) Retain(keep func(x MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageEntityDiffInsertArray) First() (v MessageEntityDiffInsert, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffInsertArray) Last() (v MessageEntityDiffInsert, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageEntityDiffInsertArray) PopFirst() (v MessageEntityDiffInsert, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageEntityDiffInsert
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageEntityDiffInsertArray) Pop() (v MessageEntityDiffInsert, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// MessageEntityDiffReplaceArray is adapter for slice of MessageEntityDiffReplace.
type MessageEntityDiffReplaceArray []MessageEntityDiffReplace
// Sort sorts slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) Sort(less func(a, b MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) SortStable(less func(a, b MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) Retain(keep func(x MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageEntityDiffReplaceArray) First() (v MessageEntityDiffReplace, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffReplaceArray) Last() (v MessageEntityDiffReplace, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageEntityDiffReplaceArray) PopFirst() (v MessageEntityDiffReplace, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageEntityDiffReplace
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageEntityDiffReplaceArray) Pop() (v MessageEntityDiffReplace, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// MessageEntityDiffDeleteArray is adapter for slice of MessageEntityDiffDelete.
type MessageEntityDiffDeleteArray []MessageEntityDiffDelete
// Sort sorts slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) Sort(less func(a, b MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) SortStable(less func(a, b MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) Retain(keep func(x MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s MessageEntityDiffDeleteArray) First() (v MessageEntityDiffDelete, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffDeleteArray) Last() (v MessageEntityDiffDelete, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *MessageEntityDiffDeleteArray) PopFirst() (v MessageEntityDiffDelete, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero MessageEntityDiffDelete
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *MessageEntityDiffDeleteArray) Pop() (v MessageEntityDiffDelete, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
+187 -28
View File
@@ -133,7 +133,7 @@ func (m *MessageMediaEmpty) DecodeBare(b *bin.Buffer) error {
return nil return nil
} }
// MessageMediaPhoto represents TL type `messageMediaPhoto#695150d7`. // MessageMediaPhoto represents TL type `messageMediaPhoto#e216eb63`.
// Attached photo. // Attached photo.
// //
// See https://core.telegram.org/constructor/messageMediaPhoto for reference. // See https://core.telegram.org/constructor/messageMediaPhoto for reference.
@@ -145,6 +145,8 @@ type MessageMediaPhoto struct {
Flags bin.Fields Flags bin.Fields
// Whether this media should be hidden behind a spoiler warning // Whether this media should be hidden behind a spoiler warning
Spoiler bool Spoiler bool
// LivePhoto field of MessageMediaPhoto.
LivePhoto bool
// Photo // Photo
// //
// Use SetPhoto and GetPhoto helpers. // Use SetPhoto and GetPhoto helpers.
@@ -153,10 +155,14 @@ type MessageMediaPhoto struct {
// //
// Use SetTTLSeconds and GetTTLSeconds helpers. // Use SetTTLSeconds and GetTTLSeconds helpers.
TTLSeconds int TTLSeconds int
// Video field of MessageMediaPhoto.
//
// Use SetVideo and GetVideo helpers.
Video DocumentClass
} }
// MessageMediaPhotoTypeID is TL type id of MessageMediaPhoto. // MessageMediaPhotoTypeID is TL type id of MessageMediaPhoto.
const MessageMediaPhotoTypeID = 0x695150d7 const MessageMediaPhotoTypeID = 0xe216eb63
// construct implements constructor of MessageMediaClass. // construct implements constructor of MessageMediaClass.
func (m MessageMediaPhoto) construct() MessageMediaClass { return &m } func (m MessageMediaPhoto) construct() MessageMediaClass { return &m }
@@ -181,12 +187,18 @@ func (m *MessageMediaPhoto) Zero() bool {
if !(m.Spoiler == false) { if !(m.Spoiler == false) {
return false return false
} }
if !(m.LivePhoto == false) {
return false
}
if !(m.Photo == nil) { if !(m.Photo == nil) {
return false return false
} }
if !(m.TTLSeconds == 0) { if !(m.TTLSeconds == 0) {
return false return false
} }
if !(m.Video == nil) {
return false
}
return true return true
} }
@@ -203,10 +215,13 @@ func (m *MessageMediaPhoto) String() string {
// FillFrom fills MessageMediaPhoto from given interface. // FillFrom fills MessageMediaPhoto from given interface.
func (m *MessageMediaPhoto) FillFrom(from interface { func (m *MessageMediaPhoto) FillFrom(from interface {
GetSpoiler() (value bool) GetSpoiler() (value bool)
GetLivePhoto() (value bool)
GetPhoto() (value PhotoClass, ok bool) GetPhoto() (value PhotoClass, ok bool)
GetTTLSeconds() (value int, ok bool) GetTTLSeconds() (value int, ok bool)
GetVideo() (value DocumentClass, ok bool)
}) { }) {
m.Spoiler = from.GetSpoiler() m.Spoiler = from.GetSpoiler()
m.LivePhoto = from.GetLivePhoto()
if val, ok := from.GetPhoto(); ok { if val, ok := from.GetPhoto(); ok {
m.Photo = val m.Photo = val
} }
@@ -215,6 +230,10 @@ func (m *MessageMediaPhoto) FillFrom(from interface {
m.TTLSeconds = val m.TTLSeconds = val
} }
if val, ok := from.GetVideo(); ok {
m.Video = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -245,6 +264,11 @@ func (m *MessageMediaPhoto) TypeInfo() tdp.Type {
SchemaName: "spoiler", SchemaName: "spoiler",
Null: !m.Flags.Has(3), Null: !m.Flags.Has(3),
}, },
{
Name: "LivePhoto",
SchemaName: "live_photo",
Null: !m.Flags.Has(4),
},
{ {
Name: "Photo", Name: "Photo",
SchemaName: "photo", SchemaName: "photo",
@@ -255,6 +279,11 @@ func (m *MessageMediaPhoto) TypeInfo() tdp.Type {
SchemaName: "ttl_seconds", SchemaName: "ttl_seconds",
Null: !m.Flags.Has(2), Null: !m.Flags.Has(2),
}, },
{
Name: "Video",
SchemaName: "video",
Null: !m.Flags.Has(4),
},
} }
return typ return typ
} }
@@ -264,18 +293,24 @@ func (m *MessageMediaPhoto) SetFlags() {
if !(m.Spoiler == false) { if !(m.Spoiler == false) {
m.Flags.Set(3) m.Flags.Set(3)
} }
if !(m.LivePhoto == false) {
m.Flags.Set(4)
}
if !(m.Photo == nil) { if !(m.Photo == nil) {
m.Flags.Set(0) m.Flags.Set(0)
} }
if !(m.TTLSeconds == 0) { if !(m.TTLSeconds == 0) {
m.Flags.Set(2) m.Flags.Set(2)
} }
if !(m.Video == nil) {
m.Flags.Set(4)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (m *MessageMediaPhoto) Encode(b *bin.Buffer) error { func (m *MessageMediaPhoto) Encode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageMediaPhoto#695150d7 as nil") return fmt.Errorf("can't encode messageMediaPhoto#e216eb63 as nil")
} }
b.PutID(MessageMediaPhotoTypeID) b.PutID(MessageMediaPhotoTypeID)
return m.EncodeBare(b) return m.EncodeBare(b)
@@ -284,33 +319,41 @@ func (m *MessageMediaPhoto) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (m *MessageMediaPhoto) EncodeBare(b *bin.Buffer) error { func (m *MessageMediaPhoto) EncodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageMediaPhoto#695150d7 as nil") return fmt.Errorf("can't encode messageMediaPhoto#e216eb63 as nil")
} }
m.SetFlags() m.SetFlags()
if err := m.Flags.Encode(b); err != nil { if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPhoto#695150d7: field flags: %w", err) return fmt.Errorf("unable to encode messageMediaPhoto#e216eb63: field flags: %w", err)
} }
if m.Flags.Has(0) { if m.Flags.Has(0) {
if m.Photo == nil { if m.Photo == nil {
return fmt.Errorf("unable to encode messageMediaPhoto#695150d7: field photo is nil") return fmt.Errorf("unable to encode messageMediaPhoto#e216eb63: field photo is nil")
} }
if err := m.Photo.Encode(b); err != nil { if err := m.Photo.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPhoto#695150d7: field photo: %w", err) return fmt.Errorf("unable to encode messageMediaPhoto#e216eb63: field photo: %w", err)
} }
} }
if m.Flags.Has(2) { if m.Flags.Has(2) {
b.PutInt(m.TTLSeconds) b.PutInt(m.TTLSeconds)
} }
if m.Flags.Has(4) {
if m.Video == nil {
return fmt.Errorf("unable to encode messageMediaPhoto#e216eb63: field video is nil")
}
if err := m.Video.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPhoto#e216eb63: field video: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (m *MessageMediaPhoto) Decode(b *bin.Buffer) error { func (m *MessageMediaPhoto) Decode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageMediaPhoto#695150d7 to nil") return fmt.Errorf("can't decode messageMediaPhoto#e216eb63 to nil")
} }
if err := b.ConsumeID(MessageMediaPhotoTypeID); err != nil { if err := b.ConsumeID(MessageMediaPhotoTypeID); err != nil {
return fmt.Errorf("unable to decode messageMediaPhoto#695150d7: %w", err) return fmt.Errorf("unable to decode messageMediaPhoto#e216eb63: %w", err)
} }
return m.DecodeBare(b) return m.DecodeBare(b)
} }
@@ -318,28 +361,36 @@ func (m *MessageMediaPhoto) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (m *MessageMediaPhoto) DecodeBare(b *bin.Buffer) error { func (m *MessageMediaPhoto) DecodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageMediaPhoto#695150d7 to nil") return fmt.Errorf("can't decode messageMediaPhoto#e216eb63 to nil")
} }
{ {
if err := m.Flags.Decode(b); err != nil { if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageMediaPhoto#695150d7: field flags: %w", err) return fmt.Errorf("unable to decode messageMediaPhoto#e216eb63: field flags: %w", err)
} }
} }
m.Spoiler = m.Flags.Has(3) m.Spoiler = m.Flags.Has(3)
m.LivePhoto = m.Flags.Has(4)
if m.Flags.Has(0) { if m.Flags.Has(0) {
value, err := DecodePhoto(b) value, err := DecodePhoto(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageMediaPhoto#695150d7: field photo: %w", err) return fmt.Errorf("unable to decode messageMediaPhoto#e216eb63: field photo: %w", err)
} }
m.Photo = value m.Photo = value
} }
if m.Flags.Has(2) { if m.Flags.Has(2) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageMediaPhoto#695150d7: field ttl_seconds: %w", err) return fmt.Errorf("unable to decode messageMediaPhoto#e216eb63: field ttl_seconds: %w", err)
} }
m.TTLSeconds = value m.TTLSeconds = value
} }
if m.Flags.Has(4) {
value, err := DecodeDocument(b)
if err != nil {
return fmt.Errorf("unable to decode messageMediaPhoto#e216eb63: field video: %w", err)
}
m.Video = value
}
return nil return nil
} }
@@ -362,6 +413,25 @@ func (m *MessageMediaPhoto) GetSpoiler() (value bool) {
return m.Flags.Has(3) return m.Flags.Has(3)
} }
// SetLivePhoto sets value of LivePhoto conditional field.
func (m *MessageMediaPhoto) SetLivePhoto(value bool) {
if value {
m.Flags.Set(4)
m.LivePhoto = true
} else {
m.Flags.Unset(4)
m.LivePhoto = false
}
}
// GetLivePhoto returns value of LivePhoto conditional field.
func (m *MessageMediaPhoto) GetLivePhoto() (value bool) {
if m == nil {
return
}
return m.Flags.Has(4)
}
// SetPhoto sets value of Photo conditional field. // SetPhoto sets value of Photo conditional field.
func (m *MessageMediaPhoto) SetPhoto(value PhotoClass) { func (m *MessageMediaPhoto) SetPhoto(value PhotoClass) {
m.Flags.Set(0) m.Flags.Set(0)
@@ -398,6 +468,24 @@ func (m *MessageMediaPhoto) GetTTLSeconds() (value int, ok bool) {
return m.TTLSeconds, true return m.TTLSeconds, true
} }
// SetVideo sets value of Video conditional field.
func (m *MessageMediaPhoto) SetVideo(value DocumentClass) {
m.Flags.Set(4)
m.Video = value
}
// GetVideo returns value of Video conditional field and
// boolean which is true if field was set.
func (m *MessageMediaPhoto) GetVideo() (value DocumentClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.Video, true
}
// MessageMediaGeo represents TL type `messageMediaGeo#56e0d474`. // MessageMediaGeo represents TL type `messageMediaGeo#56e0d474`.
// Attached map. // Attached map.
// //
@@ -2981,19 +3069,25 @@ func (m *MessageMediaGeoLive) GetProximityNotificationRadius() (value int, ok bo
return m.ProximityNotificationRadius, true return m.ProximityNotificationRadius, true
} }
// MessageMediaPoll represents TL type `messageMediaPoll#4bd6e798`. // MessageMediaPoll represents TL type `messageMediaPoll#773f4e66`.
// Poll // Poll
// //
// See https://core.telegram.org/constructor/messageMediaPoll for reference. // See https://core.telegram.org/constructor/messageMediaPoll for reference.
type MessageMediaPoll struct { type MessageMediaPoll struct {
// Flags field of MessageMediaPoll.
Flags bin.Fields
// The poll // The poll
Poll Poll Poll Poll
// The results of the poll // The results of the poll
Results PollResults Results PollResults
// AttachedMedia field of MessageMediaPoll.
//
// Use SetAttachedMedia and GetAttachedMedia helpers.
AttachedMedia MessageMediaClass
} }
// MessageMediaPollTypeID is TL type id of MessageMediaPoll. // MessageMediaPollTypeID is TL type id of MessageMediaPoll.
const MessageMediaPollTypeID = 0x4bd6e798 const MessageMediaPollTypeID = 0x773f4e66
// construct implements constructor of MessageMediaClass. // construct implements constructor of MessageMediaClass.
func (m MessageMediaPoll) construct() MessageMediaClass { return &m } func (m MessageMediaPoll) construct() MessageMediaClass { return &m }
@@ -3012,12 +3106,18 @@ func (m *MessageMediaPoll) Zero() bool {
if m == nil { if m == nil {
return true return true
} }
if !(m.Flags.Zero()) {
return false
}
if !(m.Poll.Zero()) { if !(m.Poll.Zero()) {
return false return false
} }
if !(m.Results.Zero()) { if !(m.Results.Zero()) {
return false return false
} }
if !(m.AttachedMedia == nil) {
return false
}
return true return true
} }
@@ -3035,9 +3135,14 @@ func (m *MessageMediaPoll) String() string {
func (m *MessageMediaPoll) FillFrom(from interface { func (m *MessageMediaPoll) FillFrom(from interface {
GetPoll() (value Poll) GetPoll() (value Poll)
GetResults() (value PollResults) GetResults() (value PollResults)
GetAttachedMedia() (value MessageMediaClass, ok bool)
}) { }) {
m.Poll = from.GetPoll() m.Poll = from.GetPoll()
m.Results = from.GetResults() m.Results = from.GetResults()
if val, ok := from.GetAttachedMedia(); ok {
m.AttachedMedia = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -3071,14 +3176,26 @@ func (m *MessageMediaPoll) TypeInfo() tdp.Type {
Name: "Results", Name: "Results",
SchemaName: "results", SchemaName: "results",
}, },
{
Name: "AttachedMedia",
SchemaName: "attached_media",
Null: !m.Flags.Has(0),
},
} }
return typ return typ
} }
// SetFlags sets flags for non-zero fields.
func (m *MessageMediaPoll) SetFlags() {
if !(m.AttachedMedia == nil) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (m *MessageMediaPoll) Encode(b *bin.Buffer) error { func (m *MessageMediaPoll) Encode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageMediaPoll#4bd6e798 as nil") return fmt.Errorf("can't encode messageMediaPoll#773f4e66 as nil")
} }
b.PutID(MessageMediaPollTypeID) b.PutID(MessageMediaPollTypeID)
return m.EncodeBare(b) return m.EncodeBare(b)
@@ -3087,13 +3204,25 @@ func (m *MessageMediaPoll) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (m *MessageMediaPoll) EncodeBare(b *bin.Buffer) error { func (m *MessageMediaPoll) EncodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageMediaPoll#4bd6e798 as nil") return fmt.Errorf("can't encode messageMediaPoll#773f4e66 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPoll#773f4e66: field flags: %w", err)
} }
if err := m.Poll.Encode(b); err != nil { if err := m.Poll.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPoll#4bd6e798: field poll: %w", err) return fmt.Errorf("unable to encode messageMediaPoll#773f4e66: field poll: %w", err)
} }
if err := m.Results.Encode(b); err != nil { if err := m.Results.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPoll#4bd6e798: field results: %w", err) return fmt.Errorf("unable to encode messageMediaPoll#773f4e66: field results: %w", err)
}
if m.Flags.Has(0) {
if m.AttachedMedia == nil {
return fmt.Errorf("unable to encode messageMediaPoll#773f4e66: field attached_media is nil")
}
if err := m.AttachedMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageMediaPoll#773f4e66: field attached_media: %w", err)
}
} }
return nil return nil
} }
@@ -3101,10 +3230,10 @@ func (m *MessageMediaPoll) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (m *MessageMediaPoll) Decode(b *bin.Buffer) error { func (m *MessageMediaPoll) Decode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageMediaPoll#4bd6e798 to nil") return fmt.Errorf("can't decode messageMediaPoll#773f4e66 to nil")
} }
if err := b.ConsumeID(MessageMediaPollTypeID); err != nil { if err := b.ConsumeID(MessageMediaPollTypeID); err != nil {
return fmt.Errorf("unable to decode messageMediaPoll#4bd6e798: %w", err) return fmt.Errorf("unable to decode messageMediaPoll#773f4e66: %w", err)
} }
return m.DecodeBare(b) return m.DecodeBare(b)
} }
@@ -3112,18 +3241,30 @@ func (m *MessageMediaPoll) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (m *MessageMediaPoll) DecodeBare(b *bin.Buffer) error { func (m *MessageMediaPoll) DecodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageMediaPoll#4bd6e798 to nil") return fmt.Errorf("can't decode messageMediaPoll#773f4e66 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageMediaPoll#773f4e66: field flags: %w", err)
}
} }
{ {
if err := m.Poll.Decode(b); err != nil { if err := m.Poll.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageMediaPoll#4bd6e798: field poll: %w", err) return fmt.Errorf("unable to decode messageMediaPoll#773f4e66: field poll: %w", err)
} }
} }
{ {
if err := m.Results.Decode(b); err != nil { if err := m.Results.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageMediaPoll#4bd6e798: field results: %w", err) return fmt.Errorf("unable to decode messageMediaPoll#773f4e66: field results: %w", err)
} }
} }
if m.Flags.Has(0) {
value, err := DecodeMessageMedia(b)
if err != nil {
return fmt.Errorf("unable to decode messageMediaPoll#773f4e66: field attached_media: %w", err)
}
m.AttachedMedia = value
}
return nil return nil
} }
@@ -3143,6 +3284,24 @@ func (m *MessageMediaPoll) GetResults() (value PollResults) {
return m.Results return m.Results
} }
// SetAttachedMedia sets value of AttachedMedia conditional field.
func (m *MessageMediaPoll) SetAttachedMedia(value MessageMediaClass) {
m.Flags.Set(0)
m.AttachedMedia = value
}
// GetAttachedMedia returns value of AttachedMedia conditional field and
// boolean which is true if field was set.
func (m *MessageMediaPoll) GetAttachedMedia() (value MessageMediaClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.AttachedMedia, true
}
// MessageMediaDice represents TL type `messageMediaDice#8cbec07`. // MessageMediaDice represents TL type `messageMediaDice#8cbec07`.
// Dice-based animated sticker¹ // Dice-based animated sticker¹
// //
@@ -5386,7 +5545,7 @@ const MessageMediaClassName = "MessageMedia"
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.MessageMediaEmpty: // messageMediaEmpty#3ded6320 // case *tg.MessageMediaEmpty: // messageMediaEmpty#3ded6320
// case *tg.MessageMediaPhoto: // messageMediaPhoto#695150d7 // case *tg.MessageMediaPhoto: // messageMediaPhoto#e216eb63
// case *tg.MessageMediaGeo: // messageMediaGeo#56e0d474 // case *tg.MessageMediaGeo: // messageMediaGeo#56e0d474
// case *tg.MessageMediaContact: // messageMediaContact#70322949 // case *tg.MessageMediaContact: // messageMediaContact#70322949
// case *tg.MessageMediaUnsupported: // messageMediaUnsupported#9f84f49e // case *tg.MessageMediaUnsupported: // messageMediaUnsupported#9f84f49e
@@ -5396,7 +5555,7 @@ const MessageMediaClassName = "MessageMedia"
// case *tg.MessageMediaGame: // messageMediaGame#fdb19008 // case *tg.MessageMediaGame: // messageMediaGame#fdb19008
// case *tg.MessageMediaInvoice: // messageMediaInvoice#f6a548d3 // case *tg.MessageMediaInvoice: // messageMediaInvoice#f6a548d3
// case *tg.MessageMediaGeoLive: // messageMediaGeoLive#b940c666 // case *tg.MessageMediaGeoLive: // messageMediaGeoLive#b940c666
// case *tg.MessageMediaPoll: // messageMediaPoll#4bd6e798 // case *tg.MessageMediaPoll: // messageMediaPoll#773f4e66
// case *tg.MessageMediaDice: // messageMediaDice#8cbec07 // case *tg.MessageMediaDice: // messageMediaDice#8cbec07
// case *tg.MessageMediaStory: // messageMediaStory#68cb6283 // case *tg.MessageMediaStory: // messageMediaStory#68cb6283
// case *tg.MessageMediaGiveaway: // messageMediaGiveaway#aa073beb // case *tg.MessageMediaGiveaway: // messageMediaGiveaway#aa073beb
@@ -5440,7 +5599,7 @@ func DecodeMessageMedia(buf *bin.Buffer) (MessageMediaClass, error) {
} }
return &v, nil return &v, nil
case MessageMediaPhotoTypeID: case MessageMediaPhotoTypeID:
// Decoding messageMediaPhoto#695150d7. // Decoding messageMediaPhoto#e216eb63.
v := MessageMediaPhoto{} v := MessageMediaPhoto{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageMediaClass: %w", err) return nil, fmt.Errorf("unable to decode MessageMediaClass: %w", err)
@@ -5510,7 +5669,7 @@ func DecodeMessageMedia(buf *bin.Buffer) (MessageMediaClass, error) {
} }
return &v, nil return &v, nil
case MessageMediaPollTypeID: case MessageMediaPollTypeID:
// Decoding messageMediaPoll#4bd6e798. // Decoding messageMediaPoll#773f4e66.
v := MessageMediaPoll{} v := MessageMediaPoll{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageMediaClass: %w", err) return nil, fmt.Errorf("unable to decode MessageMediaClass: %w", err)
+76 -28
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// MessageReplyHeader represents TL type `messageReplyHeader#6917560b`. // MessageReplyHeader represents TL type `messageReplyHeader#1b97dd66`.
// Message replies and thread¹ information // Message replies and thread¹ information
// //
// Links: // Links:
@@ -107,10 +107,14 @@ type MessageReplyHeader struct {
// //
// Use SetTodoItemID and GetTodoItemID helpers. // Use SetTodoItemID and GetTodoItemID helpers.
TodoItemID int TodoItemID int
// PollOption field of MessageReplyHeader.
//
// Use SetPollOption and GetPollOption helpers.
PollOption []byte
} }
// MessageReplyHeaderTypeID is TL type id of MessageReplyHeader. // MessageReplyHeaderTypeID is TL type id of MessageReplyHeader.
const MessageReplyHeaderTypeID = 0x6917560b const MessageReplyHeaderTypeID = 0x1b97dd66
// construct implements constructor of MessageReplyHeaderClass. // construct implements constructor of MessageReplyHeaderClass.
func (m MessageReplyHeader) construct() MessageReplyHeaderClass { return &m } func (m MessageReplyHeader) construct() MessageReplyHeaderClass { return &m }
@@ -168,6 +172,9 @@ func (m *MessageReplyHeader) Zero() bool {
if !(m.TodoItemID == 0) { if !(m.TodoItemID == 0) {
return false return false
} }
if !(m.PollOption == nil) {
return false
}
return true return true
} }
@@ -195,6 +202,7 @@ func (m *MessageReplyHeader) FillFrom(from interface {
GetQuoteEntities() (value []MessageEntityClass, ok bool) GetQuoteEntities() (value []MessageEntityClass, ok bool)
GetQuoteOffset() (value int, ok bool) GetQuoteOffset() (value int, ok bool)
GetTodoItemID() (value int, ok bool) GetTodoItemID() (value int, ok bool)
GetPollOption() (value []byte, ok bool)
}) { }) {
m.ReplyToScheduled = from.GetReplyToScheduled() m.ReplyToScheduled = from.GetReplyToScheduled()
m.ForumTopic = from.GetForumTopic() m.ForumTopic = from.GetForumTopic()
@@ -235,6 +243,10 @@ func (m *MessageReplyHeader) FillFrom(from interface {
m.TodoItemID = val m.TodoItemID = val
} }
if val, ok := from.GetPollOption(); ok {
m.PollOption = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -320,6 +332,11 @@ func (m *MessageReplyHeader) TypeInfo() tdp.Type {
SchemaName: "todo_item_id", SchemaName: "todo_item_id",
Null: !m.Flags.Has(11), Null: !m.Flags.Has(11),
}, },
{
Name: "PollOption",
SchemaName: "poll_option",
Null: !m.Flags.Has(12),
},
} }
return typ return typ
} }
@@ -362,12 +379,15 @@ func (m *MessageReplyHeader) SetFlags() {
if !(m.TodoItemID == 0) { if !(m.TodoItemID == 0) {
m.Flags.Set(11) m.Flags.Set(11)
} }
if !(m.PollOption == nil) {
m.Flags.Set(12)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (m *MessageReplyHeader) Encode(b *bin.Buffer) error { func (m *MessageReplyHeader) Encode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageReplyHeader#6917560b as nil") return fmt.Errorf("can't encode messageReplyHeader#1b97dd66 as nil")
} }
b.PutID(MessageReplyHeaderTypeID) b.PutID(MessageReplyHeaderTypeID)
return m.EncodeBare(b) return m.EncodeBare(b)
@@ -376,34 +396,34 @@ func (m *MessageReplyHeader) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error { func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't encode messageReplyHeader#6917560b as nil") return fmt.Errorf("can't encode messageReplyHeader#1b97dd66 as nil")
} }
m.SetFlags() m.SetFlags()
if err := m.Flags.Encode(b); err != nil { if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field flags: %w", err) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field flags: %w", err)
} }
if m.Flags.Has(4) { if m.Flags.Has(4) {
b.PutInt(m.ReplyToMsgID) b.PutInt(m.ReplyToMsgID)
} }
if m.Flags.Has(0) { if m.Flags.Has(0) {
if m.ReplyToPeerID == nil { if m.ReplyToPeerID == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_to_peer_id is nil") return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_to_peer_id is nil")
} }
if err := m.ReplyToPeerID.Encode(b); err != nil { if err := m.ReplyToPeerID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_to_peer_id: %w", err) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_to_peer_id: %w", err)
} }
} }
if m.Flags.Has(5) { if m.Flags.Has(5) {
if err := m.ReplyFrom.Encode(b); err != nil { if err := m.ReplyFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_from: %w", err) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_from: %w", err)
} }
} }
if m.Flags.Has(8) { if m.Flags.Has(8) {
if m.ReplyMedia == nil { if m.ReplyMedia == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_media is nil") return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_media is nil")
} }
if err := m.ReplyMedia.Encode(b); err != nil { if err := m.ReplyMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_media: %w", err) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_media: %w", err)
} }
} }
if m.Flags.Has(1) { if m.Flags.Has(1) {
@@ -416,10 +436,10 @@ func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(m.QuoteEntities)) b.PutVectorHeader(len(m.QuoteEntities))
for idx, v := range m.QuoteEntities { for idx, v := range m.QuoteEntities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field quote_entities element with index %d is nil", idx) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field quote_entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field quote_entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field quote_entities element with index %d: %w", idx, err)
} }
} }
} }
@@ -429,16 +449,19 @@ func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
if m.Flags.Has(11) { if m.Flags.Has(11) {
b.PutInt(m.TodoItemID) b.PutInt(m.TodoItemID)
} }
if m.Flags.Has(12) {
b.PutBytes(m.PollOption)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (m *MessageReplyHeader) Decode(b *bin.Buffer) error { func (m *MessageReplyHeader) Decode(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageReplyHeader#6917560b to nil") return fmt.Errorf("can't decode messageReplyHeader#1b97dd66 to nil")
} }
if err := b.ConsumeID(MessageReplyHeaderTypeID); err != nil { if err := b.ConsumeID(MessageReplyHeaderTypeID); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: %w", err)
} }
return m.DecodeBare(b) return m.DecodeBare(b)
} }
@@ -446,11 +469,11 @@ func (m *MessageReplyHeader) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error { func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m == nil { if m == nil {
return fmt.Errorf("can't decode messageReplyHeader#6917560b to nil") return fmt.Errorf("can't decode messageReplyHeader#1b97dd66 to nil")
} }
{ {
if err := m.Flags.Decode(b); err != nil { if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field flags: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field flags: %w", err)
} }
} }
m.ReplyToScheduled = m.Flags.Has(2) m.ReplyToScheduled = m.Flags.Has(2)
@@ -459,47 +482,47 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m.Flags.Has(4) { if m.Flags.Has(4) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_msg_id: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_msg_id: %w", err)
} }
m.ReplyToMsgID = value m.ReplyToMsgID = value
} }
if m.Flags.Has(0) { if m.Flags.Has(0) {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_peer_id: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_peer_id: %w", err)
} }
m.ReplyToPeerID = value m.ReplyToPeerID = value
} }
if m.Flags.Has(5) { if m.Flags.Has(5) {
if err := m.ReplyFrom.Decode(b); err != nil { if err := m.ReplyFrom.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_from: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_from: %w", err)
} }
} }
if m.Flags.Has(8) { if m.Flags.Has(8) {
value, err := DecodeMessageMedia(b) value, err := DecodeMessageMedia(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_media: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_media: %w", err)
} }
m.ReplyMedia = value m.ReplyMedia = value
} }
if m.Flags.Has(1) { if m.Flags.Has(1) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_top_id: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_top_id: %w", err)
} }
m.ReplyToTopID = value m.ReplyToTopID = value
} }
if m.Flags.Has(6) { if m.Flags.Has(6) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_text: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_text: %w", err)
} }
m.QuoteText = value m.QuoteText = value
} }
if m.Flags.Has(7) { if m.Flags.Has(7) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_entities: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -508,7 +531,7 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_entities: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_entities: %w", err)
} }
m.QuoteEntities = append(m.QuoteEntities, value) m.QuoteEntities = append(m.QuoteEntities, value)
} }
@@ -516,17 +539,24 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m.Flags.Has(10) { if m.Flags.Has(10) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_offset: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_offset: %w", err)
} }
m.QuoteOffset = value m.QuoteOffset = value
} }
if m.Flags.Has(11) { if m.Flags.Has(11) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field todo_item_id: %w", err) return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field todo_item_id: %w", err)
} }
m.TodoItemID = value m.TodoItemID = value
} }
if m.Flags.Has(12) {
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field poll_option: %w", err)
}
m.PollOption = value
}
return nil return nil
} }
@@ -749,6 +779,24 @@ func (m *MessageReplyHeader) GetTodoItemID() (value int, ok bool) {
return m.TodoItemID, true return m.TodoItemID, true
} }
// SetPollOption sets value of PollOption conditional field.
func (m *MessageReplyHeader) SetPollOption(value []byte) {
m.Flags.Set(12)
m.PollOption = value
}
// GetPollOption returns value of PollOption conditional field and
// boolean which is true if field was set.
func (m *MessageReplyHeader) GetPollOption() (value []byte, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(12) {
return value, false
}
return m.PollOption, true
}
// MapQuoteEntities returns field QuoteEntities wrapped in MessageEntityClassArray helper. // MapQuoteEntities returns field QuoteEntities wrapped in MessageEntityClassArray helper.
func (m *MessageReplyHeader) MapQuoteEntities() (value MessageEntityClassArray, ok bool) { func (m *MessageReplyHeader) MapQuoteEntities() (value MessageEntityClassArray, ok bool) {
if !m.Flags.Has(7) { if !m.Flags.Has(7) {
@@ -941,7 +989,7 @@ const MessageReplyHeaderClassName = "MessageReplyHeader"
// panic(err) // panic(err)
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.MessageReplyHeader: // messageReplyHeader#6917560b // case *tg.MessageReplyHeader: // messageReplyHeader#1b97dd66
// case *tg.MessageReplyStoryHeader: // messageReplyStoryHeader#e5af939 // case *tg.MessageReplyStoryHeader: // messageReplyStoryHeader#e5af939
// default: panic(v) // default: panic(v)
// } // }
@@ -972,7 +1020,7 @@ func DecodeMessageReplyHeader(buf *bin.Buffer) (MessageReplyHeaderClass, error)
} }
switch id { switch id {
case MessageReplyHeaderTypeID: case MessageReplyHeaderTypeID:
// Decoding messageReplyHeader#6917560b. // Decoding messageReplyHeader#1b97dd66.
v := MessageReplyHeader{} v := MessageReplyHeader{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageReplyHeaderClass: %w", err) return nil, fmt.Errorf("unable to decode MessageReplyHeaderClass: %w", err)
+237
View File
@@ -0,0 +1,237 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesAddPollAnswerRequest represents TL type `messages.addPollAnswer#19bc4b6d`.
//
// See https://core.telegram.org/method/messages.addPollAnswer for reference.
type MessagesAddPollAnswerRequest struct {
// Peer field of MessagesAddPollAnswerRequest.
Peer InputPeerClass
// MsgID field of MessagesAddPollAnswerRequest.
MsgID int
// Answer field of MessagesAddPollAnswerRequest.
Answer PollAnswerClass
}
// MessagesAddPollAnswerRequestTypeID is TL type id of MessagesAddPollAnswerRequest.
const MessagesAddPollAnswerRequestTypeID = 0x19bc4b6d
// Ensuring interfaces in compile-time for MessagesAddPollAnswerRequest.
var (
_ bin.Encoder = &MessagesAddPollAnswerRequest{}
_ bin.Decoder = &MessagesAddPollAnswerRequest{}
_ bin.BareEncoder = &MessagesAddPollAnswerRequest{}
_ bin.BareDecoder = &MessagesAddPollAnswerRequest{}
)
func (a *MessagesAddPollAnswerRequest) Zero() bool {
if a == nil {
return true
}
if !(a.Peer == nil) {
return false
}
if !(a.MsgID == 0) {
return false
}
if !(a.Answer == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (a *MessagesAddPollAnswerRequest) String() string {
if a == nil {
return "MessagesAddPollAnswerRequest(nil)"
}
type Alias MessagesAddPollAnswerRequest
return fmt.Sprintf("MessagesAddPollAnswerRequest%+v", Alias(*a))
}
// FillFrom fills MessagesAddPollAnswerRequest from given interface.
func (a *MessagesAddPollAnswerRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetMsgID() (value int)
GetAnswer() (value PollAnswerClass)
}) {
a.Peer = from.GetPeer()
a.MsgID = from.GetMsgID()
a.Answer = from.GetAnswer()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesAddPollAnswerRequest) TypeID() uint32 {
return MessagesAddPollAnswerRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesAddPollAnswerRequest) TypeName() string {
return "messages.addPollAnswer"
}
// TypeInfo returns info about TL type.
func (a *MessagesAddPollAnswerRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.addPollAnswer",
ID: MessagesAddPollAnswerRequestTypeID,
}
if a == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "MsgID",
SchemaName: "msg_id",
},
{
Name: "Answer",
SchemaName: "answer",
},
}
return typ
}
// Encode implements bin.Encoder.
func (a *MessagesAddPollAnswerRequest) Encode(b *bin.Buffer) error {
if a == nil {
return fmt.Errorf("can't encode messages.addPollAnswer#19bc4b6d as nil")
}
b.PutID(MessagesAddPollAnswerRequestTypeID)
return a.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (a *MessagesAddPollAnswerRequest) EncodeBare(b *bin.Buffer) error {
if a == nil {
return fmt.Errorf("can't encode messages.addPollAnswer#19bc4b6d as nil")
}
if a.Peer == nil {
return fmt.Errorf("unable to encode messages.addPollAnswer#19bc4b6d: field peer is nil")
}
if err := a.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.addPollAnswer#19bc4b6d: field peer: %w", err)
}
b.PutInt(a.MsgID)
if a.Answer == nil {
return fmt.Errorf("unable to encode messages.addPollAnswer#19bc4b6d: field answer is nil")
}
if err := a.Answer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.addPollAnswer#19bc4b6d: field answer: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (a *MessagesAddPollAnswerRequest) Decode(b *bin.Buffer) error {
if a == nil {
return fmt.Errorf("can't decode messages.addPollAnswer#19bc4b6d to nil")
}
if err := b.ConsumeID(MessagesAddPollAnswerRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.addPollAnswer#19bc4b6d: %w", err)
}
return a.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (a *MessagesAddPollAnswerRequest) DecodeBare(b *bin.Buffer) error {
if a == nil {
return fmt.Errorf("can't decode messages.addPollAnswer#19bc4b6d to nil")
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.addPollAnswer#19bc4b6d: field peer: %w", err)
}
a.Peer = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.addPollAnswer#19bc4b6d: field msg_id: %w", err)
}
a.MsgID = value
}
{
value, err := DecodePollAnswer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.addPollAnswer#19bc4b6d: field answer: %w", err)
}
a.Answer = value
}
return nil
}
// GetPeer returns value of Peer field.
func (a *MessagesAddPollAnswerRequest) GetPeer() (value InputPeerClass) {
if a == nil {
return
}
return a.Peer
}
// GetMsgID returns value of MsgID field.
func (a *MessagesAddPollAnswerRequest) GetMsgID() (value int) {
if a == nil {
return
}
return a.MsgID
}
// GetAnswer returns value of Answer field.
func (a *MessagesAddPollAnswerRequest) GetAnswer() (value PollAnswerClass) {
if a == nil {
return
}
return a.Answer
}
// MessagesAddPollAnswer invokes method messages.addPollAnswer#19bc4b6d returning error if any.
//
// See https://core.telegram.org/method/messages.addPollAnswer for reference.
func (c *Client) MessagesAddPollAnswer(ctx context.Context, request *MessagesAddPollAnswerRequest) (UpdatesClass, error) {
var result UpdatesBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.Updates, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+357
View File
@@ -0,0 +1,357 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesComposeMessageWithAIRequest represents TL type `messages.composeMessageWithAI#fd426afe`.
//
// See https://core.telegram.org/method/messages.composeMessageWithAI for reference.
type MessagesComposeMessageWithAIRequest struct {
// Flags field of MessagesComposeMessageWithAIRequest.
Flags bin.Fields
// Proofread field of MessagesComposeMessageWithAIRequest.
Proofread bool
// Emojify field of MessagesComposeMessageWithAIRequest.
Emojify bool
// Text field of MessagesComposeMessageWithAIRequest.
Text TextWithEntities
// TranslateToLang field of MessagesComposeMessageWithAIRequest.
//
// Use SetTranslateToLang and GetTranslateToLang helpers.
TranslateToLang string
// ChangeTone field of MessagesComposeMessageWithAIRequest.
//
// Use SetChangeTone and GetChangeTone helpers.
ChangeTone string
}
// MessagesComposeMessageWithAIRequestTypeID is TL type id of MessagesComposeMessageWithAIRequest.
const MessagesComposeMessageWithAIRequestTypeID = 0xfd426afe
// Ensuring interfaces in compile-time for MessagesComposeMessageWithAIRequest.
var (
_ bin.Encoder = &MessagesComposeMessageWithAIRequest{}
_ bin.Decoder = &MessagesComposeMessageWithAIRequest{}
_ bin.BareEncoder = &MessagesComposeMessageWithAIRequest{}
_ bin.BareDecoder = &MessagesComposeMessageWithAIRequest{}
)
func (c *MessagesComposeMessageWithAIRequest) Zero() bool {
if c == nil {
return true
}
if !(c.Flags.Zero()) {
return false
}
if !(c.Proofread == false) {
return false
}
if !(c.Emojify == false) {
return false
}
if !(c.Text.Zero()) {
return false
}
if !(c.TranslateToLang == "") {
return false
}
if !(c.ChangeTone == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *MessagesComposeMessageWithAIRequest) String() string {
if c == nil {
return "MessagesComposeMessageWithAIRequest(nil)"
}
type Alias MessagesComposeMessageWithAIRequest
return fmt.Sprintf("MessagesComposeMessageWithAIRequest%+v", Alias(*c))
}
// FillFrom fills MessagesComposeMessageWithAIRequest from given interface.
func (c *MessagesComposeMessageWithAIRequest) FillFrom(from interface {
GetProofread() (value bool)
GetEmojify() (value bool)
GetText() (value TextWithEntities)
GetTranslateToLang() (value string, ok bool)
GetChangeTone() (value string, ok bool)
}) {
c.Proofread = from.GetProofread()
c.Emojify = from.GetEmojify()
c.Text = from.GetText()
if val, ok := from.GetTranslateToLang(); ok {
c.TranslateToLang = val
}
if val, ok := from.GetChangeTone(); ok {
c.ChangeTone = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesComposeMessageWithAIRequest) TypeID() uint32 {
return MessagesComposeMessageWithAIRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesComposeMessageWithAIRequest) TypeName() string {
return "messages.composeMessageWithAI"
}
// TypeInfo returns info about TL type.
func (c *MessagesComposeMessageWithAIRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.composeMessageWithAI",
ID: MessagesComposeMessageWithAIRequestTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Proofread",
SchemaName: "proofread",
Null: !c.Flags.Has(0),
},
{
Name: "Emojify",
SchemaName: "emojify",
Null: !c.Flags.Has(3),
},
{
Name: "Text",
SchemaName: "text",
},
{
Name: "TranslateToLang",
SchemaName: "translate_to_lang",
Null: !c.Flags.Has(1),
},
{
Name: "ChangeTone",
SchemaName: "change_tone",
Null: !c.Flags.Has(2),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (c *MessagesComposeMessageWithAIRequest) SetFlags() {
if !(c.Proofread == false) {
c.Flags.Set(0)
}
if !(c.Emojify == false) {
c.Flags.Set(3)
}
if !(c.TranslateToLang == "") {
c.Flags.Set(1)
}
if !(c.ChangeTone == "") {
c.Flags.Set(2)
}
}
// Encode implements bin.Encoder.
func (c *MessagesComposeMessageWithAIRequest) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode messages.composeMessageWithAI#fd426afe as nil")
}
b.PutID(MessagesComposeMessageWithAIRequestTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *MessagesComposeMessageWithAIRequest) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode messages.composeMessageWithAI#fd426afe as nil")
}
c.SetFlags()
if err := c.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.composeMessageWithAI#fd426afe: field flags: %w", err)
}
if err := c.Text.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.composeMessageWithAI#fd426afe: field text: %w", err)
}
if c.Flags.Has(1) {
b.PutString(c.TranslateToLang)
}
if c.Flags.Has(2) {
b.PutString(c.ChangeTone)
}
return nil
}
// Decode implements bin.Decoder.
func (c *MessagesComposeMessageWithAIRequest) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode messages.composeMessageWithAI#fd426afe to nil")
}
if err := b.ConsumeID(MessagesComposeMessageWithAIRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.composeMessageWithAI#fd426afe: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *MessagesComposeMessageWithAIRequest) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode messages.composeMessageWithAI#fd426afe to nil")
}
{
if err := c.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.composeMessageWithAI#fd426afe: field flags: %w", err)
}
}
c.Proofread = c.Flags.Has(0)
c.Emojify = c.Flags.Has(3)
{
if err := c.Text.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.composeMessageWithAI#fd426afe: field text: %w", err)
}
}
if c.Flags.Has(1) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messages.composeMessageWithAI#fd426afe: field translate_to_lang: %w", err)
}
c.TranslateToLang = value
}
if c.Flags.Has(2) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messages.composeMessageWithAI#fd426afe: field change_tone: %w", err)
}
c.ChangeTone = value
}
return nil
}
// SetProofread sets value of Proofread conditional field.
func (c *MessagesComposeMessageWithAIRequest) SetProofread(value bool) {
if value {
c.Flags.Set(0)
c.Proofread = true
} else {
c.Flags.Unset(0)
c.Proofread = false
}
}
// GetProofread returns value of Proofread conditional field.
func (c *MessagesComposeMessageWithAIRequest) GetProofread() (value bool) {
if c == nil {
return
}
return c.Flags.Has(0)
}
// SetEmojify sets value of Emojify conditional field.
func (c *MessagesComposeMessageWithAIRequest) SetEmojify(value bool) {
if value {
c.Flags.Set(3)
c.Emojify = true
} else {
c.Flags.Unset(3)
c.Emojify = false
}
}
// GetEmojify returns value of Emojify conditional field.
func (c *MessagesComposeMessageWithAIRequest) GetEmojify() (value bool) {
if c == nil {
return
}
return c.Flags.Has(3)
}
// GetText returns value of Text field.
func (c *MessagesComposeMessageWithAIRequest) GetText() (value TextWithEntities) {
if c == nil {
return
}
return c.Text
}
// SetTranslateToLang sets value of TranslateToLang conditional field.
func (c *MessagesComposeMessageWithAIRequest) SetTranslateToLang(value string) {
c.Flags.Set(1)
c.TranslateToLang = value
}
// GetTranslateToLang returns value of TranslateToLang conditional field and
// boolean which is true if field was set.
func (c *MessagesComposeMessageWithAIRequest) GetTranslateToLang() (value string, ok bool) {
if c == nil {
return
}
if !c.Flags.Has(1) {
return value, false
}
return c.TranslateToLang, true
}
// SetChangeTone sets value of ChangeTone conditional field.
func (c *MessagesComposeMessageWithAIRequest) SetChangeTone(value string) {
c.Flags.Set(2)
c.ChangeTone = value
}
// GetChangeTone returns value of ChangeTone conditional field and
// boolean which is true if field was set.
func (c *MessagesComposeMessageWithAIRequest) GetChangeTone() (value string, ok bool) {
if c == nil {
return
}
if !c.Flags.Has(2) {
return value, false
}
return c.ChangeTone, true
}
// MessagesComposeMessageWithAI invokes method messages.composeMessageWithAI#fd426afe returning error if any.
//
// See https://core.telegram.org/method/messages.composeMessageWithAI for reference.
func (c *Client) MessagesComposeMessageWithAI(ctx context.Context, request *MessagesComposeMessageWithAIRequest) (*MessagesComposedMessageWithAI, error) {
var result MessagesComposedMessageWithAI
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return &result, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+227
View File
@@ -0,0 +1,227 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesComposedMessageWithAI represents TL type `messages.composedMessageWithAI#90d7adfa`.
//
// See https://core.telegram.org/constructor/messages.composedMessageWithAI for reference.
type MessagesComposedMessageWithAI struct {
// Flags field of MessagesComposedMessageWithAI.
Flags bin.Fields
// ResultText field of MessagesComposedMessageWithAI.
ResultText TextWithEntities
// DiffText field of MessagesComposedMessageWithAI.
//
// Use SetDiffText and GetDiffText helpers.
DiffText TextWithEntities
}
// MessagesComposedMessageWithAITypeID is TL type id of MessagesComposedMessageWithAI.
const MessagesComposedMessageWithAITypeID = 0x90d7adfa
// Ensuring interfaces in compile-time for MessagesComposedMessageWithAI.
var (
_ bin.Encoder = &MessagesComposedMessageWithAI{}
_ bin.Decoder = &MessagesComposedMessageWithAI{}
_ bin.BareEncoder = &MessagesComposedMessageWithAI{}
_ bin.BareDecoder = &MessagesComposedMessageWithAI{}
)
func (c *MessagesComposedMessageWithAI) Zero() bool {
if c == nil {
return true
}
if !(c.Flags.Zero()) {
return false
}
if !(c.ResultText.Zero()) {
return false
}
if !(c.DiffText.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *MessagesComposedMessageWithAI) String() string {
if c == nil {
return "MessagesComposedMessageWithAI(nil)"
}
type Alias MessagesComposedMessageWithAI
return fmt.Sprintf("MessagesComposedMessageWithAI%+v", Alias(*c))
}
// FillFrom fills MessagesComposedMessageWithAI from given interface.
func (c *MessagesComposedMessageWithAI) FillFrom(from interface {
GetResultText() (value TextWithEntities)
GetDiffText() (value TextWithEntities, ok bool)
}) {
c.ResultText = from.GetResultText()
if val, ok := from.GetDiffText(); ok {
c.DiffText = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesComposedMessageWithAI) TypeID() uint32 {
return MessagesComposedMessageWithAITypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesComposedMessageWithAI) TypeName() string {
return "messages.composedMessageWithAI"
}
// TypeInfo returns info about TL type.
func (c *MessagesComposedMessageWithAI) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.composedMessageWithAI",
ID: MessagesComposedMessageWithAITypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ResultText",
SchemaName: "result_text",
},
{
Name: "DiffText",
SchemaName: "diff_text",
Null: !c.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (c *MessagesComposedMessageWithAI) SetFlags() {
if !(c.DiffText.Zero()) {
c.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (c *MessagesComposedMessageWithAI) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode messages.composedMessageWithAI#90d7adfa as nil")
}
b.PutID(MessagesComposedMessageWithAITypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *MessagesComposedMessageWithAI) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode messages.composedMessageWithAI#90d7adfa as nil")
}
c.SetFlags()
if err := c.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.composedMessageWithAI#90d7adfa: field flags: %w", err)
}
if err := c.ResultText.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.composedMessageWithAI#90d7adfa: field result_text: %w", err)
}
if c.Flags.Has(0) {
if err := c.DiffText.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.composedMessageWithAI#90d7adfa: field diff_text: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (c *MessagesComposedMessageWithAI) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode messages.composedMessageWithAI#90d7adfa to nil")
}
if err := b.ConsumeID(MessagesComposedMessageWithAITypeID); err != nil {
return fmt.Errorf("unable to decode messages.composedMessageWithAI#90d7adfa: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *MessagesComposedMessageWithAI) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode messages.composedMessageWithAI#90d7adfa to nil")
}
{
if err := c.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.composedMessageWithAI#90d7adfa: field flags: %w", err)
}
}
{
if err := c.ResultText.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.composedMessageWithAI#90d7adfa: field result_text: %w", err)
}
}
if c.Flags.Has(0) {
if err := c.DiffText.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.composedMessageWithAI#90d7adfa: field diff_text: %w", err)
}
}
return nil
}
// GetResultText returns value of ResultText field.
func (c *MessagesComposedMessageWithAI) GetResultText() (value TextWithEntities) {
if c == nil {
return
}
return c.ResultText
}
// SetDiffText sets value of DiffText conditional field.
func (c *MessagesComposedMessageWithAI) SetDiffText(value TextWithEntities) {
c.Flags.Set(0)
c.DiffText = value
}
// GetDiffText returns value of DiffText conditional field and
// boolean which is true if field was set.
func (c *MessagesComposedMessageWithAI) GetDiffText() (value TextWithEntities, ok bool) {
if c == nil {
return
}
if !c.Flags.Has(0) {
return value, false
}
return c.DiffText, true
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+232
View File
@@ -0,0 +1,232 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesDeletePollAnswerRequest represents TL type `messages.deletePollAnswer#ac8505a5`.
//
// See https://core.telegram.org/method/messages.deletePollAnswer for reference.
type MessagesDeletePollAnswerRequest struct {
// Peer field of MessagesDeletePollAnswerRequest.
Peer InputPeerClass
// MsgID field of MessagesDeletePollAnswerRequest.
MsgID int
// Option field of MessagesDeletePollAnswerRequest.
Option []byte
}
// MessagesDeletePollAnswerRequestTypeID is TL type id of MessagesDeletePollAnswerRequest.
const MessagesDeletePollAnswerRequestTypeID = 0xac8505a5
// Ensuring interfaces in compile-time for MessagesDeletePollAnswerRequest.
var (
_ bin.Encoder = &MessagesDeletePollAnswerRequest{}
_ bin.Decoder = &MessagesDeletePollAnswerRequest{}
_ bin.BareEncoder = &MessagesDeletePollAnswerRequest{}
_ bin.BareDecoder = &MessagesDeletePollAnswerRequest{}
)
func (d *MessagesDeletePollAnswerRequest) Zero() bool {
if d == nil {
return true
}
if !(d.Peer == nil) {
return false
}
if !(d.MsgID == 0) {
return false
}
if !(d.Option == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (d *MessagesDeletePollAnswerRequest) String() string {
if d == nil {
return "MessagesDeletePollAnswerRequest(nil)"
}
type Alias MessagesDeletePollAnswerRequest
return fmt.Sprintf("MessagesDeletePollAnswerRequest%+v", Alias(*d))
}
// FillFrom fills MessagesDeletePollAnswerRequest from given interface.
func (d *MessagesDeletePollAnswerRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetMsgID() (value int)
GetOption() (value []byte)
}) {
d.Peer = from.GetPeer()
d.MsgID = from.GetMsgID()
d.Option = from.GetOption()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesDeletePollAnswerRequest) TypeID() uint32 {
return MessagesDeletePollAnswerRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesDeletePollAnswerRequest) TypeName() string {
return "messages.deletePollAnswer"
}
// TypeInfo returns info about TL type.
func (d *MessagesDeletePollAnswerRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.deletePollAnswer",
ID: MessagesDeletePollAnswerRequestTypeID,
}
if d == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "MsgID",
SchemaName: "msg_id",
},
{
Name: "Option",
SchemaName: "option",
},
}
return typ
}
// Encode implements bin.Encoder.
func (d *MessagesDeletePollAnswerRequest) Encode(b *bin.Buffer) error {
if d == nil {
return fmt.Errorf("can't encode messages.deletePollAnswer#ac8505a5 as nil")
}
b.PutID(MessagesDeletePollAnswerRequestTypeID)
return d.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (d *MessagesDeletePollAnswerRequest) EncodeBare(b *bin.Buffer) error {
if d == nil {
return fmt.Errorf("can't encode messages.deletePollAnswer#ac8505a5 as nil")
}
if d.Peer == nil {
return fmt.Errorf("unable to encode messages.deletePollAnswer#ac8505a5: field peer is nil")
}
if err := d.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.deletePollAnswer#ac8505a5: field peer: %w", err)
}
b.PutInt(d.MsgID)
b.PutBytes(d.Option)
return nil
}
// Decode implements bin.Decoder.
func (d *MessagesDeletePollAnswerRequest) Decode(b *bin.Buffer) error {
if d == nil {
return fmt.Errorf("can't decode messages.deletePollAnswer#ac8505a5 to nil")
}
if err := b.ConsumeID(MessagesDeletePollAnswerRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.deletePollAnswer#ac8505a5: %w", err)
}
return d.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (d *MessagesDeletePollAnswerRequest) DecodeBare(b *bin.Buffer) error {
if d == nil {
return fmt.Errorf("can't decode messages.deletePollAnswer#ac8505a5 to nil")
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.deletePollAnswer#ac8505a5: field peer: %w", err)
}
d.Peer = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.deletePollAnswer#ac8505a5: field msg_id: %w", err)
}
d.MsgID = value
}
{
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode messages.deletePollAnswer#ac8505a5: field option: %w", err)
}
d.Option = value
}
return nil
}
// GetPeer returns value of Peer field.
func (d *MessagesDeletePollAnswerRequest) GetPeer() (value InputPeerClass) {
if d == nil {
return
}
return d.Peer
}
// GetMsgID returns value of MsgID field.
func (d *MessagesDeletePollAnswerRequest) GetMsgID() (value int) {
if d == nil {
return
}
return d.MsgID
}
// GetOption returns value of Option field.
func (d *MessagesDeletePollAnswerRequest) GetOption() (value []byte) {
if d == nil {
return
}
return d.Option
}
// MessagesDeletePollAnswer invokes method messages.deletePollAnswer#ac8505a5 returning error if any.
//
// See https://core.telegram.org/method/messages.deletePollAnswer for reference.
func (c *Client) MessagesDeletePollAnswer(ctx context.Context, request *MessagesDeletePollAnswerRequest) (UpdatesClass, error) {
var result UpdatesBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.Updates, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+109
View File
@@ -1830,6 +1830,107 @@ func (i *InputMessagesFilterPinned) DecodeBare(b *bin.Buffer) error {
return nil return nil
} }
// InputMessagesFilterPoll represents TL type `inputMessagesFilterPoll#fa2bc90a`.
//
// See https://core.telegram.org/constructor/inputMessagesFilterPoll for reference.
type InputMessagesFilterPoll struct {
}
// InputMessagesFilterPollTypeID is TL type id of InputMessagesFilterPoll.
const InputMessagesFilterPollTypeID = 0xfa2bc90a
// construct implements constructor of MessagesFilterClass.
func (i InputMessagesFilterPoll) construct() MessagesFilterClass { return &i }
// Ensuring interfaces in compile-time for InputMessagesFilterPoll.
var (
_ bin.Encoder = &InputMessagesFilterPoll{}
_ bin.Decoder = &InputMessagesFilterPoll{}
_ bin.BareEncoder = &InputMessagesFilterPoll{}
_ bin.BareDecoder = &InputMessagesFilterPoll{}
_ MessagesFilterClass = &InputMessagesFilterPoll{}
)
func (i *InputMessagesFilterPoll) Zero() bool {
if i == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (i *InputMessagesFilterPoll) String() string {
if i == nil {
return "InputMessagesFilterPoll(nil)"
}
type Alias InputMessagesFilterPoll
return fmt.Sprintf("InputMessagesFilterPoll%+v", Alias(*i))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputMessagesFilterPoll) TypeID() uint32 {
return InputMessagesFilterPollTypeID
}
// TypeName returns name of type in TL schema.
func (*InputMessagesFilterPoll) TypeName() string {
return "inputMessagesFilterPoll"
}
// TypeInfo returns info about TL type.
func (i *InputMessagesFilterPoll) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputMessagesFilterPoll",
ID: InputMessagesFilterPollTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (i *InputMessagesFilterPoll) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputMessagesFilterPoll#fa2bc90a as nil")
}
b.PutID(InputMessagesFilterPollTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputMessagesFilterPoll) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputMessagesFilterPoll#fa2bc90a as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputMessagesFilterPoll) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputMessagesFilterPoll#fa2bc90a to nil")
}
if err := b.ConsumeID(InputMessagesFilterPollTypeID); err != nil {
return fmt.Errorf("unable to decode inputMessagesFilterPoll#fa2bc90a: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputMessagesFilterPoll) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputMessagesFilterPoll#fa2bc90a to nil")
}
return nil
}
// MessagesFilterClassName is schema name of MessagesFilterClass. // MessagesFilterClassName is schema name of MessagesFilterClass.
const MessagesFilterClassName = "MessagesFilter" const MessagesFilterClassName = "MessagesFilter"
@@ -1861,6 +1962,7 @@ const MessagesFilterClassName = "MessagesFilter"
// case *tg.InputMessagesFilterGeo: // inputMessagesFilterGeo#e7026d0d // case *tg.InputMessagesFilterGeo: // inputMessagesFilterGeo#e7026d0d
// case *tg.InputMessagesFilterContacts: // inputMessagesFilterContacts#e062db83 // case *tg.InputMessagesFilterContacts: // inputMessagesFilterContacts#e062db83
// case *tg.InputMessagesFilterPinned: // inputMessagesFilterPinned#1bb00451 // case *tg.InputMessagesFilterPinned: // inputMessagesFilterPinned#1bb00451
// case *tg.InputMessagesFilterPoll: // inputMessagesFilterPoll#fa2bc90a
// default: panic(v) // default: panic(v)
// } // }
type MessagesFilterClass interface { type MessagesFilterClass interface {
@@ -2008,6 +2110,13 @@ func DecodeMessagesFilter(buf *bin.Buffer) (MessagesFilterClass, error) {
return nil, fmt.Errorf("unable to decode MessagesFilterClass: %w", err) return nil, fmt.Errorf("unable to decode MessagesFilterClass: %w", err)
} }
return &v, nil return &v, nil
case InputMessagesFilterPollTypeID:
// Decoding inputMessagesFilterPoll#fa2bc90a.
v := InputMessagesFilterPoll{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessagesFilterClass: %w", err)
}
return &v, nil
default: default:
return nil, fmt.Errorf("unable to decode MessagesFilterClass: %w", bin.NewUnexpectedID(id)) return nil, fmt.Errorf("unable to decode MessagesFilterClass: %w", bin.NewUnexpectedID(id))
} }
+39 -12
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// MessagesGetPollResultsRequest represents TL type `messages.getPollResults#73bb643b`. // MessagesGetPollResultsRequest represents TL type `messages.getPollResults#eda3e33b`.
// Get poll results // Get poll results
// //
// See https://core.telegram.org/method/messages.getPollResults for reference. // See https://core.telegram.org/method/messages.getPollResults for reference.
@@ -40,10 +40,12 @@ type MessagesGetPollResultsRequest struct {
Peer InputPeerClass Peer InputPeerClass
// Message ID of poll message // Message ID of poll message
MsgID int MsgID int
// PollHash field of MessagesGetPollResultsRequest.
PollHash int64
} }
// MessagesGetPollResultsRequestTypeID is TL type id of MessagesGetPollResultsRequest. // MessagesGetPollResultsRequestTypeID is TL type id of MessagesGetPollResultsRequest.
const MessagesGetPollResultsRequestTypeID = 0x73bb643b const MessagesGetPollResultsRequestTypeID = 0xeda3e33b
// Ensuring interfaces in compile-time for MessagesGetPollResultsRequest. // Ensuring interfaces in compile-time for MessagesGetPollResultsRequest.
var ( var (
@@ -63,6 +65,9 @@ func (g *MessagesGetPollResultsRequest) Zero() bool {
if !(g.MsgID == 0) { if !(g.MsgID == 0) {
return false return false
} }
if !(g.PollHash == 0) {
return false
}
return true return true
} }
@@ -80,9 +85,11 @@ func (g *MessagesGetPollResultsRequest) String() string {
func (g *MessagesGetPollResultsRequest) FillFrom(from interface { func (g *MessagesGetPollResultsRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass) GetPeer() (value InputPeerClass)
GetMsgID() (value int) GetMsgID() (value int)
GetPollHash() (value int64)
}) { }) {
g.Peer = from.GetPeer() g.Peer = from.GetPeer()
g.MsgID = from.GetMsgID() g.MsgID = from.GetMsgID()
g.PollHash = from.GetPollHash()
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -116,6 +123,10 @@ func (g *MessagesGetPollResultsRequest) TypeInfo() tdp.Type {
Name: "MsgID", Name: "MsgID",
SchemaName: "msg_id", SchemaName: "msg_id",
}, },
{
Name: "PollHash",
SchemaName: "poll_hash",
},
} }
return typ return typ
} }
@@ -123,7 +134,7 @@ func (g *MessagesGetPollResultsRequest) TypeInfo() tdp.Type {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (g *MessagesGetPollResultsRequest) Encode(b *bin.Buffer) error { func (g *MessagesGetPollResultsRequest) Encode(b *bin.Buffer) error {
if g == nil { if g == nil {
return fmt.Errorf("can't encode messages.getPollResults#73bb643b as nil") return fmt.Errorf("can't encode messages.getPollResults#eda3e33b as nil")
} }
b.PutID(MessagesGetPollResultsRequestTypeID) b.PutID(MessagesGetPollResultsRequestTypeID)
return g.EncodeBare(b) return g.EncodeBare(b)
@@ -132,25 +143,26 @@ func (g *MessagesGetPollResultsRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (g *MessagesGetPollResultsRequest) EncodeBare(b *bin.Buffer) error { func (g *MessagesGetPollResultsRequest) EncodeBare(b *bin.Buffer) error {
if g == nil { if g == nil {
return fmt.Errorf("can't encode messages.getPollResults#73bb643b as nil") return fmt.Errorf("can't encode messages.getPollResults#eda3e33b as nil")
} }
if g.Peer == nil { if g.Peer == nil {
return fmt.Errorf("unable to encode messages.getPollResults#73bb643b: field peer is nil") return fmt.Errorf("unable to encode messages.getPollResults#eda3e33b: field peer is nil")
} }
if err := g.Peer.Encode(b); err != nil { if err := g.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.getPollResults#73bb643b: field peer: %w", err) return fmt.Errorf("unable to encode messages.getPollResults#eda3e33b: field peer: %w", err)
} }
b.PutInt(g.MsgID) b.PutInt(g.MsgID)
b.PutLong(g.PollHash)
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (g *MessagesGetPollResultsRequest) Decode(b *bin.Buffer) error { func (g *MessagesGetPollResultsRequest) Decode(b *bin.Buffer) error {
if g == nil { if g == nil {
return fmt.Errorf("can't decode messages.getPollResults#73bb643b to nil") return fmt.Errorf("can't decode messages.getPollResults#eda3e33b to nil")
} }
if err := b.ConsumeID(MessagesGetPollResultsRequestTypeID); err != nil { if err := b.ConsumeID(MessagesGetPollResultsRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.getPollResults#73bb643b: %w", err) return fmt.Errorf("unable to decode messages.getPollResults#eda3e33b: %w", err)
} }
return g.DecodeBare(b) return g.DecodeBare(b)
} }
@@ -158,22 +170,29 @@ func (g *MessagesGetPollResultsRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (g *MessagesGetPollResultsRequest) DecodeBare(b *bin.Buffer) error { func (g *MessagesGetPollResultsRequest) DecodeBare(b *bin.Buffer) error {
if g == nil { if g == nil {
return fmt.Errorf("can't decode messages.getPollResults#73bb643b to nil") return fmt.Errorf("can't decode messages.getPollResults#eda3e33b to nil")
} }
{ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.getPollResults#73bb643b: field peer: %w", err) return fmt.Errorf("unable to decode messages.getPollResults#eda3e33b: field peer: %w", err)
} }
g.Peer = value g.Peer = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.getPollResults#73bb643b: field msg_id: %w", err) return fmt.Errorf("unable to decode messages.getPollResults#eda3e33b: field msg_id: %w", err)
} }
g.MsgID = value g.MsgID = value
} }
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messages.getPollResults#eda3e33b: field poll_hash: %w", err)
}
g.PollHash = value
}
return nil return nil
} }
@@ -193,7 +212,15 @@ func (g *MessagesGetPollResultsRequest) GetMsgID() (value int) {
return g.MsgID return g.MsgID
} }
// MessagesGetPollResults invokes method messages.getPollResults#73bb643b returning error if any. // GetPollHash returns value of PollHash field.
func (g *MessagesGetPollResultsRequest) GetPollHash() (value int64) {
if g == nil {
return
}
return g.PollHash
}
// MessagesGetPollResults invokes method messages.getPollResults#eda3e33b returning error if any.
// Get poll results // Get poll results
// //
// Possible errors: // Possible errors:
+379
View File
@@ -0,0 +1,379 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesGetUnreadPollVotesRequest represents TL type `messages.getUnreadPollVotes#43286cf2`.
//
// See https://core.telegram.org/method/messages.getUnreadPollVotes for reference.
type MessagesGetUnreadPollVotesRequest struct {
// Flags field of MessagesGetUnreadPollVotesRequest.
Flags bin.Fields
// Peer field of MessagesGetUnreadPollVotesRequest.
Peer InputPeerClass
// TopMsgID field of MessagesGetUnreadPollVotesRequest.
//
// Use SetTopMsgID and GetTopMsgID helpers.
TopMsgID int
// OffsetID field of MessagesGetUnreadPollVotesRequest.
OffsetID int
// AddOffset field of MessagesGetUnreadPollVotesRequest.
AddOffset int
// Limit field of MessagesGetUnreadPollVotesRequest.
Limit int
// MaxID field of MessagesGetUnreadPollVotesRequest.
MaxID int
// MinID field of MessagesGetUnreadPollVotesRequest.
MinID int
}
// MessagesGetUnreadPollVotesRequestTypeID is TL type id of MessagesGetUnreadPollVotesRequest.
const MessagesGetUnreadPollVotesRequestTypeID = 0x43286cf2
// Ensuring interfaces in compile-time for MessagesGetUnreadPollVotesRequest.
var (
_ bin.Encoder = &MessagesGetUnreadPollVotesRequest{}
_ bin.Decoder = &MessagesGetUnreadPollVotesRequest{}
_ bin.BareEncoder = &MessagesGetUnreadPollVotesRequest{}
_ bin.BareDecoder = &MessagesGetUnreadPollVotesRequest{}
)
func (g *MessagesGetUnreadPollVotesRequest) Zero() bool {
if g == nil {
return true
}
if !(g.Flags.Zero()) {
return false
}
if !(g.Peer == nil) {
return false
}
if !(g.TopMsgID == 0) {
return false
}
if !(g.OffsetID == 0) {
return false
}
if !(g.AddOffset == 0) {
return false
}
if !(g.Limit == 0) {
return false
}
if !(g.MaxID == 0) {
return false
}
if !(g.MinID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (g *MessagesGetUnreadPollVotesRequest) String() string {
if g == nil {
return "MessagesGetUnreadPollVotesRequest(nil)"
}
type Alias MessagesGetUnreadPollVotesRequest
return fmt.Sprintf("MessagesGetUnreadPollVotesRequest%+v", Alias(*g))
}
// FillFrom fills MessagesGetUnreadPollVotesRequest from given interface.
func (g *MessagesGetUnreadPollVotesRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetTopMsgID() (value int, ok bool)
GetOffsetID() (value int)
GetAddOffset() (value int)
GetLimit() (value int)
GetMaxID() (value int)
GetMinID() (value int)
}) {
g.Peer = from.GetPeer()
if val, ok := from.GetTopMsgID(); ok {
g.TopMsgID = val
}
g.OffsetID = from.GetOffsetID()
g.AddOffset = from.GetAddOffset()
g.Limit = from.GetLimit()
g.MaxID = from.GetMaxID()
g.MinID = from.GetMinID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesGetUnreadPollVotesRequest) TypeID() uint32 {
return MessagesGetUnreadPollVotesRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesGetUnreadPollVotesRequest) TypeName() string {
return "messages.getUnreadPollVotes"
}
// TypeInfo returns info about TL type.
func (g *MessagesGetUnreadPollVotesRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.getUnreadPollVotes",
ID: MessagesGetUnreadPollVotesRequestTypeID,
}
if g == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "TopMsgID",
SchemaName: "top_msg_id",
Null: !g.Flags.Has(0),
},
{
Name: "OffsetID",
SchemaName: "offset_id",
},
{
Name: "AddOffset",
SchemaName: "add_offset",
},
{
Name: "Limit",
SchemaName: "limit",
},
{
Name: "MaxID",
SchemaName: "max_id",
},
{
Name: "MinID",
SchemaName: "min_id",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (g *MessagesGetUnreadPollVotesRequest) SetFlags() {
if !(g.TopMsgID == 0) {
g.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (g *MessagesGetUnreadPollVotesRequest) Encode(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't encode messages.getUnreadPollVotes#43286cf2 as nil")
}
b.PutID(MessagesGetUnreadPollVotesRequestTypeID)
return g.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (g *MessagesGetUnreadPollVotesRequest) EncodeBare(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't encode messages.getUnreadPollVotes#43286cf2 as nil")
}
g.SetFlags()
if err := g.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.getUnreadPollVotes#43286cf2: field flags: %w", err)
}
if g.Peer == nil {
return fmt.Errorf("unable to encode messages.getUnreadPollVotes#43286cf2: field peer is nil")
}
if err := g.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.getUnreadPollVotes#43286cf2: field peer: %w", err)
}
if g.Flags.Has(0) {
b.PutInt(g.TopMsgID)
}
b.PutInt(g.OffsetID)
b.PutInt(g.AddOffset)
b.PutInt(g.Limit)
b.PutInt(g.MaxID)
b.PutInt(g.MinID)
return nil
}
// Decode implements bin.Decoder.
func (g *MessagesGetUnreadPollVotesRequest) Decode(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't decode messages.getUnreadPollVotes#43286cf2 to nil")
}
if err := b.ConsumeID(MessagesGetUnreadPollVotesRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: %w", err)
}
return g.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (g *MessagesGetUnreadPollVotesRequest) DecodeBare(b *bin.Buffer) error {
if g == nil {
return fmt.Errorf("can't decode messages.getUnreadPollVotes#43286cf2 to nil")
}
{
if err := g.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field flags: %w", err)
}
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field peer: %w", err)
}
g.Peer = value
}
if g.Flags.Has(0) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field top_msg_id: %w", err)
}
g.TopMsgID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field offset_id: %w", err)
}
g.OffsetID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field add_offset: %w", err)
}
g.AddOffset = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field limit: %w", err)
}
g.Limit = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field max_id: %w", err)
}
g.MaxID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.getUnreadPollVotes#43286cf2: field min_id: %w", err)
}
g.MinID = value
}
return nil
}
// GetPeer returns value of Peer field.
func (g *MessagesGetUnreadPollVotesRequest) GetPeer() (value InputPeerClass) {
if g == nil {
return
}
return g.Peer
}
// SetTopMsgID sets value of TopMsgID conditional field.
func (g *MessagesGetUnreadPollVotesRequest) SetTopMsgID(value int) {
g.Flags.Set(0)
g.TopMsgID = value
}
// GetTopMsgID returns value of TopMsgID conditional field and
// boolean which is true if field was set.
func (g *MessagesGetUnreadPollVotesRequest) GetTopMsgID() (value int, ok bool) {
if g == nil {
return
}
if !g.Flags.Has(0) {
return value, false
}
return g.TopMsgID, true
}
// GetOffsetID returns value of OffsetID field.
func (g *MessagesGetUnreadPollVotesRequest) GetOffsetID() (value int) {
if g == nil {
return
}
return g.OffsetID
}
// GetAddOffset returns value of AddOffset field.
func (g *MessagesGetUnreadPollVotesRequest) GetAddOffset() (value int) {
if g == nil {
return
}
return g.AddOffset
}
// GetLimit returns value of Limit field.
func (g *MessagesGetUnreadPollVotesRequest) GetLimit() (value int) {
if g == nil {
return
}
return g.Limit
}
// GetMaxID returns value of MaxID field.
func (g *MessagesGetUnreadPollVotesRequest) GetMaxID() (value int) {
if g == nil {
return
}
return g.MaxID
}
// GetMinID returns value of MinID field.
func (g *MessagesGetUnreadPollVotesRequest) GetMinID() (value int) {
if g == nil {
return
}
return g.MinID
}
// MessagesGetUnreadPollVotes invokes method messages.getUnreadPollVotes#43286cf2 returning error if any.
//
// See https://core.telegram.org/method/messages.getUnreadPollVotes for reference.
func (c *Client) MessagesGetUnreadPollVotes(ctx context.Context, request *MessagesGetUnreadPollVotesRequest) (MessagesMessagesClass, error) {
var result MessagesMessagesBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.Messages, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+244
View File
@@ -0,0 +1,244 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesReadPollVotesRequest represents TL type `messages.readPollVotes#1720b4d8`.
//
// See https://core.telegram.org/method/messages.readPollVotes for reference.
type MessagesReadPollVotesRequest struct {
// Flags field of MessagesReadPollVotesRequest.
Flags bin.Fields
// Peer field of MessagesReadPollVotesRequest.
Peer InputPeerClass
// TopMsgID field of MessagesReadPollVotesRequest.
//
// Use SetTopMsgID and GetTopMsgID helpers.
TopMsgID int
}
// MessagesReadPollVotesRequestTypeID is TL type id of MessagesReadPollVotesRequest.
const MessagesReadPollVotesRequestTypeID = 0x1720b4d8
// Ensuring interfaces in compile-time for MessagesReadPollVotesRequest.
var (
_ bin.Encoder = &MessagesReadPollVotesRequest{}
_ bin.Decoder = &MessagesReadPollVotesRequest{}
_ bin.BareEncoder = &MessagesReadPollVotesRequest{}
_ bin.BareDecoder = &MessagesReadPollVotesRequest{}
)
func (r *MessagesReadPollVotesRequest) Zero() bool {
if r == nil {
return true
}
if !(r.Flags.Zero()) {
return false
}
if !(r.Peer == nil) {
return false
}
if !(r.TopMsgID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *MessagesReadPollVotesRequest) String() string {
if r == nil {
return "MessagesReadPollVotesRequest(nil)"
}
type Alias MessagesReadPollVotesRequest
return fmt.Sprintf("MessagesReadPollVotesRequest%+v", Alias(*r))
}
// FillFrom fills MessagesReadPollVotesRequest from given interface.
func (r *MessagesReadPollVotesRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetTopMsgID() (value int, ok bool)
}) {
r.Peer = from.GetPeer()
if val, ok := from.GetTopMsgID(); ok {
r.TopMsgID = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesReadPollVotesRequest) TypeID() uint32 {
return MessagesReadPollVotesRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesReadPollVotesRequest) TypeName() string {
return "messages.readPollVotes"
}
// TypeInfo returns info about TL type.
func (r *MessagesReadPollVotesRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.readPollVotes",
ID: MessagesReadPollVotesRequestTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "TopMsgID",
SchemaName: "top_msg_id",
Null: !r.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (r *MessagesReadPollVotesRequest) SetFlags() {
if !(r.TopMsgID == 0) {
r.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (r *MessagesReadPollVotesRequest) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.readPollVotes#1720b4d8 as nil")
}
b.PutID(MessagesReadPollVotesRequestTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *MessagesReadPollVotesRequest) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.readPollVotes#1720b4d8 as nil")
}
r.SetFlags()
if err := r.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.readPollVotes#1720b4d8: field flags: %w", err)
}
if r.Peer == nil {
return fmt.Errorf("unable to encode messages.readPollVotes#1720b4d8: field peer is nil")
}
if err := r.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.readPollVotes#1720b4d8: field peer: %w", err)
}
if r.Flags.Has(0) {
b.PutInt(r.TopMsgID)
}
return nil
}
// Decode implements bin.Decoder.
func (r *MessagesReadPollVotesRequest) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.readPollVotes#1720b4d8 to nil")
}
if err := b.ConsumeID(MessagesReadPollVotesRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.readPollVotes#1720b4d8: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *MessagesReadPollVotesRequest) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.readPollVotes#1720b4d8 to nil")
}
{
if err := r.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.readPollVotes#1720b4d8: field flags: %w", err)
}
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.readPollVotes#1720b4d8: field peer: %w", err)
}
r.Peer = value
}
if r.Flags.Has(0) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.readPollVotes#1720b4d8: field top_msg_id: %w", err)
}
r.TopMsgID = value
}
return nil
}
// GetPeer returns value of Peer field.
func (r *MessagesReadPollVotesRequest) GetPeer() (value InputPeerClass) {
if r == nil {
return
}
return r.Peer
}
// SetTopMsgID sets value of TopMsgID conditional field.
func (r *MessagesReadPollVotesRequest) SetTopMsgID(value int) {
r.Flags.Set(0)
r.TopMsgID = value
}
// GetTopMsgID returns value of TopMsgID conditional field and
// boolean which is true if field was set.
func (r *MessagesReadPollVotesRequest) GetTopMsgID() (value int, ok bool) {
if r == nil {
return
}
if !r.Flags.Has(0) {
return value, false
}
return r.TopMsgID, true
}
// MessagesReadPollVotes invokes method messages.readPollVotes#1720b4d8 returning error if any.
//
// See https://core.telegram.org/method/messages.readPollVotes for reference.
func (c *Client) MessagesReadPollVotes(ctx context.Context, request *MessagesReadPollVotesRequest) (*MessagesAffectedHistory, error) {
var result MessagesAffectedHistory
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return &result, nil
}
+35
View File
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+211
View File
@@ -0,0 +1,211 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesReportMusicListenRequest represents TL type `messages.reportMusicListen#ddbcd819`.
//
// See https://core.telegram.org/method/messages.reportMusicListen for reference.
type MessagesReportMusicListenRequest struct {
// ID field of MessagesReportMusicListenRequest.
ID InputDocumentClass
// ListenedDuration field of MessagesReportMusicListenRequest.
ListenedDuration int
}
// MessagesReportMusicListenRequestTypeID is TL type id of MessagesReportMusicListenRequest.
const MessagesReportMusicListenRequestTypeID = 0xddbcd819
// Ensuring interfaces in compile-time for MessagesReportMusicListenRequest.
var (
_ bin.Encoder = &MessagesReportMusicListenRequest{}
_ bin.Decoder = &MessagesReportMusicListenRequest{}
_ bin.BareEncoder = &MessagesReportMusicListenRequest{}
_ bin.BareDecoder = &MessagesReportMusicListenRequest{}
)
func (r *MessagesReportMusicListenRequest) Zero() bool {
if r == nil {
return true
}
if !(r.ID == nil) {
return false
}
if !(r.ListenedDuration == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *MessagesReportMusicListenRequest) String() string {
if r == nil {
return "MessagesReportMusicListenRequest(nil)"
}
type Alias MessagesReportMusicListenRequest
return fmt.Sprintf("MessagesReportMusicListenRequest%+v", Alias(*r))
}
// FillFrom fills MessagesReportMusicListenRequest from given interface.
func (r *MessagesReportMusicListenRequest) FillFrom(from interface {
GetID() (value InputDocumentClass)
GetListenedDuration() (value int)
}) {
r.ID = from.GetID()
r.ListenedDuration = from.GetListenedDuration()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesReportMusicListenRequest) TypeID() uint32 {
return MessagesReportMusicListenRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesReportMusicListenRequest) TypeName() string {
return "messages.reportMusicListen"
}
// TypeInfo returns info about TL type.
func (r *MessagesReportMusicListenRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.reportMusicListen",
ID: MessagesReportMusicListenRequestTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ID",
SchemaName: "id",
},
{
Name: "ListenedDuration",
SchemaName: "listened_duration",
},
}
return typ
}
// Encode implements bin.Encoder.
func (r *MessagesReportMusicListenRequest) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.reportMusicListen#ddbcd819 as nil")
}
b.PutID(MessagesReportMusicListenRequestTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *MessagesReportMusicListenRequest) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.reportMusicListen#ddbcd819 as nil")
}
if r.ID == nil {
return fmt.Errorf("unable to encode messages.reportMusicListen#ddbcd819: field id is nil")
}
if err := r.ID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.reportMusicListen#ddbcd819: field id: %w", err)
}
b.PutInt(r.ListenedDuration)
return nil
}
// Decode implements bin.Decoder.
func (r *MessagesReportMusicListenRequest) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.reportMusicListen#ddbcd819 to nil")
}
if err := b.ConsumeID(MessagesReportMusicListenRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.reportMusicListen#ddbcd819: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *MessagesReportMusicListenRequest) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.reportMusicListen#ddbcd819 to nil")
}
{
value, err := DecodeInputDocument(b)
if err != nil {
return fmt.Errorf("unable to decode messages.reportMusicListen#ddbcd819: field id: %w", err)
}
r.ID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.reportMusicListen#ddbcd819: field listened_duration: %w", err)
}
r.ListenedDuration = value
}
return nil
}
// GetID returns value of ID field.
func (r *MessagesReportMusicListenRequest) GetID() (value InputDocumentClass) {
if r == nil {
return
}
return r.ID
}
// GetListenedDuration returns value of ListenedDuration field.
func (r *MessagesReportMusicListenRequest) GetListenedDuration() (value int) {
if r == nil {
return
}
return r.ListenedDuration
}
// GetIDAsNotEmpty returns mapped value of ID field.
func (r *MessagesReportMusicListenRequest) GetIDAsNotEmpty() (*InputDocument, bool) {
return r.ID.AsNotEmpty()
}
// MessagesReportMusicListen invokes method messages.reportMusicListen#ddbcd819 returning error if any.
//
// See https://core.telegram.org/method/messages.reportMusicListen for reference.
func (c *Client) MessagesReportMusicListen(ctx context.Context, request *MessagesReportMusicListenRequest) (bool, error) {
var result BoolBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return false, err
}
_, ok := result.Bool.(*BoolTrue)
return ok, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+221
View File
@@ -0,0 +1,221 @@
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesReportReadMetricsRequest represents TL type `messages.reportReadMetrics#4067c5e6`.
//
// See https://core.telegram.org/method/messages.reportReadMetrics for reference.
type MessagesReportReadMetricsRequest struct {
// Peer field of MessagesReportReadMetricsRequest.
Peer InputPeerClass
// Metrics field of MessagesReportReadMetricsRequest.
Metrics []InputMessageReadMetric
}
// MessagesReportReadMetricsRequestTypeID is TL type id of MessagesReportReadMetricsRequest.
const MessagesReportReadMetricsRequestTypeID = 0x4067c5e6
// Ensuring interfaces in compile-time for MessagesReportReadMetricsRequest.
var (
_ bin.Encoder = &MessagesReportReadMetricsRequest{}
_ bin.Decoder = &MessagesReportReadMetricsRequest{}
_ bin.BareEncoder = &MessagesReportReadMetricsRequest{}
_ bin.BareDecoder = &MessagesReportReadMetricsRequest{}
)
func (r *MessagesReportReadMetricsRequest) Zero() bool {
if r == nil {
return true
}
if !(r.Peer == nil) {
return false
}
if !(r.Metrics == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *MessagesReportReadMetricsRequest) String() string {
if r == nil {
return "MessagesReportReadMetricsRequest(nil)"
}
type Alias MessagesReportReadMetricsRequest
return fmt.Sprintf("MessagesReportReadMetricsRequest%+v", Alias(*r))
}
// FillFrom fills MessagesReportReadMetricsRequest from given interface.
func (r *MessagesReportReadMetricsRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetMetrics() (value []InputMessageReadMetric)
}) {
r.Peer = from.GetPeer()
r.Metrics = from.GetMetrics()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesReportReadMetricsRequest) TypeID() uint32 {
return MessagesReportReadMetricsRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesReportReadMetricsRequest) TypeName() string {
return "messages.reportReadMetrics"
}
// TypeInfo returns info about TL type.
func (r *MessagesReportReadMetricsRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.reportReadMetrics",
ID: MessagesReportReadMetricsRequestTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "Metrics",
SchemaName: "metrics",
},
}
return typ
}
// Encode implements bin.Encoder.
func (r *MessagesReportReadMetricsRequest) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.reportReadMetrics#4067c5e6 as nil")
}
b.PutID(MessagesReportReadMetricsRequestTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *MessagesReportReadMetricsRequest) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode messages.reportReadMetrics#4067c5e6 as nil")
}
if r.Peer == nil {
return fmt.Errorf("unable to encode messages.reportReadMetrics#4067c5e6: field peer is nil")
}
if err := r.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.reportReadMetrics#4067c5e6: field peer: %w", err)
}
b.PutVectorHeader(len(r.Metrics))
for idx, v := range r.Metrics {
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.reportReadMetrics#4067c5e6: field metrics element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (r *MessagesReportReadMetricsRequest) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.reportReadMetrics#4067c5e6 to nil")
}
if err := b.ConsumeID(MessagesReportReadMetricsRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.reportReadMetrics#4067c5e6: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *MessagesReportReadMetricsRequest) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode messages.reportReadMetrics#4067c5e6 to nil")
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.reportReadMetrics#4067c5e6: field peer: %w", err)
}
r.Peer = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messages.reportReadMetrics#4067c5e6: field metrics: %w", err)
}
if headerLen > 0 {
r.Metrics = make([]InputMessageReadMetric, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value InputMessageReadMetric
if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.reportReadMetrics#4067c5e6: field metrics: %w", err)
}
r.Metrics = append(r.Metrics, value)
}
}
return nil
}
// GetPeer returns value of Peer field.
func (r *MessagesReportReadMetricsRequest) GetPeer() (value InputPeerClass) {
if r == nil {
return
}
return r.Peer
}
// GetMetrics returns value of Metrics field.
func (r *MessagesReportReadMetricsRequest) GetMetrics() (value []InputMessageReadMetric) {
if r == nil {
return
}
return r.Metrics
}
// MessagesReportReadMetrics invokes method messages.reportReadMetrics#4067c5e6 returning error if any.
//
// See https://core.telegram.org/method/messages.reportReadMetrics for reference.
func (c *Client) MessagesReportReadMetrics(ctx context.Context, request *MessagesReportReadMetricsRequest) (bool, error) {
var result BoolBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return false, err
}
_, ok := result.Bool.(*BoolTrue)
return ok, nil
}
@@ -0,0 +1,35 @@
//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
+111 -24
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// MessagesSendBotRequestedPeerRequest represents TL type `messages.sendBotRequestedPeer#91b2d060`. // MessagesSendBotRequestedPeerRequest represents TL type `messages.sendBotRequestedPeer#6c5cf2a7`.
// Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button. // Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button.
// //
// Links: // Links:
@@ -39,6 +39,8 @@ var (
// //
// See https://core.telegram.org/method/messages.sendBotRequestedPeer for reference. // See https://core.telegram.org/method/messages.sendBotRequestedPeer for reference.
type MessagesSendBotRequestedPeerRequest struct { type MessagesSendBotRequestedPeerRequest struct {
// Flags field of MessagesSendBotRequestedPeerRequest.
Flags bin.Fields
// The bot that sent the keyboardButtonRequestPeer¹ button. // The bot that sent the keyboardButtonRequestPeer¹ button.
// //
// Links: // Links:
@@ -49,7 +51,13 @@ type MessagesSendBotRequestedPeerRequest struct {
// //
// Links: // Links:
// 1) https://core.telegram.org/constructor/keyboardButtonRequestPeer // 1) https://core.telegram.org/constructor/keyboardButtonRequestPeer
//
// Use SetMsgID and GetMsgID helpers.
MsgID int MsgID int
// WebappReqID field of MessagesSendBotRequestedPeerRequest.
//
// Use SetWebappReqID and GetWebappReqID helpers.
WebappReqID string
// The button_id field from the keyboardButtonRequestPeer¹ constructor. // The button_id field from the keyboardButtonRequestPeer¹ constructor.
// //
// Links: // Links:
@@ -60,7 +68,7 @@ type MessagesSendBotRequestedPeerRequest struct {
} }
// MessagesSendBotRequestedPeerRequestTypeID is TL type id of MessagesSendBotRequestedPeerRequest. // MessagesSendBotRequestedPeerRequestTypeID is TL type id of MessagesSendBotRequestedPeerRequest.
const MessagesSendBotRequestedPeerRequestTypeID = 0x91b2d060 const MessagesSendBotRequestedPeerRequestTypeID = 0x6c5cf2a7
// Ensuring interfaces in compile-time for MessagesSendBotRequestedPeerRequest. // Ensuring interfaces in compile-time for MessagesSendBotRequestedPeerRequest.
var ( var (
@@ -74,12 +82,18 @@ func (s *MessagesSendBotRequestedPeerRequest) Zero() bool {
if s == nil { if s == nil {
return true return true
} }
if !(s.Flags.Zero()) {
return false
}
if !(s.Peer == nil) { if !(s.Peer == nil) {
return false return false
} }
if !(s.MsgID == 0) { if !(s.MsgID == 0) {
return false return false
} }
if !(s.WebappReqID == "") {
return false
}
if !(s.ButtonID == 0) { if !(s.ButtonID == 0) {
return false return false
} }
@@ -102,12 +116,20 @@ func (s *MessagesSendBotRequestedPeerRequest) String() string {
// FillFrom fills MessagesSendBotRequestedPeerRequest from given interface. // FillFrom fills MessagesSendBotRequestedPeerRequest from given interface.
func (s *MessagesSendBotRequestedPeerRequest) FillFrom(from interface { func (s *MessagesSendBotRequestedPeerRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass) GetPeer() (value InputPeerClass)
GetMsgID() (value int) GetMsgID() (value int, ok bool)
GetWebappReqID() (value string, ok bool)
GetButtonID() (value int) GetButtonID() (value int)
GetRequestedPeers() (value []InputPeerClass) GetRequestedPeers() (value []InputPeerClass)
}) { }) {
s.Peer = from.GetPeer() s.Peer = from.GetPeer()
s.MsgID = from.GetMsgID() if val, ok := from.GetMsgID(); ok {
s.MsgID = val
}
if val, ok := from.GetWebappReqID(); ok {
s.WebappReqID = val
}
s.ButtonID = from.GetButtonID() s.ButtonID = from.GetButtonID()
s.RequestedPeers = from.GetRequestedPeers() s.RequestedPeers = from.GetRequestedPeers()
} }
@@ -142,6 +164,12 @@ func (s *MessagesSendBotRequestedPeerRequest) TypeInfo() tdp.Type {
{ {
Name: "MsgID", Name: "MsgID",
SchemaName: "msg_id", SchemaName: "msg_id",
Null: !s.Flags.Has(0),
},
{
Name: "WebappReqID",
SchemaName: "webapp_req_id",
Null: !s.Flags.Has(1),
}, },
{ {
Name: "ButtonID", Name: "ButtonID",
@@ -155,10 +183,20 @@ func (s *MessagesSendBotRequestedPeerRequest) TypeInfo() tdp.Type {
return typ return typ
} }
// SetFlags sets flags for non-zero fields.
func (s *MessagesSendBotRequestedPeerRequest) SetFlags() {
if !(s.MsgID == 0) {
s.Flags.Set(0)
}
if !(s.WebappReqID == "") {
s.Flags.Set(1)
}
}
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (s *MessagesSendBotRequestedPeerRequest) Encode(b *bin.Buffer) error { func (s *MessagesSendBotRequestedPeerRequest) Encode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode messages.sendBotRequestedPeer#91b2d060 as nil") return fmt.Errorf("can't encode messages.sendBotRequestedPeer#6c5cf2a7 as nil")
} }
b.PutID(MessagesSendBotRequestedPeerRequestTypeID) b.PutID(MessagesSendBotRequestedPeerRequestTypeID)
return s.EncodeBare(b) return s.EncodeBare(b)
@@ -167,23 +205,32 @@ func (s *MessagesSendBotRequestedPeerRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (s *MessagesSendBotRequestedPeerRequest) EncodeBare(b *bin.Buffer) error { func (s *MessagesSendBotRequestedPeerRequest) EncodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode messages.sendBotRequestedPeer#91b2d060 as nil") return fmt.Errorf("can't encode messages.sendBotRequestedPeer#6c5cf2a7 as nil")
}
s.SetFlags()
if err := s.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#6c5cf2a7: field flags: %w", err)
} }
if s.Peer == nil { if s.Peer == nil {
return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#91b2d060: field peer is nil") return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#6c5cf2a7: field peer is nil")
} }
if err := s.Peer.Encode(b); err != nil { if err := s.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#91b2d060: field peer: %w", err) return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#6c5cf2a7: field peer: %w", err)
}
if s.Flags.Has(0) {
b.PutInt(s.MsgID)
}
if s.Flags.Has(1) {
b.PutString(s.WebappReqID)
} }
b.PutInt(s.MsgID)
b.PutInt(s.ButtonID) b.PutInt(s.ButtonID)
b.PutVectorHeader(len(s.RequestedPeers)) b.PutVectorHeader(len(s.RequestedPeers))
for idx, v := range s.RequestedPeers { for idx, v := range s.RequestedPeers {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#91b2d060: field requested_peers element with index %d is nil", idx) return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#6c5cf2a7: field requested_peers element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#91b2d060: field requested_peers element with index %d: %w", idx, err) return fmt.Errorf("unable to encode messages.sendBotRequestedPeer#6c5cf2a7: field requested_peers element with index %d: %w", idx, err)
} }
} }
return nil return nil
@@ -192,10 +239,10 @@ func (s *MessagesSendBotRequestedPeerRequest) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (s *MessagesSendBotRequestedPeerRequest) Decode(b *bin.Buffer) error { func (s *MessagesSendBotRequestedPeerRequest) Decode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode messages.sendBotRequestedPeer#91b2d060 to nil") return fmt.Errorf("can't decode messages.sendBotRequestedPeer#6c5cf2a7 to nil")
} }
if err := b.ConsumeID(MessagesSendBotRequestedPeerRequestTypeID); err != nil { if err := b.ConsumeID(MessagesSendBotRequestedPeerRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: %w", err)
} }
return s.DecodeBare(b) return s.DecodeBare(b)
} }
@@ -203,33 +250,45 @@ func (s *MessagesSendBotRequestedPeerRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (s *MessagesSendBotRequestedPeerRequest) DecodeBare(b *bin.Buffer) error { func (s *MessagesSendBotRequestedPeerRequest) DecodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode messages.sendBotRequestedPeer#91b2d060 to nil") return fmt.Errorf("can't decode messages.sendBotRequestedPeer#6c5cf2a7 to nil")
}
{
if err := s.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field flags: %w", err)
}
} }
{ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: field peer: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field peer: %w", err)
} }
s.Peer = value s.Peer = value
} }
{ if s.Flags.Has(0) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: field msg_id: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field msg_id: %w", err)
} }
s.MsgID = value s.MsgID = value
} }
if s.Flags.Has(1) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field webapp_req_id: %w", err)
}
s.WebappReqID = value
}
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: field button_id: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field button_id: %w", err)
} }
s.ButtonID = value s.ButtonID = value
} }
{ {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: field requested_peers: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field requested_peers: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -238,7 +297,7 @@ func (s *MessagesSendBotRequestedPeerRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#91b2d060: field requested_peers: %w", err) return fmt.Errorf("unable to decode messages.sendBotRequestedPeer#6c5cf2a7: field requested_peers: %w", err)
} }
s.RequestedPeers = append(s.RequestedPeers, value) s.RequestedPeers = append(s.RequestedPeers, value)
} }
@@ -254,12 +313,40 @@ func (s *MessagesSendBotRequestedPeerRequest) GetPeer() (value InputPeerClass) {
return s.Peer return s.Peer
} }
// GetMsgID returns value of MsgID field. // SetMsgID sets value of MsgID conditional field.
func (s *MessagesSendBotRequestedPeerRequest) GetMsgID() (value int) { func (s *MessagesSendBotRequestedPeerRequest) SetMsgID(value int) {
s.Flags.Set(0)
s.MsgID = value
}
// GetMsgID returns value of MsgID conditional field and
// boolean which is true if field was set.
func (s *MessagesSendBotRequestedPeerRequest) GetMsgID() (value int, ok bool) {
if s == nil { if s == nil {
return return
} }
return s.MsgID if !s.Flags.Has(0) {
return value, false
}
return s.MsgID, true
}
// SetWebappReqID sets value of WebappReqID conditional field.
func (s *MessagesSendBotRequestedPeerRequest) SetWebappReqID(value string) {
s.Flags.Set(1)
s.WebappReqID = value
}
// GetWebappReqID returns value of WebappReqID conditional field and
// boolean which is true if field was set.
func (s *MessagesSendBotRequestedPeerRequest) GetWebappReqID() (value string, ok bool) {
if s == nil {
return
}
if !s.Flags.Has(1) {
return value, false
}
return s.WebappReqID, true
} }
// GetButtonID returns value of ButtonID field. // GetButtonID returns value of ButtonID field.
@@ -283,7 +370,7 @@ func (s *MessagesSendBotRequestedPeerRequest) MapRequestedPeers() (value InputPe
return InputPeerClassArray(s.RequestedPeers) return InputPeerClassArray(s.RequestedPeers)
} }
// MessagesSendBotRequestedPeer invokes method messages.sendBotRequestedPeer#91b2d060 returning error if any. // MessagesSendBotRequestedPeer invokes method messages.sendBotRequestedPeer#6c5cf2a7 returning error if any.
// Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button. // Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button.
// //
// Links: // Links:
+63 -15
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// MessagesSummarizeTextRequest represents TL type `messages.summarizeText#9d4104e2`. // MessagesSummarizeTextRequest represents TL type `messages.summarizeText#abbbd346`.
// //
// See https://core.telegram.org/method/messages.summarizeText for reference. // See https://core.telegram.org/method/messages.summarizeText for reference.
type MessagesSummarizeTextRequest struct { type MessagesSummarizeTextRequest struct {
@@ -45,10 +45,14 @@ type MessagesSummarizeTextRequest struct {
// //
// Use SetToLang and GetToLang helpers. // Use SetToLang and GetToLang helpers.
ToLang string ToLang string
// Tone field of MessagesSummarizeTextRequest.
//
// Use SetTone and GetTone helpers.
Tone string
} }
// MessagesSummarizeTextRequestTypeID is TL type id of MessagesSummarizeTextRequest. // MessagesSummarizeTextRequestTypeID is TL type id of MessagesSummarizeTextRequest.
const MessagesSummarizeTextRequestTypeID = 0x9d4104e2 const MessagesSummarizeTextRequestTypeID = 0xabbbd346
// Ensuring interfaces in compile-time for MessagesSummarizeTextRequest. // Ensuring interfaces in compile-time for MessagesSummarizeTextRequest.
var ( var (
@@ -74,6 +78,9 @@ func (s *MessagesSummarizeTextRequest) Zero() bool {
if !(s.ToLang == "") { if !(s.ToLang == "") {
return false return false
} }
if !(s.Tone == "") {
return false
}
return true return true
} }
@@ -92,6 +99,7 @@ func (s *MessagesSummarizeTextRequest) FillFrom(from interface {
GetPeer() (value InputPeerClass) GetPeer() (value InputPeerClass)
GetID() (value int) GetID() (value int)
GetToLang() (value string, ok bool) GetToLang() (value string, ok bool)
GetTone() (value string, ok bool)
}) { }) {
s.Peer = from.GetPeer() s.Peer = from.GetPeer()
s.ID = from.GetID() s.ID = from.GetID()
@@ -99,6 +107,10 @@ func (s *MessagesSummarizeTextRequest) FillFrom(from interface {
s.ToLang = val s.ToLang = val
} }
if val, ok := from.GetTone(); ok {
s.Tone = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -137,6 +149,11 @@ func (s *MessagesSummarizeTextRequest) TypeInfo() tdp.Type {
SchemaName: "to_lang", SchemaName: "to_lang",
Null: !s.Flags.Has(0), Null: !s.Flags.Has(0),
}, },
{
Name: "Tone",
SchemaName: "tone",
Null: !s.Flags.Has(2),
},
} }
return typ return typ
} }
@@ -146,12 +163,15 @@ func (s *MessagesSummarizeTextRequest) SetFlags() {
if !(s.ToLang == "") { if !(s.ToLang == "") {
s.Flags.Set(0) s.Flags.Set(0)
} }
if !(s.Tone == "") {
s.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (s *MessagesSummarizeTextRequest) Encode(b *bin.Buffer) error { func (s *MessagesSummarizeTextRequest) Encode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode messages.summarizeText#9d4104e2 as nil") return fmt.Errorf("can't encode messages.summarizeText#abbbd346 as nil")
} }
b.PutID(MessagesSummarizeTextRequestTypeID) b.PutID(MessagesSummarizeTextRequestTypeID)
return s.EncodeBare(b) return s.EncodeBare(b)
@@ -160,32 +180,35 @@ func (s *MessagesSummarizeTextRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (s *MessagesSummarizeTextRequest) EncodeBare(b *bin.Buffer) error { func (s *MessagesSummarizeTextRequest) EncodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode messages.summarizeText#9d4104e2 as nil") return fmt.Errorf("can't encode messages.summarizeText#abbbd346 as nil")
} }
s.SetFlags() s.SetFlags()
if err := s.Flags.Encode(b); err != nil { if err := s.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.summarizeText#9d4104e2: field flags: %w", err) return fmt.Errorf("unable to encode messages.summarizeText#abbbd346: field flags: %w", err)
} }
if s.Peer == nil { if s.Peer == nil {
return fmt.Errorf("unable to encode messages.summarizeText#9d4104e2: field peer is nil") return fmt.Errorf("unable to encode messages.summarizeText#abbbd346: field peer is nil")
} }
if err := s.Peer.Encode(b); err != nil { if err := s.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.summarizeText#9d4104e2: field peer: %w", err) return fmt.Errorf("unable to encode messages.summarizeText#abbbd346: field peer: %w", err)
} }
b.PutInt(s.ID) b.PutInt(s.ID)
if s.Flags.Has(0) { if s.Flags.Has(0) {
b.PutString(s.ToLang) b.PutString(s.ToLang)
} }
if s.Flags.Has(2) {
b.PutString(s.Tone)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (s *MessagesSummarizeTextRequest) Decode(b *bin.Buffer) error { func (s *MessagesSummarizeTextRequest) Decode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode messages.summarizeText#9d4104e2 to nil") return fmt.Errorf("can't decode messages.summarizeText#abbbd346 to nil")
} }
if err := b.ConsumeID(MessagesSummarizeTextRequestTypeID); err != nil { if err := b.ConsumeID(MessagesSummarizeTextRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#9d4104e2: %w", err) return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: %w", err)
} }
return s.DecodeBare(b) return s.DecodeBare(b)
} }
@@ -193,34 +216,41 @@ func (s *MessagesSummarizeTextRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (s *MessagesSummarizeTextRequest) DecodeBare(b *bin.Buffer) error { func (s *MessagesSummarizeTextRequest) DecodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode messages.summarizeText#9d4104e2 to nil") return fmt.Errorf("can't decode messages.summarizeText#abbbd346 to nil")
} }
{ {
if err := s.Flags.Decode(b); err != nil { if err := s.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#9d4104e2: field flags: %w", err) return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: field flags: %w", err)
} }
} }
{ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#9d4104e2: field peer: %w", err) return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: field peer: %w", err)
} }
s.Peer = value s.Peer = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#9d4104e2: field id: %w", err) return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: field id: %w", err)
} }
s.ID = value s.ID = value
} }
if s.Flags.Has(0) { if s.Flags.Has(0) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#9d4104e2: field to_lang: %w", err) return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: field to_lang: %w", err)
} }
s.ToLang = value s.ToLang = value
} }
if s.Flags.Has(2) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messages.summarizeText#abbbd346: field tone: %w", err)
}
s.Tone = value
}
return nil return nil
} }
@@ -258,7 +288,25 @@ func (s *MessagesSummarizeTextRequest) GetToLang() (value string, ok bool) {
return s.ToLang, true return s.ToLang, true
} }
// MessagesSummarizeText invokes method messages.summarizeText#9d4104e2 returning error if any. // SetTone sets value of Tone conditional field.
func (s *MessagesSummarizeTextRequest) SetTone(value string) {
s.Flags.Set(2)
s.Tone = value
}
// GetTone returns value of Tone conditional field and
// boolean which is true if field was set.
func (s *MessagesSummarizeTextRequest) GetTone() (value string, ok bool) {
if s == nil {
return
}
if !s.Flags.Has(2) {
return value, false
}
return s.Tone, true
}
// MessagesSummarizeText invokes method messages.summarizeText#abbbd346 returning error if any.
// //
// See https://core.telegram.org/method/messages.summarizeText for reference. // See https://core.telegram.org/method/messages.summarizeText for reference.
func (c *Client) MessagesSummarizeText(ctx context.Context, request *MessagesSummarizeTextRequest) (*TextWithEntities, error) { func (c *Client) MessagesSummarizeText(ctx context.Context, request *MessagesSummarizeTextRequest) (*TextWithEntities, error) {
+67 -19
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// MessagesTranslateTextRequest represents TL type `messages.translateText#63183030`. // MessagesTranslateTextRequest represents TL type `messages.translateText#a5eec345`.
// Translate a given text. // Translate a given text.
// Styled text entities¹ will only be preserved for Telegram Premium² users. // Styled text entities¹ will only be preserved for Telegram Premium² users.
// //
@@ -60,10 +60,14 @@ type MessagesTranslateTextRequest struct {
Text []TextWithEntities Text []TextWithEntities
// Two-letter ISO 639-1 language code of the language to which the message is translated // Two-letter ISO 639-1 language code of the language to which the message is translated
ToLang string ToLang string
// Tone field of MessagesTranslateTextRequest.
//
// Use SetTone and GetTone helpers.
Tone string
} }
// MessagesTranslateTextRequestTypeID is TL type id of MessagesTranslateTextRequest. // MessagesTranslateTextRequestTypeID is TL type id of MessagesTranslateTextRequest.
const MessagesTranslateTextRequestTypeID = 0x63183030 const MessagesTranslateTextRequestTypeID = 0xa5eec345
// Ensuring interfaces in compile-time for MessagesTranslateTextRequest. // Ensuring interfaces in compile-time for MessagesTranslateTextRequest.
var ( var (
@@ -92,6 +96,9 @@ func (t *MessagesTranslateTextRequest) Zero() bool {
if !(t.ToLang == "") { if !(t.ToLang == "") {
return false return false
} }
if !(t.Tone == "") {
return false
}
return true return true
} }
@@ -111,6 +118,7 @@ func (t *MessagesTranslateTextRequest) FillFrom(from interface {
GetID() (value []int, ok bool) GetID() (value []int, ok bool)
GetText() (value []TextWithEntities, ok bool) GetText() (value []TextWithEntities, ok bool)
GetToLang() (value string) GetToLang() (value string)
GetTone() (value string, ok bool)
}) { }) {
if val, ok := from.GetPeer(); ok { if val, ok := from.GetPeer(); ok {
t.Peer = val t.Peer = val
@@ -125,6 +133,10 @@ func (t *MessagesTranslateTextRequest) FillFrom(from interface {
} }
t.ToLang = from.GetToLang() t.ToLang = from.GetToLang()
if val, ok := from.GetTone(); ok {
t.Tone = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -169,6 +181,11 @@ func (t *MessagesTranslateTextRequest) TypeInfo() tdp.Type {
Name: "ToLang", Name: "ToLang",
SchemaName: "to_lang", SchemaName: "to_lang",
}, },
{
Name: "Tone",
SchemaName: "tone",
Null: !t.Flags.Has(2),
},
} }
return typ return typ
} }
@@ -184,12 +201,15 @@ func (t *MessagesTranslateTextRequest) SetFlags() {
if !(t.Text == nil) { if !(t.Text == nil) {
t.Flags.Set(1) t.Flags.Set(1)
} }
if !(t.Tone == "") {
t.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (t *MessagesTranslateTextRequest) Encode(b *bin.Buffer) error { func (t *MessagesTranslateTextRequest) Encode(b *bin.Buffer) error {
if t == nil { if t == nil {
return fmt.Errorf("can't encode messages.translateText#63183030 as nil") return fmt.Errorf("can't encode messages.translateText#a5eec345 as nil")
} }
b.PutID(MessagesTranslateTextRequestTypeID) b.PutID(MessagesTranslateTextRequestTypeID)
return t.EncodeBare(b) return t.EncodeBare(b)
@@ -198,18 +218,18 @@ func (t *MessagesTranslateTextRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (t *MessagesTranslateTextRequest) EncodeBare(b *bin.Buffer) error { func (t *MessagesTranslateTextRequest) EncodeBare(b *bin.Buffer) error {
if t == nil { if t == nil {
return fmt.Errorf("can't encode messages.translateText#63183030 as nil") return fmt.Errorf("can't encode messages.translateText#a5eec345 as nil")
} }
t.SetFlags() t.SetFlags()
if err := t.Flags.Encode(b); err != nil { if err := t.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.translateText#63183030: field flags: %w", err) return fmt.Errorf("unable to encode messages.translateText#a5eec345: field flags: %w", err)
} }
if t.Flags.Has(0) { if t.Flags.Has(0) {
if t.Peer == nil { if t.Peer == nil {
return fmt.Errorf("unable to encode messages.translateText#63183030: field peer is nil") return fmt.Errorf("unable to encode messages.translateText#a5eec345: field peer is nil")
} }
if err := t.Peer.Encode(b); err != nil { if err := t.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.translateText#63183030: field peer: %w", err) return fmt.Errorf("unable to encode messages.translateText#a5eec345: field peer: %w", err)
} }
} }
if t.Flags.Has(0) { if t.Flags.Has(0) {
@@ -222,21 +242,24 @@ func (t *MessagesTranslateTextRequest) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(t.Text)) b.PutVectorHeader(len(t.Text))
for idx, v := range t.Text { for idx, v := range t.Text {
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.translateText#63183030: field text element with index %d: %w", idx, err) return fmt.Errorf("unable to encode messages.translateText#a5eec345: field text element with index %d: %w", idx, err)
} }
} }
} }
b.PutString(t.ToLang) b.PutString(t.ToLang)
if t.Flags.Has(2) {
b.PutString(t.Tone)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (t *MessagesTranslateTextRequest) Decode(b *bin.Buffer) error { func (t *MessagesTranslateTextRequest) Decode(b *bin.Buffer) error {
if t == nil { if t == nil {
return fmt.Errorf("can't decode messages.translateText#63183030 to nil") return fmt.Errorf("can't decode messages.translateText#a5eec345 to nil")
} }
if err := b.ConsumeID(MessagesTranslateTextRequestTypeID); err != nil { if err := b.ConsumeID(MessagesTranslateTextRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: %w", err)
} }
return t.DecodeBare(b) return t.DecodeBare(b)
} }
@@ -244,24 +267,24 @@ func (t *MessagesTranslateTextRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error { func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error {
if t == nil { if t == nil {
return fmt.Errorf("can't decode messages.translateText#63183030 to nil") return fmt.Errorf("can't decode messages.translateText#a5eec345 to nil")
} }
{ {
if err := t.Flags.Decode(b); err != nil { if err := t.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field flags: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field flags: %w", err)
} }
} }
if t.Flags.Has(0) { if t.Flags.Has(0) {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field peer: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field peer: %w", err)
} }
t.Peer = value t.Peer = value
} }
if t.Flags.Has(0) { if t.Flags.Has(0) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field id: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field id: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -270,7 +293,7 @@ func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field id: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field id: %w", err)
} }
t.ID = append(t.ID, value) t.ID = append(t.ID, value)
} }
@@ -278,7 +301,7 @@ func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error {
if t.Flags.Has(1) { if t.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field text: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field text: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -287,7 +310,7 @@ func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
var value TextWithEntities var value TextWithEntities
if err := value.Decode(b); err != nil { if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field text: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field text: %w", err)
} }
t.Text = append(t.Text, value) t.Text = append(t.Text, value)
} }
@@ -295,10 +318,17 @@ func (t *MessagesTranslateTextRequest) DecodeBare(b *bin.Buffer) error {
{ {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode messages.translateText#63183030: field to_lang: %w", err) return fmt.Errorf("unable to decode messages.translateText#a5eec345: field to_lang: %w", err)
} }
t.ToLang = value t.ToLang = value
} }
if t.Flags.Has(2) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messages.translateText#a5eec345: field tone: %w", err)
}
t.Tone = value
}
return nil return nil
} }
@@ -364,7 +394,25 @@ func (t *MessagesTranslateTextRequest) GetToLang() (value string) {
return t.ToLang return t.ToLang
} }
// MessagesTranslateText invokes method messages.translateText#63183030 returning error if any. // SetTone sets value of Tone conditional field.
func (t *MessagesTranslateTextRequest) SetTone(value string) {
t.Flags.Set(2)
t.Tone = value
}
// GetTone returns value of Tone conditional field and
// boolean which is true if field was set.
func (t *MessagesTranslateTextRequest) GetTone() (value string, ok bool) {
if t == nil {
return
}
if !t.Flags.Has(2) {
return value, false
}
return t.Tone, true
}
// MessagesTranslateText invokes method messages.translateText#a5eec345 returning error if any.
// Translate a given text. // Translate a given text.
// Styled text entities¹ will only be preserved for Telegram Premium² users. // Styled text entities¹ will only be preserved for Telegram Premium² users.
// //
+35
View File
@@ -56,6 +56,8 @@ type PaymentsGetResaleStarGiftsRequest struct {
SortByNum bool SortByNum bool
// ForCraft field of PaymentsGetResaleStarGiftsRequest. // ForCraft field of PaymentsGetResaleStarGiftsRequest.
ForCraft bool ForCraft bool
// StarsOnly field of PaymentsGetResaleStarGiftsRequest.
StarsOnly bool
// If a previous call to the method was made and payments.resaleStarGifts¹ // If a previous call to the method was made and payments.resaleStarGifts¹
// attributes_hash was set, pass it here to avoid returning any results if they haven't // attributes_hash was set, pass it here to avoid returning any results if they haven't
// changed. Otherwise, set this flag and pass 0 to return payments.resaleStarGifts² // changed. Otherwise, set this flag and pass 0 to return payments.resaleStarGifts²
@@ -117,6 +119,9 @@ func (g *PaymentsGetResaleStarGiftsRequest) Zero() bool {
if !(g.ForCraft == false) { if !(g.ForCraft == false) {
return false return false
} }
if !(g.StarsOnly == false) {
return false
}
if !(g.AttributesHash == 0) { if !(g.AttributesHash == 0) {
return false return false
} }
@@ -150,6 +155,7 @@ func (g *PaymentsGetResaleStarGiftsRequest) FillFrom(from interface {
GetSortByPrice() (value bool) GetSortByPrice() (value bool)
GetSortByNum() (value bool) GetSortByNum() (value bool)
GetForCraft() (value bool) GetForCraft() (value bool)
GetStarsOnly() (value bool)
GetAttributesHash() (value int64, ok bool) GetAttributesHash() (value int64, ok bool)
GetGiftID() (value int64) GetGiftID() (value int64)
GetAttributes() (value []StarGiftAttributeIDClass, ok bool) GetAttributes() (value []StarGiftAttributeIDClass, ok bool)
@@ -159,6 +165,7 @@ func (g *PaymentsGetResaleStarGiftsRequest) FillFrom(from interface {
g.SortByPrice = from.GetSortByPrice() g.SortByPrice = from.GetSortByPrice()
g.SortByNum = from.GetSortByNum() g.SortByNum = from.GetSortByNum()
g.ForCraft = from.GetForCraft() g.ForCraft = from.GetForCraft()
g.StarsOnly = from.GetStarsOnly()
if val, ok := from.GetAttributesHash(); ok { if val, ok := from.GetAttributesHash(); ok {
g.AttributesHash = val g.AttributesHash = val
} }
@@ -210,6 +217,11 @@ func (g *PaymentsGetResaleStarGiftsRequest) TypeInfo() tdp.Type {
SchemaName: "for_craft", SchemaName: "for_craft",
Null: !g.Flags.Has(4), Null: !g.Flags.Has(4),
}, },
{
Name: "StarsOnly",
SchemaName: "stars_only",
Null: !g.Flags.Has(5),
},
{ {
Name: "AttributesHash", Name: "AttributesHash",
SchemaName: "attributes_hash", SchemaName: "attributes_hash",
@@ -247,6 +259,9 @@ func (g *PaymentsGetResaleStarGiftsRequest) SetFlags() {
if !(g.ForCraft == false) { if !(g.ForCraft == false) {
g.Flags.Set(4) g.Flags.Set(4)
} }
if !(g.StarsOnly == false) {
g.Flags.Set(5)
}
if !(g.AttributesHash == 0) { if !(g.AttributesHash == 0) {
g.Flags.Set(0) g.Flags.Set(0)
} }
@@ -317,6 +332,7 @@ func (g *PaymentsGetResaleStarGiftsRequest) DecodeBare(b *bin.Buffer) error {
g.SortByPrice = g.Flags.Has(1) g.SortByPrice = g.Flags.Has(1)
g.SortByNum = g.Flags.Has(2) g.SortByNum = g.Flags.Has(2)
g.ForCraft = g.Flags.Has(4) g.ForCraft = g.Flags.Has(4)
g.StarsOnly = g.Flags.Has(5)
if g.Flags.Has(0) { if g.Flags.Has(0) {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
@@ -422,6 +438,25 @@ func (g *PaymentsGetResaleStarGiftsRequest) GetForCraft() (value bool) {
return g.Flags.Has(4) return g.Flags.Has(4)
} }
// SetStarsOnly sets value of StarsOnly conditional field.
func (g *PaymentsGetResaleStarGiftsRequest) SetStarsOnly(value bool) {
if value {
g.Flags.Set(5)
g.StarsOnly = true
} else {
g.Flags.Unset(5)
g.StarsOnly = false
}
}
// GetStarsOnly returns value of StarsOnly conditional field.
func (g *PaymentsGetResaleStarGiftsRequest) GetStarsOnly() (value bool) {
if g == nil {
return
}
return g.Flags.Has(5)
}
// SetAttributesHash sets value of AttributesHash conditional field. // SetAttributesHash sets value of AttributesHash conditional field.
func (g *PaymentsGetResaleStarGiftsRequest) SetAttributesHash(value int64) { func (g *PaymentsGetResaleStarGiftsRequest) SetAttributesHash(value int64) {
g.Flags.Set(0) g.Flags.Set(0)
+489 -10
View File
@@ -31,11 +31,13 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// PollAnswer represents TL type `pollAnswer#ff16e2ca`. // PollAnswer represents TL type `pollAnswer#4b7d786a`.
// A possible answer of a poll // A possible answer of a poll
// //
// See https://core.telegram.org/constructor/pollAnswer for reference. // See https://core.telegram.org/constructor/pollAnswer for reference.
type PollAnswer struct { type PollAnswer struct {
// Flags field of PollAnswer.
Flags bin.Fields
// Textual representation of the answer (only Premium¹ users can use custom emoji // Textual representation of the answer (only Premium¹ users can use custom emoji
// entities² here). // entities² here).
// //
@@ -48,10 +50,25 @@ type PollAnswer struct {
// Links: // Links:
// 1) https://core.telegram.org/method/messages.sendVote // 1) https://core.telegram.org/method/messages.sendVote
Option []byte Option []byte
// Media field of PollAnswer.
//
// Use SetMedia and GetMedia helpers.
Media MessageMediaClass
// AddedBy field of PollAnswer.
//
// Use SetAddedBy and GetAddedBy helpers.
AddedBy PeerClass
// Date field of PollAnswer.
//
// Use SetDate and GetDate helpers.
Date int
} }
// PollAnswerTypeID is TL type id of PollAnswer. // PollAnswerTypeID is TL type id of PollAnswer.
const PollAnswerTypeID = 0xff16e2ca const PollAnswerTypeID = 0x4b7d786a
// construct implements constructor of PollAnswerClass.
func (p PollAnswer) construct() PollAnswerClass { return &p }
// Ensuring interfaces in compile-time for PollAnswer. // Ensuring interfaces in compile-time for PollAnswer.
var ( var (
@@ -59,18 +76,32 @@ var (
_ bin.Decoder = &PollAnswer{} _ bin.Decoder = &PollAnswer{}
_ bin.BareEncoder = &PollAnswer{} _ bin.BareEncoder = &PollAnswer{}
_ bin.BareDecoder = &PollAnswer{} _ bin.BareDecoder = &PollAnswer{}
_ PollAnswerClass = &PollAnswer{}
) )
func (p *PollAnswer) Zero() bool { func (p *PollAnswer) Zero() bool {
if p == nil { if p == nil {
return true return true
} }
if !(p.Flags.Zero()) {
return false
}
if !(p.Text.Zero()) { if !(p.Text.Zero()) {
return false return false
} }
if !(p.Option == nil) { if !(p.Option == nil) {
return false return false
} }
if !(p.Media == nil) {
return false
}
if !(p.AddedBy == nil) {
return false
}
if !(p.Date == 0) {
return false
}
return true return true
} }
@@ -88,9 +119,24 @@ func (p *PollAnswer) String() string {
func (p *PollAnswer) FillFrom(from interface { func (p *PollAnswer) FillFrom(from interface {
GetText() (value TextWithEntities) GetText() (value TextWithEntities)
GetOption() (value []byte) GetOption() (value []byte)
GetMedia() (value MessageMediaClass, ok bool)
GetAddedBy() (value PeerClass, ok bool)
GetDate() (value int, ok bool)
}) { }) {
p.Text = from.GetText() p.Text = from.GetText()
p.Option = from.GetOption() p.Option = from.GetOption()
if val, ok := from.GetMedia(); ok {
p.Media = val
}
if val, ok := from.GetAddedBy(); ok {
p.AddedBy = val
}
if val, ok := from.GetDate(); ok {
p.Date = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -124,14 +170,42 @@ func (p *PollAnswer) TypeInfo() tdp.Type {
Name: "Option", Name: "Option",
SchemaName: "option", SchemaName: "option",
}, },
{
Name: "Media",
SchemaName: "media",
Null: !p.Flags.Has(0),
},
{
Name: "AddedBy",
SchemaName: "added_by",
Null: !p.Flags.Has(1),
},
{
Name: "Date",
SchemaName: "date",
Null: !p.Flags.Has(1),
},
} }
return typ return typ
} }
// SetFlags sets flags for non-zero fields.
func (p *PollAnswer) SetFlags() {
if !(p.Media == nil) {
p.Flags.Set(0)
}
if !(p.AddedBy == nil) {
p.Flags.Set(1)
}
if !(p.Date == 0) {
p.Flags.Set(1)
}
}
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (p *PollAnswer) Encode(b *bin.Buffer) error { func (p *PollAnswer) Encode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollAnswer#ff16e2ca as nil") return fmt.Errorf("can't encode pollAnswer#4b7d786a as nil")
} }
b.PutID(PollAnswerTypeID) b.PutID(PollAnswerTypeID)
return p.EncodeBare(b) return p.EncodeBare(b)
@@ -140,22 +214,45 @@ func (p *PollAnswer) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (p *PollAnswer) EncodeBare(b *bin.Buffer) error { func (p *PollAnswer) EncodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollAnswer#ff16e2ca as nil") return fmt.Errorf("can't encode pollAnswer#4b7d786a as nil")
}
p.SetFlags()
if err := p.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field flags: %w", err)
} }
if err := p.Text.Encode(b); err != nil { if err := p.Text.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswer#ff16e2ca: field text: %w", err) return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field text: %w", err)
} }
b.PutBytes(p.Option) b.PutBytes(p.Option)
if p.Flags.Has(0) {
if p.Media == nil {
return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field media is nil")
}
if err := p.Media.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field media: %w", err)
}
}
if p.Flags.Has(1) {
if p.AddedBy == nil {
return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field added_by is nil")
}
if err := p.AddedBy.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswer#4b7d786a: field added_by: %w", err)
}
}
if p.Flags.Has(1) {
b.PutInt(p.Date)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (p *PollAnswer) Decode(b *bin.Buffer) error { func (p *PollAnswer) Decode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollAnswer#ff16e2ca to nil") return fmt.Errorf("can't decode pollAnswer#4b7d786a to nil")
} }
if err := b.ConsumeID(PollAnswerTypeID); err != nil { if err := b.ConsumeID(PollAnswerTypeID); err != nil {
return fmt.Errorf("unable to decode pollAnswer#ff16e2ca: %w", err) return fmt.Errorf("unable to decode pollAnswer#4b7d786a: %w", err)
} }
return p.DecodeBare(b) return p.DecodeBare(b)
} }
@@ -163,20 +260,46 @@ func (p *PollAnswer) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (p *PollAnswer) DecodeBare(b *bin.Buffer) error { func (p *PollAnswer) DecodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollAnswer#ff16e2ca to nil") return fmt.Errorf("can't decode pollAnswer#4b7d786a to nil")
}
{
if err := p.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field flags: %w", err)
}
} }
{ {
if err := p.Text.Decode(b); err != nil { if err := p.Text.Decode(b); err != nil {
return fmt.Errorf("unable to decode pollAnswer#ff16e2ca: field text: %w", err) return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field text: %w", err)
} }
} }
{ {
value, err := b.Bytes() value, err := b.Bytes()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollAnswer#ff16e2ca: field option: %w", err) return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field option: %w", err)
} }
p.Option = value p.Option = value
} }
if p.Flags.Has(0) {
value, err := DecodeMessageMedia(b)
if err != nil {
return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field media: %w", err)
}
p.Media = value
}
if p.Flags.Has(1) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field added_by: %w", err)
}
p.AddedBy = value
}
if p.Flags.Has(1) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode pollAnswer#4b7d786a: field date: %w", err)
}
p.Date = value
}
return nil return nil
} }
@@ -195,3 +318,359 @@ func (p *PollAnswer) GetOption() (value []byte) {
} }
return p.Option return p.Option
} }
// SetMedia sets value of Media conditional field.
func (p *PollAnswer) SetMedia(value MessageMediaClass) {
p.Flags.Set(0)
p.Media = value
}
// GetMedia returns value of Media conditional field and
// boolean which is true if field was set.
func (p *PollAnswer) GetMedia() (value MessageMediaClass, ok bool) {
if p == nil {
return
}
if !p.Flags.Has(0) {
return value, false
}
return p.Media, true
}
// SetAddedBy sets value of AddedBy conditional field.
func (p *PollAnswer) SetAddedBy(value PeerClass) {
p.Flags.Set(1)
p.AddedBy = value
}
// GetAddedBy returns value of AddedBy conditional field and
// boolean which is true if field was set.
func (p *PollAnswer) GetAddedBy() (value PeerClass, ok bool) {
if p == nil {
return
}
if !p.Flags.Has(1) {
return value, false
}
return p.AddedBy, true
}
// SetDate sets value of Date conditional field.
func (p *PollAnswer) SetDate(value int) {
p.Flags.Set(1)
p.Date = value
}
// GetDate returns value of Date conditional field and
// boolean which is true if field was set.
func (p *PollAnswer) GetDate() (value int, ok bool) {
if p == nil {
return
}
if !p.Flags.Has(1) {
return value, false
}
return p.Date, true
}
// InputPollAnswer represents TL type `inputPollAnswer#199fed96`.
//
// See https://core.telegram.org/constructor/inputPollAnswer for reference.
type InputPollAnswer struct {
// Flags field of InputPollAnswer.
Flags bin.Fields
// Text field of InputPollAnswer.
Text TextWithEntities
// Media field of InputPollAnswer.
//
// Use SetMedia and GetMedia helpers.
Media InputMediaClass
}
// InputPollAnswerTypeID is TL type id of InputPollAnswer.
const InputPollAnswerTypeID = 0x199fed96
// construct implements constructor of PollAnswerClass.
func (i InputPollAnswer) construct() PollAnswerClass { return &i }
// Ensuring interfaces in compile-time for InputPollAnswer.
var (
_ bin.Encoder = &InputPollAnswer{}
_ bin.Decoder = &InputPollAnswer{}
_ bin.BareEncoder = &InputPollAnswer{}
_ bin.BareDecoder = &InputPollAnswer{}
_ PollAnswerClass = &InputPollAnswer{}
)
func (i *InputPollAnswer) Zero() bool {
if i == nil {
return true
}
if !(i.Flags.Zero()) {
return false
}
if !(i.Text.Zero()) {
return false
}
if !(i.Media == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputPollAnswer) String() string {
if i == nil {
return "InputPollAnswer(nil)"
}
type Alias InputPollAnswer
return fmt.Sprintf("InputPollAnswer%+v", Alias(*i))
}
// FillFrom fills InputPollAnswer from given interface.
func (i *InputPollAnswer) FillFrom(from interface {
GetText() (value TextWithEntities)
GetMedia() (value InputMediaClass, ok bool)
}) {
i.Text = from.GetText()
if val, ok := from.GetMedia(); ok {
i.Media = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputPollAnswer) TypeID() uint32 {
return InputPollAnswerTypeID
}
// TypeName returns name of type in TL schema.
func (*InputPollAnswer) TypeName() string {
return "inputPollAnswer"
}
// TypeInfo returns info about TL type.
func (i *InputPollAnswer) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputPollAnswer",
ID: InputPollAnswerTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Text",
SchemaName: "text",
},
{
Name: "Media",
SchemaName: "media",
Null: !i.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (i *InputPollAnswer) SetFlags() {
if !(i.Media == nil) {
i.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (i *InputPollAnswer) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputPollAnswer#199fed96 as nil")
}
b.PutID(InputPollAnswerTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputPollAnswer) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputPollAnswer#199fed96 as nil")
}
i.SetFlags()
if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputPollAnswer#199fed96: field flags: %w", err)
}
if err := i.Text.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputPollAnswer#199fed96: field text: %w", err)
}
if i.Flags.Has(0) {
if i.Media == nil {
return fmt.Errorf("unable to encode inputPollAnswer#199fed96: field media is nil")
}
if err := i.Media.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputPollAnswer#199fed96: field media: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputPollAnswer) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputPollAnswer#199fed96 to nil")
}
if err := b.ConsumeID(InputPollAnswerTypeID); err != nil {
return fmt.Errorf("unable to decode inputPollAnswer#199fed96: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputPollAnswer) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputPollAnswer#199fed96 to nil")
}
{
if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputPollAnswer#199fed96: field flags: %w", err)
}
}
{
if err := i.Text.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputPollAnswer#199fed96: field text: %w", err)
}
}
if i.Flags.Has(0) {
value, err := DecodeInputMedia(b)
if err != nil {
return fmt.Errorf("unable to decode inputPollAnswer#199fed96: field media: %w", err)
}
i.Media = value
}
return nil
}
// GetText returns value of Text field.
func (i *InputPollAnswer) GetText() (value TextWithEntities) {
if i == nil {
return
}
return i.Text
}
// SetMedia sets value of Media conditional field.
func (i *InputPollAnswer) SetMedia(value InputMediaClass) {
i.Flags.Set(0)
i.Media = value
}
// GetMedia returns value of Media conditional field and
// boolean which is true if field was set.
func (i *InputPollAnswer) GetMedia() (value InputMediaClass, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(0) {
return value, false
}
return i.Media, true
}
// PollAnswerClassName is schema name of PollAnswerClass.
const PollAnswerClassName = "PollAnswer"
// PollAnswerClass represents PollAnswer generic type.
//
// See https://core.telegram.org/type/PollAnswer for reference.
//
// Example:
//
// g, err := tg.DecodePollAnswer(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tg.PollAnswer: // pollAnswer#4b7d786a
// case *tg.InputPollAnswer: // inputPollAnswer#199fed96
// default: panic(v)
// }
type PollAnswerClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() PollAnswerClass
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
TypeID() uint32
// TypeName returns name of type in TL schema.
TypeName() string
// String implements fmt.Stringer.
String() string
// Zero returns true if current object has a zero value.
Zero() bool
// Textual representation of the answer (only Premium¹ users can use custom emoji
// entities² here).
//
// Links:
// 1) https://core.telegram.org/api/premium
// 2) https://core.telegram.org/api/custom-emoji
GetText() (value TextWithEntities)
}
// DecodePollAnswer implements binary de-serialization for PollAnswerClass.
func DecodePollAnswer(buf *bin.Buffer) (PollAnswerClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case PollAnswerTypeID:
// Decoding pollAnswer#4b7d786a.
v := PollAnswer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PollAnswerClass: %w", err)
}
return &v, nil
case InputPollAnswerTypeID:
// Decoding inputPollAnswer#199fed96.
v := InputPollAnswer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PollAnswerClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode PollAnswerClass: %w", bin.NewUnexpectedID(id))
}
}
// PollAnswer boxes the PollAnswerClass providing a helper.
type PollAnswerBox struct {
PollAnswer PollAnswerClass
}
// Decode implements bin.Decoder for PollAnswerBox.
func (b *PollAnswerBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode PollAnswerBox to nil")
}
v, err := DecodePollAnswer(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.PollAnswer = v
return nil
}
// Encode implements bin.Encode for PollAnswerBox.
func (b *PollAnswerBox) Encode(buf *bin.Buffer) error {
if b == nil || b.PollAnswer == nil {
return fmt.Errorf("unable to encode PollAnswerClass as nil")
}
return b.PollAnswer.Encode(buf)
}
+272
View File
@@ -33,3 +33,275 @@ var (
_ = tgerr.Error{} _ = tgerr.Error{}
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// PollAnswerClassArray is adapter for slice of PollAnswerClass.
type PollAnswerClassArray []PollAnswerClass
// Sort sorts slice of PollAnswerClass.
func (s PollAnswerClassArray) Sort(less func(a, b PollAnswerClass) bool) PollAnswerClassArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of PollAnswerClass.
func (s PollAnswerClassArray) SortStable(less func(a, b PollAnswerClass) bool) PollAnswerClassArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of PollAnswerClass.
func (s PollAnswerClassArray) Retain(keep func(x PollAnswerClass) bool) PollAnswerClassArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s PollAnswerClassArray) First() (v PollAnswerClass, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s PollAnswerClassArray) Last() (v PollAnswerClass, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *PollAnswerClassArray) PopFirst() (v PollAnswerClass, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero PollAnswerClass
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *PollAnswerClassArray) Pop() (v PollAnswerClass, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// AsPollAnswer returns copy with only PollAnswer constructors.
func (s PollAnswerClassArray) AsPollAnswer() (to PollAnswerArray) {
for _, elem := range s {
value, ok := elem.(*PollAnswer)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputPollAnswer returns copy with only InputPollAnswer constructors.
func (s PollAnswerClassArray) AsInputPollAnswer() (to InputPollAnswerArray) {
for _, elem := range s {
value, ok := elem.(*InputPollAnswer)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// PollAnswerArray is adapter for slice of PollAnswer.
type PollAnswerArray []PollAnswer
// Sort sorts slice of PollAnswer.
func (s PollAnswerArray) Sort(less func(a, b PollAnswer) bool) PollAnswerArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of PollAnswer.
func (s PollAnswerArray) SortStable(less func(a, b PollAnswer) bool) PollAnswerArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of PollAnswer.
func (s PollAnswerArray) Retain(keep func(x PollAnswer) bool) PollAnswerArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s PollAnswerArray) First() (v PollAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s PollAnswerArray) Last() (v PollAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *PollAnswerArray) PopFirst() (v PollAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero PollAnswer
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *PollAnswerArray) Pop() (v PollAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputPollAnswerArray is adapter for slice of InputPollAnswer.
type InputPollAnswerArray []InputPollAnswer
// Sort sorts slice of InputPollAnswer.
func (s InputPollAnswerArray) Sort(less func(a, b InputPollAnswer) bool) InputPollAnswerArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputPollAnswer.
func (s InputPollAnswerArray) SortStable(less func(a, b InputPollAnswer) bool) InputPollAnswerArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputPollAnswer.
func (s InputPollAnswerArray) Retain(keep func(x InputPollAnswer) bool) InputPollAnswerArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputPollAnswerArray) First() (v InputPollAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputPollAnswerArray) Last() (v InputPollAnswer, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputPollAnswerArray) PopFirst() (v InputPollAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputPollAnswer
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputPollAnswerArray) Pop() (v InputPollAnswer, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
+113 -18
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// PollAnswerVoters represents TL type `pollAnswerVoters#3b6ddad2`. // PollAnswerVoters represents TL type `pollAnswerVoters#3645230a`.
// A poll answer, and how users voted on it // A poll answer, and how users voted on it
// //
// See https://core.telegram.org/constructor/pollAnswerVoters for reference. // See https://core.telegram.org/constructor/pollAnswerVoters for reference.
@@ -51,11 +51,17 @@ type PollAnswerVoters struct {
// 1) https://core.telegram.org/method/messages.sendVote // 1) https://core.telegram.org/method/messages.sendVote
Option []byte Option []byte
// How many users voted for this option // How many users voted for this option
//
// Use SetVoters and GetVoters helpers.
Voters int Voters int
// RecentVoters field of PollAnswerVoters.
//
// Use SetRecentVoters and GetRecentVoters helpers.
RecentVoters []PeerClass
} }
// PollAnswerVotersTypeID is TL type id of PollAnswerVoters. // PollAnswerVotersTypeID is TL type id of PollAnswerVoters.
const PollAnswerVotersTypeID = 0x3b6ddad2 const PollAnswerVotersTypeID = 0x3645230a
// Ensuring interfaces in compile-time for PollAnswerVoters. // Ensuring interfaces in compile-time for PollAnswerVoters.
var ( var (
@@ -84,6 +90,9 @@ func (p *PollAnswerVoters) Zero() bool {
if !(p.Voters == 0) { if !(p.Voters == 0) {
return false return false
} }
if !(p.RecentVoters == nil) {
return false
}
return true return true
} }
@@ -102,12 +111,20 @@ func (p *PollAnswerVoters) FillFrom(from interface {
GetChosen() (value bool) GetChosen() (value bool)
GetCorrect() (value bool) GetCorrect() (value bool)
GetOption() (value []byte) GetOption() (value []byte)
GetVoters() (value int) GetVoters() (value int, ok bool)
GetRecentVoters() (value []PeerClass, ok bool)
}) { }) {
p.Chosen = from.GetChosen() p.Chosen = from.GetChosen()
p.Correct = from.GetCorrect() p.Correct = from.GetCorrect()
p.Option = from.GetOption() p.Option = from.GetOption()
p.Voters = from.GetVoters() if val, ok := from.GetVoters(); ok {
p.Voters = val
}
if val, ok := from.GetRecentVoters(); ok {
p.RecentVoters = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -150,6 +167,12 @@ func (p *PollAnswerVoters) TypeInfo() tdp.Type {
{ {
Name: "Voters", Name: "Voters",
SchemaName: "voters", SchemaName: "voters",
Null: !p.Flags.Has(2),
},
{
Name: "RecentVoters",
SchemaName: "recent_voters",
Null: !p.Flags.Has(2),
}, },
} }
return typ return typ
@@ -163,12 +186,18 @@ func (p *PollAnswerVoters) SetFlags() {
if !(p.Correct == false) { if !(p.Correct == false) {
p.Flags.Set(1) p.Flags.Set(1)
} }
if !(p.Voters == 0) {
p.Flags.Set(2)
}
if !(p.RecentVoters == nil) {
p.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (p *PollAnswerVoters) Encode(b *bin.Buffer) error { func (p *PollAnswerVoters) Encode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollAnswerVoters#3b6ddad2 as nil") return fmt.Errorf("can't encode pollAnswerVoters#3645230a as nil")
} }
b.PutID(PollAnswerVotersTypeID) b.PutID(PollAnswerVotersTypeID)
return p.EncodeBare(b) return p.EncodeBare(b)
@@ -177,24 +206,37 @@ func (p *PollAnswerVoters) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (p *PollAnswerVoters) EncodeBare(b *bin.Buffer) error { func (p *PollAnswerVoters) EncodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollAnswerVoters#3b6ddad2 as nil") return fmt.Errorf("can't encode pollAnswerVoters#3645230a as nil")
} }
p.SetFlags() p.SetFlags()
if err := p.Flags.Encode(b); err != nil { if err := p.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswerVoters#3b6ddad2: field flags: %w", err) return fmt.Errorf("unable to encode pollAnswerVoters#3645230a: field flags: %w", err)
} }
b.PutBytes(p.Option) b.PutBytes(p.Option)
b.PutInt(p.Voters) if p.Flags.Has(2) {
b.PutInt(p.Voters)
}
if p.Flags.Has(2) {
b.PutVectorHeader(len(p.RecentVoters))
for idx, v := range p.RecentVoters {
if v == nil {
return fmt.Errorf("unable to encode pollAnswerVoters#3645230a: field recent_voters element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollAnswerVoters#3645230a: field recent_voters element with index %d: %w", idx, err)
}
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (p *PollAnswerVoters) Decode(b *bin.Buffer) error { func (p *PollAnswerVoters) Decode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollAnswerVoters#3b6ddad2 to nil") return fmt.Errorf("can't decode pollAnswerVoters#3645230a to nil")
} }
if err := b.ConsumeID(PollAnswerVotersTypeID); err != nil { if err := b.ConsumeID(PollAnswerVotersTypeID); err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3b6ddad2: %w", err) return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: %w", err)
} }
return p.DecodeBare(b) return p.DecodeBare(b)
} }
@@ -202,11 +244,11 @@ func (p *PollAnswerVoters) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (p *PollAnswerVoters) DecodeBare(b *bin.Buffer) error { func (p *PollAnswerVoters) DecodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollAnswerVoters#3b6ddad2 to nil") return fmt.Errorf("can't decode pollAnswerVoters#3645230a to nil")
} }
{ {
if err := p.Flags.Decode(b); err != nil { if err := p.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3b6ddad2: field flags: %w", err) return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: field flags: %w", err)
} }
} }
p.Chosen = p.Flags.Has(0) p.Chosen = p.Flags.Has(0)
@@ -214,17 +256,34 @@ func (p *PollAnswerVoters) DecodeBare(b *bin.Buffer) error {
{ {
value, err := b.Bytes() value, err := b.Bytes()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3b6ddad2: field option: %w", err) return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: field option: %w", err)
} }
p.Option = value p.Option = value
} }
{ if p.Flags.Has(2) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3b6ddad2: field voters: %w", err) return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: field voters: %w", err)
} }
p.Voters = value p.Voters = value
} }
if p.Flags.Has(2) {
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: field recent_voters: %w", err)
}
if headerLen > 0 {
p.RecentVoters = make([]PeerClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode pollAnswerVoters#3645230a: field recent_voters: %w", err)
}
p.RecentVoters = append(p.RecentVoters, value)
}
}
return nil return nil
} }
@@ -274,10 +333,46 @@ func (p *PollAnswerVoters) GetOption() (value []byte) {
return p.Option return p.Option
} }
// GetVoters returns value of Voters field. // SetVoters sets value of Voters conditional field.
func (p *PollAnswerVoters) GetVoters() (value int) { func (p *PollAnswerVoters) SetVoters(value int) {
p.Flags.Set(2)
p.Voters = value
}
// GetVoters returns value of Voters conditional field and
// boolean which is true if field was set.
func (p *PollAnswerVoters) GetVoters() (value int, ok bool) {
if p == nil { if p == nil {
return return
} }
return p.Voters if !p.Flags.Has(2) {
return value, false
}
return p.Voters, true
}
// SetRecentVoters sets value of RecentVoters conditional field.
func (p *PollAnswerVoters) SetRecentVoters(value []PeerClass) {
p.Flags.Set(2)
p.RecentVoters = value
}
// GetRecentVoters returns value of RecentVoters conditional field and
// boolean which is true if field was set.
func (p *PollAnswerVoters) GetRecentVoters() (value []PeerClass, ok bool) {
if p == nil {
return
}
if !p.Flags.Has(2) {
return value, false
}
return p.RecentVoters, true
}
// MapRecentVoters returns field RecentVoters wrapped in PeerClassArray helper.
func (p *PollAnswerVoters) MapRecentVoters() (value PeerClassArray, ok bool) {
if !p.Flags.Has(2) {
return value, false
}
return PeerClassArray(p.RecentVoters), true
} }
+233 -23
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// Poll represents TL type `poll#58747131`. // Poll represents TL type `poll#b8425be9`.
// Poll // Poll
// //
// See https://core.telegram.org/constructor/poll for reference. // See https://core.telegram.org/constructor/poll for reference.
@@ -52,6 +52,16 @@ type Poll struct {
// Whether this is a quiz (with wrong and correct answers, results shown in the return // Whether this is a quiz (with wrong and correct answers, results shown in the return
// type) // type)
Quiz bool Quiz bool
// OpenAnswers field of Poll.
OpenAnswers bool
// RevotingDisabled field of Poll.
RevotingDisabled bool
// ShuffleAnswers field of Poll.
ShuffleAnswers bool
// HideResultsUntilClose field of Poll.
HideResultsUntilClose bool
// Creator field of Poll.
Creator bool
// The question of the poll (only Premium¹ users can use custom emoji entities² here). // The question of the poll (only Premium¹ users can use custom emoji entities² here).
// //
// Links: // Links:
@@ -63,7 +73,7 @@ type Poll struct {
// Links: // Links:
// 1) https://core.telegram.org/api/config#poll-answers-max // 1) https://core.telegram.org/api/config#poll-answers-max
// 2) https://core.telegram.org/method/messages.sendVote // 2) https://core.telegram.org/method/messages.sendVote
Answers []PollAnswer Answers []PollAnswerClass
// Amount of time in seconds the poll will be active after creation, 5-600. Can't be used // Amount of time in seconds the poll will be active after creation, 5-600. Can't be used
// together with close_date. // together with close_date.
// //
@@ -75,10 +85,12 @@ type Poll struct {
// //
// Use SetCloseDate and GetCloseDate helpers. // Use SetCloseDate and GetCloseDate helpers.
CloseDate int CloseDate int
// Hash field of Poll.
Hash int64
} }
// PollTypeID is TL type id of Poll. // PollTypeID is TL type id of Poll.
const PollTypeID = 0x58747131 const PollTypeID = 0xb8425be9
// Ensuring interfaces in compile-time for Poll. // Ensuring interfaces in compile-time for Poll.
var ( var (
@@ -110,6 +122,21 @@ func (p *Poll) Zero() bool {
if !(p.Quiz == false) { if !(p.Quiz == false) {
return false return false
} }
if !(p.OpenAnswers == false) {
return false
}
if !(p.RevotingDisabled == false) {
return false
}
if !(p.ShuffleAnswers == false) {
return false
}
if !(p.HideResultsUntilClose == false) {
return false
}
if !(p.Creator == false) {
return false
}
if !(p.Question.Zero()) { if !(p.Question.Zero()) {
return false return false
} }
@@ -122,6 +149,9 @@ func (p *Poll) Zero() bool {
if !(p.CloseDate == 0) { if !(p.CloseDate == 0) {
return false return false
} }
if !(p.Hash == 0) {
return false
}
return true return true
} }
@@ -142,16 +172,27 @@ func (p *Poll) FillFrom(from interface {
GetPublicVoters() (value bool) GetPublicVoters() (value bool)
GetMultipleChoice() (value bool) GetMultipleChoice() (value bool)
GetQuiz() (value bool) GetQuiz() (value bool)
GetOpenAnswers() (value bool)
GetRevotingDisabled() (value bool)
GetShuffleAnswers() (value bool)
GetHideResultsUntilClose() (value bool)
GetCreator() (value bool)
GetQuestion() (value TextWithEntities) GetQuestion() (value TextWithEntities)
GetAnswers() (value []PollAnswer) GetAnswers() (value []PollAnswerClass)
GetClosePeriod() (value int, ok bool) GetClosePeriod() (value int, ok bool)
GetCloseDate() (value int, ok bool) GetCloseDate() (value int, ok bool)
GetHash() (value int64)
}) { }) {
p.ID = from.GetID() p.ID = from.GetID()
p.Closed = from.GetClosed() p.Closed = from.GetClosed()
p.PublicVoters = from.GetPublicVoters() p.PublicVoters = from.GetPublicVoters()
p.MultipleChoice = from.GetMultipleChoice() p.MultipleChoice = from.GetMultipleChoice()
p.Quiz = from.GetQuiz() p.Quiz = from.GetQuiz()
p.OpenAnswers = from.GetOpenAnswers()
p.RevotingDisabled = from.GetRevotingDisabled()
p.ShuffleAnswers = from.GetShuffleAnswers()
p.HideResultsUntilClose = from.GetHideResultsUntilClose()
p.Creator = from.GetCreator()
p.Question = from.GetQuestion() p.Question = from.GetQuestion()
p.Answers = from.GetAnswers() p.Answers = from.GetAnswers()
if val, ok := from.GetClosePeriod(); ok { if val, ok := from.GetClosePeriod(); ok {
@@ -162,6 +203,7 @@ func (p *Poll) FillFrom(from interface {
p.CloseDate = val p.CloseDate = val
} }
p.Hash = from.GetHash()
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -211,6 +253,31 @@ func (p *Poll) TypeInfo() tdp.Type {
SchemaName: "quiz", SchemaName: "quiz",
Null: !p.Flags.Has(3), Null: !p.Flags.Has(3),
}, },
{
Name: "OpenAnswers",
SchemaName: "open_answers",
Null: !p.Flags.Has(6),
},
{
Name: "RevotingDisabled",
SchemaName: "revoting_disabled",
Null: !p.Flags.Has(7),
},
{
Name: "ShuffleAnswers",
SchemaName: "shuffle_answers",
Null: !p.Flags.Has(8),
},
{
Name: "HideResultsUntilClose",
SchemaName: "hide_results_until_close",
Null: !p.Flags.Has(9),
},
{
Name: "Creator",
SchemaName: "creator",
Null: !p.Flags.Has(10),
},
{ {
Name: "Question", Name: "Question",
SchemaName: "question", SchemaName: "question",
@@ -229,6 +296,10 @@ func (p *Poll) TypeInfo() tdp.Type {
SchemaName: "close_date", SchemaName: "close_date",
Null: !p.Flags.Has(5), Null: !p.Flags.Has(5),
}, },
{
Name: "Hash",
SchemaName: "hash",
},
} }
return typ return typ
} }
@@ -247,6 +318,21 @@ func (p *Poll) SetFlags() {
if !(p.Quiz == false) { if !(p.Quiz == false) {
p.Flags.Set(3) p.Flags.Set(3)
} }
if !(p.OpenAnswers == false) {
p.Flags.Set(6)
}
if !(p.RevotingDisabled == false) {
p.Flags.Set(7)
}
if !(p.ShuffleAnswers == false) {
p.Flags.Set(8)
}
if !(p.HideResultsUntilClose == false) {
p.Flags.Set(9)
}
if !(p.Creator == false) {
p.Flags.Set(10)
}
if !(p.ClosePeriod == 0) { if !(p.ClosePeriod == 0) {
p.Flags.Set(4) p.Flags.Set(4)
} }
@@ -258,7 +344,7 @@ func (p *Poll) SetFlags() {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (p *Poll) Encode(b *bin.Buffer) error { func (p *Poll) Encode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode poll#58747131 as nil") return fmt.Errorf("can't encode poll#b8425be9 as nil")
} }
b.PutID(PollTypeID) b.PutID(PollTypeID)
return p.EncodeBare(b) return p.EncodeBare(b)
@@ -267,20 +353,23 @@ func (p *Poll) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (p *Poll) EncodeBare(b *bin.Buffer) error { func (p *Poll) EncodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode poll#58747131 as nil") return fmt.Errorf("can't encode poll#b8425be9 as nil")
} }
p.SetFlags() p.SetFlags()
b.PutLong(p.ID) b.PutLong(p.ID)
if err := p.Flags.Encode(b); err != nil { if err := p.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode poll#58747131: field flags: %w", err) return fmt.Errorf("unable to encode poll#b8425be9: field flags: %w", err)
} }
if err := p.Question.Encode(b); err != nil { if err := p.Question.Encode(b); err != nil {
return fmt.Errorf("unable to encode poll#58747131: field question: %w", err) return fmt.Errorf("unable to encode poll#b8425be9: field question: %w", err)
} }
b.PutVectorHeader(len(p.Answers)) b.PutVectorHeader(len(p.Answers))
for idx, v := range p.Answers { for idx, v := range p.Answers {
if v == nil {
return fmt.Errorf("unable to encode poll#b8425be9: field answers element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode poll#58747131: field answers element with index %d: %w", idx, err) return fmt.Errorf("unable to encode poll#b8425be9: field answers element with index %d: %w", idx, err)
} }
} }
if p.Flags.Has(4) { if p.Flags.Has(4) {
@@ -289,16 +378,17 @@ func (p *Poll) EncodeBare(b *bin.Buffer) error {
if p.Flags.Has(5) { if p.Flags.Has(5) {
b.PutInt(p.CloseDate) b.PutInt(p.CloseDate)
} }
b.PutLong(p.Hash)
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (p *Poll) Decode(b *bin.Buffer) error { func (p *Poll) Decode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode poll#58747131 to nil") return fmt.Errorf("can't decode poll#b8425be9 to nil")
} }
if err := b.ConsumeID(PollTypeID); err != nil { if err := b.ConsumeID(PollTypeID); err != nil {
return fmt.Errorf("unable to decode poll#58747131: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: %w", err)
} }
return p.DecodeBare(b) return p.DecodeBare(b)
} }
@@ -306,42 +396,47 @@ func (p *Poll) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (p *Poll) DecodeBare(b *bin.Buffer) error { func (p *Poll) DecodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode poll#58747131 to nil") return fmt.Errorf("can't decode poll#b8425be9 to nil")
} }
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode poll#58747131: field id: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field id: %w", err)
} }
p.ID = value p.ID = value
} }
{ {
if err := p.Flags.Decode(b); err != nil { if err := p.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode poll#58747131: field flags: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field flags: %w", err)
} }
} }
p.Closed = p.Flags.Has(0) p.Closed = p.Flags.Has(0)
p.PublicVoters = p.Flags.Has(1) p.PublicVoters = p.Flags.Has(1)
p.MultipleChoice = p.Flags.Has(2) p.MultipleChoice = p.Flags.Has(2)
p.Quiz = p.Flags.Has(3) p.Quiz = p.Flags.Has(3)
p.OpenAnswers = p.Flags.Has(6)
p.RevotingDisabled = p.Flags.Has(7)
p.ShuffleAnswers = p.Flags.Has(8)
p.HideResultsUntilClose = p.Flags.Has(9)
p.Creator = p.Flags.Has(10)
{ {
if err := p.Question.Decode(b); err != nil { if err := p.Question.Decode(b); err != nil {
return fmt.Errorf("unable to decode poll#58747131: field question: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field question: %w", err)
} }
} }
{ {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode poll#58747131: field answers: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field answers: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
p.Answers = make([]PollAnswer, 0, headerLen%bin.PreallocateLimit) p.Answers = make([]PollAnswerClass, 0, headerLen%bin.PreallocateLimit)
} }
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
var value PollAnswer value, err := DecodePollAnswer(b)
if err := value.Decode(b); err != nil { if err != nil {
return fmt.Errorf("unable to decode poll#58747131: field answers: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field answers: %w", err)
} }
p.Answers = append(p.Answers, value) p.Answers = append(p.Answers, value)
} }
@@ -349,17 +444,24 @@ func (p *Poll) DecodeBare(b *bin.Buffer) error {
if p.Flags.Has(4) { if p.Flags.Has(4) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode poll#58747131: field close_period: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field close_period: %w", err)
} }
p.ClosePeriod = value p.ClosePeriod = value
} }
if p.Flags.Has(5) { if p.Flags.Has(5) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode poll#58747131: field close_date: %w", err) return fmt.Errorf("unable to decode poll#b8425be9: field close_date: %w", err)
} }
p.CloseDate = value p.CloseDate = value
} }
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode poll#b8425be9: field hash: %w", err)
}
p.Hash = value
}
return nil return nil
} }
@@ -447,6 +549,101 @@ func (p *Poll) GetQuiz() (value bool) {
return p.Flags.Has(3) return p.Flags.Has(3)
} }
// SetOpenAnswers sets value of OpenAnswers conditional field.
func (p *Poll) SetOpenAnswers(value bool) {
if value {
p.Flags.Set(6)
p.OpenAnswers = true
} else {
p.Flags.Unset(6)
p.OpenAnswers = false
}
}
// GetOpenAnswers returns value of OpenAnswers conditional field.
func (p *Poll) GetOpenAnswers() (value bool) {
if p == nil {
return
}
return p.Flags.Has(6)
}
// SetRevotingDisabled sets value of RevotingDisabled conditional field.
func (p *Poll) SetRevotingDisabled(value bool) {
if value {
p.Flags.Set(7)
p.RevotingDisabled = true
} else {
p.Flags.Unset(7)
p.RevotingDisabled = false
}
}
// GetRevotingDisabled returns value of RevotingDisabled conditional field.
func (p *Poll) GetRevotingDisabled() (value bool) {
if p == nil {
return
}
return p.Flags.Has(7)
}
// SetShuffleAnswers sets value of ShuffleAnswers conditional field.
func (p *Poll) SetShuffleAnswers(value bool) {
if value {
p.Flags.Set(8)
p.ShuffleAnswers = true
} else {
p.Flags.Unset(8)
p.ShuffleAnswers = false
}
}
// GetShuffleAnswers returns value of ShuffleAnswers conditional field.
func (p *Poll) GetShuffleAnswers() (value bool) {
if p == nil {
return
}
return p.Flags.Has(8)
}
// SetHideResultsUntilClose sets value of HideResultsUntilClose conditional field.
func (p *Poll) SetHideResultsUntilClose(value bool) {
if value {
p.Flags.Set(9)
p.HideResultsUntilClose = true
} else {
p.Flags.Unset(9)
p.HideResultsUntilClose = false
}
}
// GetHideResultsUntilClose returns value of HideResultsUntilClose conditional field.
func (p *Poll) GetHideResultsUntilClose() (value bool) {
if p == nil {
return
}
return p.Flags.Has(9)
}
// SetCreator sets value of Creator conditional field.
func (p *Poll) SetCreator(value bool) {
if value {
p.Flags.Set(10)
p.Creator = true
} else {
p.Flags.Unset(10)
p.Creator = false
}
}
// GetCreator returns value of Creator conditional field.
func (p *Poll) GetCreator() (value bool) {
if p == nil {
return
}
return p.Flags.Has(10)
}
// GetQuestion returns value of Question field. // GetQuestion returns value of Question field.
func (p *Poll) GetQuestion() (value TextWithEntities) { func (p *Poll) GetQuestion() (value TextWithEntities) {
if p == nil { if p == nil {
@@ -456,7 +653,7 @@ func (p *Poll) GetQuestion() (value TextWithEntities) {
} }
// GetAnswers returns value of Answers field. // GetAnswers returns value of Answers field.
func (p *Poll) GetAnswers() (value []PollAnswer) { func (p *Poll) GetAnswers() (value []PollAnswerClass) {
if p == nil { if p == nil {
return return
} }
@@ -498,3 +695,16 @@ func (p *Poll) GetCloseDate() (value int, ok bool) {
} }
return p.CloseDate, true return p.CloseDate, true
} }
// GetHash returns value of Hash field.
func (p *Poll) GetHash() (value int64) {
if p == nil {
return
}
return p.Hash
}
// MapAnswers returns field Answers wrapped in PollAnswerClassArray helper.
func (p *Poll) MapAnswers() (value PollAnswerClassArray) {
return PollAnswerClassArray(p.Answers)
}
+110 -22
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// PollResults represents TL type `pollResults#7adf2420`. // PollResults represents TL type `pollResults#ba7bb15e`.
// Results of poll // Results of poll
// //
// See https://core.telegram.org/constructor/pollResults for reference. // See https://core.telegram.org/constructor/pollResults for reference.
@@ -49,6 +49,8 @@ type PollResults struct {
// 1) https://core.telegram.org/api/min // 1) https://core.telegram.org/api/min
// 2) https://core.telegram.org/method/messages.getPollResults // 2) https://core.telegram.org/method/messages.getPollResults
Min bool Min bool
// HasUnreadVotes field of PollResults.
HasUnreadVotes bool
// Poll results // Poll results
// //
// Use SetResults and GetResults helpers. // Use SetResults and GetResults helpers.
@@ -72,10 +74,14 @@ type PollResults struct {
// //
// Use SetSolutionEntities and GetSolutionEntities helpers. // Use SetSolutionEntities and GetSolutionEntities helpers.
SolutionEntities []MessageEntityClass SolutionEntities []MessageEntityClass
// SolutionMedia field of PollResults.
//
// Use SetSolutionMedia and GetSolutionMedia helpers.
SolutionMedia MessageMediaClass
} }
// PollResultsTypeID is TL type id of PollResults. // PollResultsTypeID is TL type id of PollResults.
const PollResultsTypeID = 0x7adf2420 const PollResultsTypeID = 0xba7bb15e
// Ensuring interfaces in compile-time for PollResults. // Ensuring interfaces in compile-time for PollResults.
var ( var (
@@ -95,6 +101,9 @@ func (p *PollResults) Zero() bool {
if !(p.Min == false) { if !(p.Min == false) {
return false return false
} }
if !(p.HasUnreadVotes == false) {
return false
}
if !(p.Results == nil) { if !(p.Results == nil) {
return false return false
} }
@@ -110,6 +119,9 @@ func (p *PollResults) Zero() bool {
if !(p.SolutionEntities == nil) { if !(p.SolutionEntities == nil) {
return false return false
} }
if !(p.SolutionMedia == nil) {
return false
}
return true return true
} }
@@ -126,13 +138,16 @@ func (p *PollResults) String() string {
// FillFrom fills PollResults from given interface. // FillFrom fills PollResults from given interface.
func (p *PollResults) FillFrom(from interface { func (p *PollResults) FillFrom(from interface {
GetMin() (value bool) GetMin() (value bool)
GetHasUnreadVotes() (value bool)
GetResults() (value []PollAnswerVoters, ok bool) GetResults() (value []PollAnswerVoters, ok bool)
GetTotalVoters() (value int, ok bool) GetTotalVoters() (value int, ok bool)
GetRecentVoters() (value []PeerClass, ok bool) GetRecentVoters() (value []PeerClass, ok bool)
GetSolution() (value string, ok bool) GetSolution() (value string, ok bool)
GetSolutionEntities() (value []MessageEntityClass, ok bool) GetSolutionEntities() (value []MessageEntityClass, ok bool)
GetSolutionMedia() (value MessageMediaClass, ok bool)
}) { }) {
p.Min = from.GetMin() p.Min = from.GetMin()
p.HasUnreadVotes = from.GetHasUnreadVotes()
if val, ok := from.GetResults(); ok { if val, ok := from.GetResults(); ok {
p.Results = val p.Results = val
} }
@@ -153,6 +168,10 @@ func (p *PollResults) FillFrom(from interface {
p.SolutionEntities = val p.SolutionEntities = val
} }
if val, ok := from.GetSolutionMedia(); ok {
p.SolutionMedia = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -183,6 +202,11 @@ func (p *PollResults) TypeInfo() tdp.Type {
SchemaName: "min", SchemaName: "min",
Null: !p.Flags.Has(0), Null: !p.Flags.Has(0),
}, },
{
Name: "HasUnreadVotes",
SchemaName: "has_unread_votes",
Null: !p.Flags.Has(6),
},
{ {
Name: "Results", Name: "Results",
SchemaName: "results", SchemaName: "results",
@@ -208,6 +232,11 @@ func (p *PollResults) TypeInfo() tdp.Type {
SchemaName: "solution_entities", SchemaName: "solution_entities",
Null: !p.Flags.Has(4), Null: !p.Flags.Has(4),
}, },
{
Name: "SolutionMedia",
SchemaName: "solution_media",
Null: !p.Flags.Has(5),
},
} }
return typ return typ
} }
@@ -217,6 +246,9 @@ func (p *PollResults) SetFlags() {
if !(p.Min == false) { if !(p.Min == false) {
p.Flags.Set(0) p.Flags.Set(0)
} }
if !(p.HasUnreadVotes == false) {
p.Flags.Set(6)
}
if !(p.Results == nil) { if !(p.Results == nil) {
p.Flags.Set(1) p.Flags.Set(1)
} }
@@ -232,12 +264,15 @@ func (p *PollResults) SetFlags() {
if !(p.SolutionEntities == nil) { if !(p.SolutionEntities == nil) {
p.Flags.Set(4) p.Flags.Set(4)
} }
if !(p.SolutionMedia == nil) {
p.Flags.Set(5)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (p *PollResults) Encode(b *bin.Buffer) error { func (p *PollResults) Encode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollResults#7adf2420 as nil") return fmt.Errorf("can't encode pollResults#ba7bb15e as nil")
} }
b.PutID(PollResultsTypeID) b.PutID(PollResultsTypeID)
return p.EncodeBare(b) return p.EncodeBare(b)
@@ -246,17 +281,17 @@ func (p *PollResults) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (p *PollResults) EncodeBare(b *bin.Buffer) error { func (p *PollResults) EncodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't encode pollResults#7adf2420 as nil") return fmt.Errorf("can't encode pollResults#ba7bb15e as nil")
} }
p.SetFlags() p.SetFlags()
if err := p.Flags.Encode(b); err != nil { if err := p.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field flags: %w", err) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field flags: %w", err)
} }
if p.Flags.Has(1) { if p.Flags.Has(1) {
b.PutVectorHeader(len(p.Results)) b.PutVectorHeader(len(p.Results))
for idx, v := range p.Results { for idx, v := range p.Results {
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field results element with index %d: %w", idx, err) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field results element with index %d: %w", idx, err)
} }
} }
} }
@@ -267,10 +302,10 @@ func (p *PollResults) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(p.RecentVoters)) b.PutVectorHeader(len(p.RecentVoters))
for idx, v := range p.RecentVoters { for idx, v := range p.RecentVoters {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field recent_voters element with index %d is nil", idx) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field recent_voters element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field recent_voters element with index %d: %w", idx, err) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field recent_voters element with index %d: %w", idx, err)
} }
} }
} }
@@ -281,23 +316,31 @@ func (p *PollResults) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(p.SolutionEntities)) b.PutVectorHeader(len(p.SolutionEntities))
for idx, v := range p.SolutionEntities { for idx, v := range p.SolutionEntities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field solution_entities element with index %d is nil", idx) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field solution_entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollResults#7adf2420: field solution_entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode pollResults#ba7bb15e: field solution_entities element with index %d: %w", idx, err)
} }
} }
} }
if p.Flags.Has(5) {
if p.SolutionMedia == nil {
return fmt.Errorf("unable to encode pollResults#ba7bb15e: field solution_media is nil")
}
if err := p.SolutionMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode pollResults#ba7bb15e: field solution_media: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (p *PollResults) Decode(b *bin.Buffer) error { func (p *PollResults) Decode(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollResults#7adf2420 to nil") return fmt.Errorf("can't decode pollResults#ba7bb15e to nil")
} }
if err := b.ConsumeID(PollResultsTypeID); err != nil { if err := b.ConsumeID(PollResultsTypeID); err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: %w", err)
} }
return p.DecodeBare(b) return p.DecodeBare(b)
} }
@@ -305,18 +348,19 @@ func (p *PollResults) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (p *PollResults) DecodeBare(b *bin.Buffer) error { func (p *PollResults) DecodeBare(b *bin.Buffer) error {
if p == nil { if p == nil {
return fmt.Errorf("can't decode pollResults#7adf2420 to nil") return fmt.Errorf("can't decode pollResults#ba7bb15e to nil")
} }
{ {
if err := p.Flags.Decode(b); err != nil { if err := p.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field flags: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field flags: %w", err)
} }
} }
p.Min = p.Flags.Has(0) p.Min = p.Flags.Has(0)
p.HasUnreadVotes = p.Flags.Has(6)
if p.Flags.Has(1) { if p.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field results: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field results: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -325,7 +369,7 @@ func (p *PollResults) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
var value PollAnswerVoters var value PollAnswerVoters
if err := value.Decode(b); err != nil { if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field results: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field results: %w", err)
} }
p.Results = append(p.Results, value) p.Results = append(p.Results, value)
} }
@@ -333,14 +377,14 @@ func (p *PollResults) DecodeBare(b *bin.Buffer) error {
if p.Flags.Has(2) { if p.Flags.Has(2) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field total_voters: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field total_voters: %w", err)
} }
p.TotalVoters = value p.TotalVoters = value
} }
if p.Flags.Has(3) { if p.Flags.Has(3) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field recent_voters: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field recent_voters: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -349,7 +393,7 @@ func (p *PollResults) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field recent_voters: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field recent_voters: %w", err)
} }
p.RecentVoters = append(p.RecentVoters, value) p.RecentVoters = append(p.RecentVoters, value)
} }
@@ -357,14 +401,14 @@ func (p *PollResults) DecodeBare(b *bin.Buffer) error {
if p.Flags.Has(4) { if p.Flags.Has(4) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field solution: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field solution: %w", err)
} }
p.Solution = value p.Solution = value
} }
if p.Flags.Has(4) { if p.Flags.Has(4) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field solution_entities: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field solution_entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -373,11 +417,18 @@ func (p *PollResults) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode pollResults#7adf2420: field solution_entities: %w", err) return fmt.Errorf("unable to decode pollResults#ba7bb15e: field solution_entities: %w", err)
} }
p.SolutionEntities = append(p.SolutionEntities, value) p.SolutionEntities = append(p.SolutionEntities, value)
} }
} }
if p.Flags.Has(5) {
value, err := DecodeMessageMedia(b)
if err != nil {
return fmt.Errorf("unable to decode pollResults#ba7bb15e: field solution_media: %w", err)
}
p.SolutionMedia = value
}
return nil return nil
} }
@@ -400,6 +451,25 @@ func (p *PollResults) GetMin() (value bool) {
return p.Flags.Has(0) return p.Flags.Has(0)
} }
// SetHasUnreadVotes sets value of HasUnreadVotes conditional field.
func (p *PollResults) SetHasUnreadVotes(value bool) {
if value {
p.Flags.Set(6)
p.HasUnreadVotes = true
} else {
p.Flags.Unset(6)
p.HasUnreadVotes = false
}
}
// GetHasUnreadVotes returns value of HasUnreadVotes conditional field.
func (p *PollResults) GetHasUnreadVotes() (value bool) {
if p == nil {
return
}
return p.Flags.Has(6)
}
// SetResults sets value of Results conditional field. // SetResults sets value of Results conditional field.
func (p *PollResults) SetResults(value []PollAnswerVoters) { func (p *PollResults) SetResults(value []PollAnswerVoters) {
p.Flags.Set(1) p.Flags.Set(1)
@@ -490,6 +560,24 @@ func (p *PollResults) GetSolutionEntities() (value []MessageEntityClass, ok bool
return p.SolutionEntities, true return p.SolutionEntities, true
} }
// SetSolutionMedia sets value of SolutionMedia conditional field.
func (p *PollResults) SetSolutionMedia(value MessageMediaClass) {
p.Flags.Set(5)
p.SolutionMedia = value
}
// GetSolutionMedia returns value of SolutionMedia conditional field and
// boolean which is true if field was set.
func (p *PollResults) GetSolutionMedia() (value MessageMediaClass, ok bool) {
if p == nil {
return
}
if !p.Flags.Has(5) {
return value, false
}
return p.SolutionMedia, true
}
// MapRecentVoters returns field RecentVoters wrapped in PeerClassArray helper. // MapRecentVoters returns field RecentVoters wrapped in PeerClassArray helper.
func (p *PollResults) MapRecentVoters() (value PeerClassArray, ok bool) { func (p *PollResults) MapRecentVoters() (value PeerClassArray, ok bool) {
if !p.Flags.Has(3) { if !p.Flags.Has(3) {
+72 -19
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// ReactionsNotifySettings represents TL type `reactionsNotifySettings#56e34970`. // ReactionsNotifySettings represents TL type `reactionsNotifySettings#71e4ea58`.
// Reaction notification settings, see here »¹ for more info. // Reaction notification settings, see here »¹ for more info.
// //
// Links: // Links:
@@ -54,6 +54,10 @@ type ReactionsNotifySettings struct {
// //
// Use SetStoriesNotifyFrom and GetStoriesNotifyFrom helpers. // Use SetStoriesNotifyFrom and GetStoriesNotifyFrom helpers.
StoriesNotifyFrom ReactionNotificationsFromClass StoriesNotifyFrom ReactionNotificationsFromClass
// PollVotesNotifyFrom field of ReactionsNotifySettings.
//
// Use SetPollVotesNotifyFrom and GetPollVotesNotifyFrom helpers.
PollVotesNotifyFrom ReactionNotificationsFromClass
// Notification sound for reactions »¹ // Notification sound for reactions »¹
// //
// Links: // Links:
@@ -69,7 +73,7 @@ type ReactionsNotifySettings struct {
} }
// ReactionsNotifySettingsTypeID is TL type id of ReactionsNotifySettings. // ReactionsNotifySettingsTypeID is TL type id of ReactionsNotifySettings.
const ReactionsNotifySettingsTypeID = 0x56e34970 const ReactionsNotifySettingsTypeID = 0x71e4ea58
// Ensuring interfaces in compile-time for ReactionsNotifySettings. // Ensuring interfaces in compile-time for ReactionsNotifySettings.
var ( var (
@@ -92,6 +96,9 @@ func (r *ReactionsNotifySettings) Zero() bool {
if !(r.StoriesNotifyFrom == nil) { if !(r.StoriesNotifyFrom == nil) {
return false return false
} }
if !(r.PollVotesNotifyFrom == nil) {
return false
}
if !(r.Sound == nil) { if !(r.Sound == nil) {
return false return false
} }
@@ -115,6 +122,7 @@ func (r *ReactionsNotifySettings) String() string {
func (r *ReactionsNotifySettings) FillFrom(from interface { func (r *ReactionsNotifySettings) FillFrom(from interface {
GetMessagesNotifyFrom() (value ReactionNotificationsFromClass, ok bool) GetMessagesNotifyFrom() (value ReactionNotificationsFromClass, ok bool)
GetStoriesNotifyFrom() (value ReactionNotificationsFromClass, ok bool) GetStoriesNotifyFrom() (value ReactionNotificationsFromClass, ok bool)
GetPollVotesNotifyFrom() (value ReactionNotificationsFromClass, ok bool)
GetSound() (value NotificationSoundClass) GetSound() (value NotificationSoundClass)
GetShowPreviews() (value bool) GetShowPreviews() (value bool)
}) { }) {
@@ -126,6 +134,10 @@ func (r *ReactionsNotifySettings) FillFrom(from interface {
r.StoriesNotifyFrom = val r.StoriesNotifyFrom = val
} }
if val, ok := from.GetPollVotesNotifyFrom(); ok {
r.PollVotesNotifyFrom = val
}
r.Sound = from.GetSound() r.Sound = from.GetSound()
r.ShowPreviews = from.GetShowPreviews() r.ShowPreviews = from.GetShowPreviews()
} }
@@ -163,6 +175,11 @@ func (r *ReactionsNotifySettings) TypeInfo() tdp.Type {
SchemaName: "stories_notify_from", SchemaName: "stories_notify_from",
Null: !r.Flags.Has(1), Null: !r.Flags.Has(1),
}, },
{
Name: "PollVotesNotifyFrom",
SchemaName: "poll_votes_notify_from",
Null: !r.Flags.Has(2),
},
{ {
Name: "Sound", Name: "Sound",
SchemaName: "sound", SchemaName: "sound",
@@ -183,12 +200,15 @@ func (r *ReactionsNotifySettings) SetFlags() {
if !(r.StoriesNotifyFrom == nil) { if !(r.StoriesNotifyFrom == nil) {
r.Flags.Set(1) r.Flags.Set(1)
} }
if !(r.PollVotesNotifyFrom == nil) {
r.Flags.Set(2)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (r *ReactionsNotifySettings) Encode(b *bin.Buffer) error { func (r *ReactionsNotifySettings) Encode(b *bin.Buffer) error {
if r == nil { if r == nil {
return fmt.Errorf("can't encode reactionsNotifySettings#56e34970 as nil") return fmt.Errorf("can't encode reactionsNotifySettings#71e4ea58 as nil")
} }
b.PutID(ReactionsNotifySettingsTypeID) b.PutID(ReactionsNotifySettingsTypeID)
return r.EncodeBare(b) return r.EncodeBare(b)
@@ -197,33 +217,41 @@ func (r *ReactionsNotifySettings) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (r *ReactionsNotifySettings) EncodeBare(b *bin.Buffer) error { func (r *ReactionsNotifySettings) EncodeBare(b *bin.Buffer) error {
if r == nil { if r == nil {
return fmt.Errorf("can't encode reactionsNotifySettings#56e34970 as nil") return fmt.Errorf("can't encode reactionsNotifySettings#71e4ea58 as nil")
} }
r.SetFlags() r.SetFlags()
if err := r.Flags.Encode(b); err != nil { if err := r.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field flags: %w", err) return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field flags: %w", err)
} }
if r.Flags.Has(0) { if r.Flags.Has(0) {
if r.MessagesNotifyFrom == nil { if r.MessagesNotifyFrom == nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field messages_notify_from is nil") return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field messages_notify_from is nil")
} }
if err := r.MessagesNotifyFrom.Encode(b); err != nil { if err := r.MessagesNotifyFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field messages_notify_from: %w", err) return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field messages_notify_from: %w", err)
} }
} }
if r.Flags.Has(1) { if r.Flags.Has(1) {
if r.StoriesNotifyFrom == nil { if r.StoriesNotifyFrom == nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field stories_notify_from is nil") return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field stories_notify_from is nil")
} }
if err := r.StoriesNotifyFrom.Encode(b); err != nil { if err := r.StoriesNotifyFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field stories_notify_from: %w", err) return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field stories_notify_from: %w", err)
}
}
if r.Flags.Has(2) {
if r.PollVotesNotifyFrom == nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field poll_votes_notify_from is nil")
}
if err := r.PollVotesNotifyFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field poll_votes_notify_from: %w", err)
} }
} }
if r.Sound == nil { if r.Sound == nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field sound is nil") return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field sound is nil")
} }
if err := r.Sound.Encode(b); err != nil { if err := r.Sound.Encode(b); err != nil {
return fmt.Errorf("unable to encode reactionsNotifySettings#56e34970: field sound: %w", err) return fmt.Errorf("unable to encode reactionsNotifySettings#71e4ea58: field sound: %w", err)
} }
b.PutBool(r.ShowPreviews) b.PutBool(r.ShowPreviews)
return nil return nil
@@ -232,10 +260,10 @@ func (r *ReactionsNotifySettings) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (r *ReactionsNotifySettings) Decode(b *bin.Buffer) error { func (r *ReactionsNotifySettings) Decode(b *bin.Buffer) error {
if r == nil { if r == nil {
return fmt.Errorf("can't decode reactionsNotifySettings#56e34970 to nil") return fmt.Errorf("can't decode reactionsNotifySettings#71e4ea58 to nil")
} }
if err := b.ConsumeID(ReactionsNotifySettingsTypeID); err != nil { if err := b.ConsumeID(ReactionsNotifySettingsTypeID); err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: %w", err)
} }
return r.DecodeBare(b) return r.DecodeBare(b)
} }
@@ -243,38 +271,45 @@ func (r *ReactionsNotifySettings) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (r *ReactionsNotifySettings) DecodeBare(b *bin.Buffer) error { func (r *ReactionsNotifySettings) DecodeBare(b *bin.Buffer) error {
if r == nil { if r == nil {
return fmt.Errorf("can't decode reactionsNotifySettings#56e34970 to nil") return fmt.Errorf("can't decode reactionsNotifySettings#71e4ea58 to nil")
} }
{ {
if err := r.Flags.Decode(b); err != nil { if err := r.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: field flags: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field flags: %w", err)
} }
} }
if r.Flags.Has(0) { if r.Flags.Has(0) {
value, err := DecodeReactionNotificationsFrom(b) value, err := DecodeReactionNotificationsFrom(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: field messages_notify_from: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field messages_notify_from: %w", err)
} }
r.MessagesNotifyFrom = value r.MessagesNotifyFrom = value
} }
if r.Flags.Has(1) { if r.Flags.Has(1) {
value, err := DecodeReactionNotificationsFrom(b) value, err := DecodeReactionNotificationsFrom(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: field stories_notify_from: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field stories_notify_from: %w", err)
} }
r.StoriesNotifyFrom = value r.StoriesNotifyFrom = value
} }
if r.Flags.Has(2) {
value, err := DecodeReactionNotificationsFrom(b)
if err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field poll_votes_notify_from: %w", err)
}
r.PollVotesNotifyFrom = value
}
{ {
value, err := DecodeNotificationSound(b) value, err := DecodeNotificationSound(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: field sound: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field sound: %w", err)
} }
r.Sound = value r.Sound = value
} }
{ {
value, err := b.Bool() value, err := b.Bool()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode reactionsNotifySettings#56e34970: field show_previews: %w", err) return fmt.Errorf("unable to decode reactionsNotifySettings#71e4ea58: field show_previews: %w", err)
} }
r.ShowPreviews = value r.ShowPreviews = value
} }
@@ -317,6 +352,24 @@ func (r *ReactionsNotifySettings) GetStoriesNotifyFrom() (value ReactionNotifica
return r.StoriesNotifyFrom, true return r.StoriesNotifyFrom, true
} }
// SetPollVotesNotifyFrom sets value of PollVotesNotifyFrom conditional field.
func (r *ReactionsNotifySettings) SetPollVotesNotifyFrom(value ReactionNotificationsFromClass) {
r.Flags.Set(2)
r.PollVotesNotifyFrom = value
}
// GetPollVotesNotifyFrom returns value of PollVotesNotifyFrom conditional field and
// boolean which is true if field was set.
func (r *ReactionsNotifySettings) GetPollVotesNotifyFrom() (value ReactionNotificationsFromClass, ok bool) {
if r == nil {
return
}
if !r.Flags.Has(2) {
return value, false
}
return r.PollVotesNotifyFrom, true
}
// GetSound returns value of Sound field. // GetSound returns value of Sound field.
func (r *ReactionsNotifySettings) GetSound() (value NotificationSoundClass) { func (r *ReactionsNotifySettings) GetSound() (value NotificationSoundClass) {
if r == nil { if r == nil {
+117 -26
View File
@@ -32,7 +32,7 @@ var (
) )
// Layer version of schema. // Layer version of schema.
const Layer = 223 const Layer = 224
// TypesMap returns mapping from type ids to TL type names. // TypesMap returns mapping from type ids to TL type names.
func TypesMap() map[uint32]string { func TypesMap() map[uint32]string {
@@ -58,8 +58,8 @@ func TypesMap() map[uint32]string {
InputFileBigTypeID: "inputFileBig#fa4f0bb5", InputFileBigTypeID: "inputFileBig#fa4f0bb5",
InputFileStoryDocumentTypeID: "inputFileStoryDocument#62dc8b48", InputFileStoryDocumentTypeID: "inputFileStoryDocument#62dc8b48",
InputMediaEmptyTypeID: "inputMediaEmpty#9664f57f", InputMediaEmptyTypeID: "inputMediaEmpty#9664f57f",
InputMediaUploadedPhotoTypeID: "inputMediaUploadedPhoto#1e287d04", InputMediaUploadedPhotoTypeID: "inputMediaUploadedPhoto#7d8375da",
InputMediaPhotoTypeID: "inputMediaPhoto#b3ba0635", InputMediaPhotoTypeID: "inputMediaPhoto#e3af4434",
InputMediaGeoPointTypeID: "inputMediaGeoPoint#f9c44144", InputMediaGeoPointTypeID: "inputMediaGeoPoint#f9c44144",
InputMediaContactTypeID: "inputMediaContact#f8ab7dfb", InputMediaContactTypeID: "inputMediaContact#f8ab7dfb",
InputMediaUploadedDocumentTypeID: "inputMediaUploadedDocument#37c9330", InputMediaUploadedDocumentTypeID: "inputMediaUploadedDocument#37c9330",
@@ -70,7 +70,7 @@ func TypesMap() map[uint32]string {
InputMediaGameTypeID: "inputMediaGame#d33f43f3", InputMediaGameTypeID: "inputMediaGame#d33f43f3",
InputMediaInvoiceTypeID: "inputMediaInvoice#405fef0d", InputMediaInvoiceTypeID: "inputMediaInvoice#405fef0d",
InputMediaGeoLiveTypeID: "inputMediaGeoLive#971fa843", InputMediaGeoLiveTypeID: "inputMediaGeoLive#971fa843",
InputMediaPollTypeID: "inputMediaPoll#f94e5f1", InputMediaPollTypeID: "inputMediaPoll#883a4108",
InputMediaDiceTypeID: "inputMediaDice#e66fbf7b", InputMediaDiceTypeID: "inputMediaDice#e66fbf7b",
InputMediaStoryTypeID: "inputMediaStory#89fdd778", InputMediaStoryTypeID: "inputMediaStory#89fdd778",
InputMediaWebPageTypeID: "inputMediaWebPage#c21b8849", InputMediaWebPageTypeID: "inputMediaWebPage#c21b8849",
@@ -135,7 +135,7 @@ func TypesMap() map[uint32]string {
MessageTypeID: "message#3ae56482", MessageTypeID: "message#3ae56482",
MessageServiceTypeID: "messageService#7a800e0a", MessageServiceTypeID: "messageService#7a800e0a",
MessageMediaEmptyTypeID: "messageMediaEmpty#3ded6320", MessageMediaEmptyTypeID: "messageMediaEmpty#3ded6320",
MessageMediaPhotoTypeID: "messageMediaPhoto#695150d7", MessageMediaPhotoTypeID: "messageMediaPhoto#e216eb63",
MessageMediaGeoTypeID: "messageMediaGeo#56e0d474", MessageMediaGeoTypeID: "messageMediaGeo#56e0d474",
MessageMediaContactTypeID: "messageMediaContact#70322949", MessageMediaContactTypeID: "messageMediaContact#70322949",
MessageMediaUnsupportedTypeID: "messageMediaUnsupported#9f84f49e", MessageMediaUnsupportedTypeID: "messageMediaUnsupported#9f84f49e",
@@ -145,7 +145,7 @@ func TypesMap() map[uint32]string {
MessageMediaGameTypeID: "messageMediaGame#fdb19008", MessageMediaGameTypeID: "messageMediaGame#fdb19008",
MessageMediaInvoiceTypeID: "messageMediaInvoice#f6a548d3", MessageMediaInvoiceTypeID: "messageMediaInvoice#f6a548d3",
MessageMediaGeoLiveTypeID: "messageMediaGeoLive#b940c666", MessageMediaGeoLiveTypeID: "messageMediaGeoLive#b940c666",
MessageMediaPollTypeID: "messageMediaPoll#4bd6e798", MessageMediaPollTypeID: "messageMediaPoll#773f4e66",
MessageMediaDiceTypeID: "messageMediaDice#8cbec07", MessageMediaDiceTypeID: "messageMediaDice#8cbec07",
MessageMediaStoryTypeID: "messageMediaStory#68cb6283", MessageMediaStoryTypeID: "messageMediaStory#68cb6283",
MessageMediaGiveawayTypeID: "messageMediaGiveaway#aa073beb", MessageMediaGiveawayTypeID: "messageMediaGiveaway#aa073beb",
@@ -217,7 +217,10 @@ func TypesMap() map[uint32]string {
MessageActionChangeCreatorTypeID: "messageActionChangeCreator#e188503b", MessageActionChangeCreatorTypeID: "messageActionChangeCreator#e188503b",
MessageActionNoForwardsToggleTypeID: "messageActionNoForwardsToggle#bf7d6572", MessageActionNoForwardsToggleTypeID: "messageActionNoForwardsToggle#bf7d6572",
MessageActionNoForwardsRequestTypeID: "messageActionNoForwardsRequest#3e2793ba", MessageActionNoForwardsRequestTypeID: "messageActionNoForwardsRequest#3e2793ba",
DialogTypeID: "dialog#d58a08c6", MessageActionPollAppendAnswerTypeID: "messageActionPollAppendAnswer#9da1cd6c",
MessageActionPollDeleteAnswerTypeID: "messageActionPollDeleteAnswer#399674dc",
MessageActionManagedBotCreatedTypeID: "messageActionManagedBotCreated#16605e3e",
DialogTypeID: "dialog#fc89f7f3",
DialogFolderTypeID: "dialogFolder#71bd134c", DialogFolderTypeID: "dialogFolder#71bd134c",
PhotoEmptyTypeID: "photoEmpty#2331b22d", PhotoEmptyTypeID: "photoEmpty#2331b22d",
PhotoTypeID: "photo#fb197a65", PhotoTypeID: "photo#fb197a65",
@@ -255,7 +258,7 @@ func TypesMap() map[uint32]string {
InputReportReasonFakeTypeID: "inputReportReasonFake#f5ddd6e7", InputReportReasonFakeTypeID: "inputReportReasonFake#f5ddd6e7",
InputReportReasonIllegalDrugsTypeID: "inputReportReasonIllegalDrugs#a8eb2be", InputReportReasonIllegalDrugsTypeID: "inputReportReasonIllegalDrugs#a8eb2be",
InputReportReasonPersonalDetailsTypeID: "inputReportReasonPersonalDetails#9ec7863d", InputReportReasonPersonalDetailsTypeID: "inputReportReasonPersonalDetails#9ec7863d",
UserFullTypeID: "userFull#a02bc13e", UserFullTypeID: "userFull#6cbe645",
ContactTypeID: "contact#145ade0b", ContactTypeID: "contact#145ade0b",
ImportedContactTypeID: "importedContact#c13e3c50", ImportedContactTypeID: "importedContact#c13e3c50",
ContactStatusTypeID: "contactStatus#16d9703b", ContactStatusTypeID: "contactStatus#16d9703b",
@@ -292,6 +295,7 @@ func TypesMap() map[uint32]string {
InputMessagesFilterGeoTypeID: "inputMessagesFilterGeo#e7026d0d", InputMessagesFilterGeoTypeID: "inputMessagesFilterGeo#e7026d0d",
InputMessagesFilterContactsTypeID: "inputMessagesFilterContacts#e062db83", InputMessagesFilterContactsTypeID: "inputMessagesFilterContacts#e062db83",
InputMessagesFilterPinnedTypeID: "inputMessagesFilterPinned#1bb00451", InputMessagesFilterPinnedTypeID: "inputMessagesFilterPinned#1bb00451",
InputMessagesFilterPollTypeID: "inputMessagesFilterPoll#fa2bc90a",
UpdateNewMessageTypeID: "updateNewMessage#1f2b0afd", UpdateNewMessageTypeID: "updateNewMessage#1f2b0afd",
UpdateMessageIDTypeID: "updateMessageID#4e90bfd6", UpdateMessageIDTypeID: "updateMessageID#4e90bfd6",
UpdateDeleteMessagesTypeID: "updateDeleteMessages#a20db0e5", UpdateDeleteMessagesTypeID: "updateDeleteMessages#a20db0e5",
@@ -354,7 +358,7 @@ func TypesMap() map[uint32]string {
UpdateContactsResetTypeID: "updateContactsReset#7084a7be", UpdateContactsResetTypeID: "updateContactsReset#7084a7be",
UpdateChannelAvailableMessagesTypeID: "updateChannelAvailableMessages#b23fc698", UpdateChannelAvailableMessagesTypeID: "updateChannelAvailableMessages#b23fc698",
UpdateDialogUnreadMarkTypeID: "updateDialogUnreadMark#b658f23e", UpdateDialogUnreadMarkTypeID: "updateDialogUnreadMark#b658f23e",
UpdateMessagePollTypeID: "updateMessagePoll#aca1657b", UpdateMessagePollTypeID: "updateMessagePoll#d64c522b",
UpdateChatDefaultBannedRightsTypeID: "updateChatDefaultBannedRights#54c01850", UpdateChatDefaultBannedRightsTypeID: "updateChatDefaultBannedRights#54c01850",
UpdateFolderPeersTypeID: "updateFolderPeers#19360dc0", UpdateFolderPeersTypeID: "updateFolderPeers#19360dc0",
UpdatePeerSettingsTypeID: "updatePeerSettings#6a7e7366", UpdatePeerSettingsTypeID: "updatePeerSettings#6a7e7366",
@@ -364,7 +368,7 @@ func TypesMap() map[uint32]string {
UpdateThemeTypeID: "updateTheme#8216fba3", UpdateThemeTypeID: "updateTheme#8216fba3",
UpdateGeoLiveViewedTypeID: "updateGeoLiveViewed#871fb939", UpdateGeoLiveViewedTypeID: "updateGeoLiveViewed#871fb939",
UpdateLoginTokenTypeID: "updateLoginToken#564fe691", UpdateLoginTokenTypeID: "updateLoginToken#564fe691",
UpdateMessagePollVoteTypeID: "updateMessagePollVote#24f40e77", UpdateMessagePollVoteTypeID: "updateMessagePollVote#7699f014",
UpdateDialogFilterTypeID: "updateDialogFilter#26ffde7d", UpdateDialogFilterTypeID: "updateDialogFilter#26ffde7d",
UpdateDialogFilterOrderTypeID: "updateDialogFilterOrder#a5d72105", UpdateDialogFilterOrderTypeID: "updateDialogFilterOrder#a5d72105",
UpdateDialogFiltersTypeID: "updateDialogFilters#3504914f", UpdateDialogFiltersTypeID: "updateDialogFilters#3504914f",
@@ -445,6 +449,7 @@ func TypesMap() map[uint32]string {
UpdateEmojiGameInfoTypeID: "updateEmojiGameInfo#fb9c547a", UpdateEmojiGameInfoTypeID: "updateEmojiGameInfo#fb9c547a",
UpdateStarGiftCraftFailTypeID: "updateStarGiftCraftFail#ac072444", UpdateStarGiftCraftFailTypeID: "updateStarGiftCraftFail#ac072444",
UpdateChatParticipantRankTypeID: "updateChatParticipantRank#bd8367b9", UpdateChatParticipantRankTypeID: "updateChatParticipantRank#bd8367b9",
UpdateManagedBotTypeID: "updateManagedBot#4880ed9a",
UpdatesStateTypeID: "updates.state#a56c2a3e", UpdatesStateTypeID: "updates.state#a56c2a3e",
UpdatesDifferenceEmptyTypeID: "updates.differenceEmpty#5d75a138", UpdatesDifferenceEmptyTypeID: "updates.differenceEmpty#5d75a138",
UpdatesDifferenceTypeID: "updates.difference#f49ca0", UpdatesDifferenceTypeID: "updates.difference#f49ca0",
@@ -662,6 +667,9 @@ func TypesMap() map[uint32]string {
MessageEntityCustomEmojiTypeID: "messageEntityCustomEmoji#c8cf05f8", MessageEntityCustomEmojiTypeID: "messageEntityCustomEmoji#c8cf05f8",
MessageEntityBlockquoteTypeID: "messageEntityBlockquote#f1ccaaac", MessageEntityBlockquoteTypeID: "messageEntityBlockquote#f1ccaaac",
MessageEntityFormattedDateTypeID: "messageEntityFormattedDate#904ac7c7", MessageEntityFormattedDateTypeID: "messageEntityFormattedDate#904ac7c7",
MessageEntityDiffInsertTypeID: "messageEntityDiffInsert#71777116",
MessageEntityDiffReplaceTypeID: "messageEntityDiffReplace#c6c1e5a7",
MessageEntityDiffDeleteTypeID: "messageEntityDiffDelete#652c1c5",
InputChannelEmptyTypeID: "inputChannelEmpty#ee8c1e86", InputChannelEmptyTypeID: "inputChannelEmpty#ee8c1e86",
InputChannelTypeID: "inputChannel#f35aec28", InputChannelTypeID: "inputChannel#f35aec28",
InputChannelFromMessageTypeID: "inputChannelFromMessage#5b934f9d", InputChannelFromMessageTypeID: "inputChannelFromMessage#5b934f9d",
@@ -1025,10 +1033,11 @@ func TypesMap() map[uint32]string {
HelpSupportNameTypeID: "help.supportName#8c05f1c9", HelpSupportNameTypeID: "help.supportName#8c05f1c9",
HelpUserInfoEmptyTypeID: "help.userInfoEmpty#f3ae2eed", HelpUserInfoEmptyTypeID: "help.userInfoEmpty#f3ae2eed",
HelpUserInfoTypeID: "help.userInfo#1eb3758", HelpUserInfoTypeID: "help.userInfo#1eb3758",
PollAnswerTypeID: "pollAnswer#ff16e2ca", PollAnswerTypeID: "pollAnswer#4b7d786a",
PollTypeID: "poll#58747131", InputPollAnswerTypeID: "inputPollAnswer#199fed96",
PollAnswerVotersTypeID: "pollAnswerVoters#3b6ddad2", PollTypeID: "poll#b8425be9",
PollResultsTypeID: "pollResults#7adf2420", PollAnswerVotersTypeID: "pollAnswerVoters#3645230a",
PollResultsTypeID: "pollResults#ba7bb15e",
ChatOnlinesTypeID: "chatOnlines#f041e250", ChatOnlinesTypeID: "chatOnlines#f041e250",
StatsURLTypeID: "statsURL#47a971e0", StatsURLTypeID: "statsURL#47a971e0",
ChatAdminRightsTypeID: "chatAdminRights#5fb224d5", ChatAdminRightsTypeID: "chatAdminRights#5fb224d5",
@@ -1051,7 +1060,7 @@ func TypesMap() map[uint32]string {
InputFolderPeerTypeID: "inputFolderPeer#fbd2c296", InputFolderPeerTypeID: "inputFolderPeer#fbd2c296",
FolderPeerTypeID: "folderPeer#e9baa668", FolderPeerTypeID: "folderPeer#e9baa668",
MessagesSearchCounterTypeID: "messages.searchCounter#e844ebff", MessagesSearchCounterTypeID: "messages.searchCounter#e844ebff",
URLAuthResultRequestTypeID: "urlAuthResultRequest#f8f8eb1e", URLAuthResultRequestTypeID: "urlAuthResultRequest#3cd623ec",
URLAuthResultAcceptedTypeID: "urlAuthResultAccepted#623a8fa0", URLAuthResultAcceptedTypeID: "urlAuthResultAccepted#623a8fa0",
URLAuthResultDefaultTypeID: "urlAuthResultDefault#a9d6db1f", URLAuthResultDefaultTypeID: "urlAuthResultDefault#a9d6db1f",
ChannelLocationEmptyTypeID: "channelLocationEmpty#bfb5ad8b", ChannelLocationEmptyTypeID: "channelLocationEmpty#bfb5ad8b",
@@ -1113,7 +1122,7 @@ func TypesMap() map[uint32]string {
MessageViewsTypeID: "messageViews#455b853d", MessageViewsTypeID: "messageViews#455b853d",
MessagesMessageViewsTypeID: "messages.messageViews#b6c4f543", MessagesMessageViewsTypeID: "messages.messageViews#b6c4f543",
MessagesDiscussionMessageTypeID: "messages.discussionMessage#a6341782", MessagesDiscussionMessageTypeID: "messages.discussionMessage#a6341782",
MessageReplyHeaderTypeID: "messageReplyHeader#6917560b", MessageReplyHeaderTypeID: "messageReplyHeader#1b97dd66",
MessageReplyStoryHeaderTypeID: "messageReplyStoryHeader#e5af939", MessageReplyStoryHeaderTypeID: "messageReplyStoryHeader#e5af939",
MessageRepliesTypeID: "messageReplies#83d60fc2", MessageRepliesTypeID: "messageReplies#83d60fc2",
PeerBlockedTypeID: "peerBlocked#e8fd8014", PeerBlockedTypeID: "peerBlocked#e8fd8014",
@@ -1264,13 +1273,14 @@ func TypesMap() map[uint32]string {
StickerKeywordTypeID: "stickerKeyword#fcfeb29c", StickerKeywordTypeID: "stickerKeyword#fcfeb29c",
UsernameTypeID: "username#b4073647", UsernameTypeID: "username#b4073647",
ForumTopicDeletedTypeID: "forumTopicDeleted#23f109b", ForumTopicDeletedTypeID: "forumTopicDeleted#23f109b",
ForumTopicTypeID: "forumTopic#cdff0eca", ForumTopicTypeID: "forumTopic#fcdad815",
MessagesForumTopicsTypeID: "messages.forumTopics#367617d3", MessagesForumTopicsTypeID: "messages.forumTopics#367617d3",
DefaultHistoryTTLTypeID: "defaultHistoryTTL#43b46b20", DefaultHistoryTTLTypeID: "defaultHistoryTTL#43b46b20",
ExportedContactTokenTypeID: "exportedContactToken#41bf109b", ExportedContactTokenTypeID: "exportedContactToken#41bf109b",
RequestPeerTypeUserTypeID: "requestPeerTypeUser#5f3b8a00", RequestPeerTypeUserTypeID: "requestPeerTypeUser#5f3b8a00",
RequestPeerTypeChatTypeID: "requestPeerTypeChat#c9f06e1b", RequestPeerTypeChatTypeID: "requestPeerTypeChat#c9f06e1b",
RequestPeerTypeBroadcastTypeID: "requestPeerTypeBroadcast#339bef6c", RequestPeerTypeBroadcastTypeID: "requestPeerTypeBroadcast#339bef6c",
RequestPeerTypeCreateBotTypeID: "requestPeerTypeCreateBot#3e81e078",
EmojiListNotModifiedTypeID: "emojiListNotModified#481eadfa", EmojiListNotModifiedTypeID: "emojiListNotModified#481eadfa",
EmojiListTypeID: "emojiList#7a1e11d1", EmojiListTypeID: "emojiList#7a1e11d1",
EmojiGroupTypeID: "emojiGroup#7a9abda9", EmojiGroupTypeID: "emojiGroup#7a9abda9",
@@ -1306,7 +1316,7 @@ func TypesMap() map[uint32]string {
StoryViewsTypeID: "storyViews#8d595cd6", StoryViewsTypeID: "storyViews#8d595cd6",
StoryItemDeletedTypeID: "storyItemDeleted#51e6ee4f", StoryItemDeletedTypeID: "storyItemDeleted#51e6ee4f",
StoryItemSkippedTypeID: "storyItemSkipped#ffadc913", StoryItemSkippedTypeID: "storyItemSkipped#ffadc913",
StoryItemTypeID: "storyItem#edf164f1", StoryItemTypeID: "storyItem#16a4b93c",
StoriesAllStoriesNotModifiedTypeID: "stories.allStoriesNotModified#1158fe3e", StoriesAllStoriesNotModifiedTypeID: "stories.allStoriesNotModified#1158fe3e",
StoriesAllStoriesTypeID: "stories.allStories#6efc5e81", StoriesAllStoriesTypeID: "stories.allStories#6efc5e81",
StoriesStoriesTypeID: "stories.stories#63c3dd0a", StoriesStoriesTypeID: "stories.stories#63c3dd0a",
@@ -1315,7 +1325,7 @@ func TypesMap() map[uint32]string {
StoryViewPublicRepostTypeID: "storyViewPublicRepost#bd74cf49", StoryViewPublicRepostTypeID: "storyViewPublicRepost#bd74cf49",
StoriesStoryViewsListTypeID: "stories.storyViewsList#59d78fc5", StoriesStoryViewsListTypeID: "stories.storyViewsList#59d78fc5",
StoriesStoryViewsTypeID: "stories.storyViews#de9eed1d", StoriesStoryViewsTypeID: "stories.storyViews#de9eed1d",
InputReplyToMessageTypeID: "inputReplyToMessage#869fbe10", InputReplyToMessageTypeID: "inputReplyToMessage#3bd4b7c2",
InputReplyToStoryTypeID: "inputReplyToStory#5881323a", InputReplyToStoryTypeID: "inputReplyToStory#5881323a",
InputReplyToMonoForumTypeID: "inputReplyToMonoForum#69d66c45", InputReplyToMonoForumTypeID: "inputReplyToMonoForum#69d66c45",
ExportedStoryLinkTypeID: "exportedStoryLink#3fc9053b", ExportedStoryLinkTypeID: "exportedStoryLink#3fc9053b",
@@ -1425,7 +1435,7 @@ func TypesMap() map[uint32]string {
ChannelsSponsoredMessageReportResultReportedTypeID: "channels.sponsoredMessageReportResultReported#ad798849", ChannelsSponsoredMessageReportResultReportedTypeID: "channels.sponsoredMessageReportResultReported#ad798849",
ReactionNotificationsFromContactsTypeID: "reactionNotificationsFromContacts#bac3a61a", ReactionNotificationsFromContactsTypeID: "reactionNotificationsFromContacts#bac3a61a",
ReactionNotificationsFromAllTypeID: "reactionNotificationsFromAll#4b9e22a0", ReactionNotificationsFromAllTypeID: "reactionNotificationsFromAll#4b9e22a0",
ReactionsNotifySettingsTypeID: "reactionsNotifySettings#56e34970", ReactionsNotifySettingsTypeID: "reactionsNotifySettings#71e4ea58",
AvailableEffectTypeID: "availableEffect#93c3e27e", AvailableEffectTypeID: "availableEffect#93c3e27e",
MessagesAvailableEffectsNotModifiedTypeID: "messages.availableEffectsNotModified#d1ed9a5b", MessagesAvailableEffectsNotModifiedTypeID: "messages.availableEffectsNotModified#d1ed9a5b",
MessagesAvailableEffectsTypeID: "messages.availableEffects#bddb616e", MessagesAvailableEffectsTypeID: "messages.availableEffects#bddb616e",
@@ -1582,6 +1592,10 @@ func TypesMap() map[uint32]string {
StarGiftAttributeRarityEpicTypeID: "starGiftAttributeRarityEpic#78fbf3a8", StarGiftAttributeRarityEpicTypeID: "starGiftAttributeRarityEpic#78fbf3a8",
StarGiftAttributeRarityLegendaryTypeID: "starGiftAttributeRarityLegendary#cef7e7a8", StarGiftAttributeRarityLegendaryTypeID: "starGiftAttributeRarityLegendary#cef7e7a8",
KeyboardButtonStyleTypeID: "keyboardButtonStyle#4fdd3430", KeyboardButtonStyleTypeID: "keyboardButtonStyle#4fdd3430",
InputMessageReadMetricTypeID: "inputMessageReadMetric#402b4495",
BotsExportedBotTokenTypeID: "bots.exportedBotToken#3c60b621",
BotsRequestedButtonTypeID: "bots.requestedButton#f13bbcd7",
MessagesComposedMessageWithAITypeID: "messages.composedMessageWithAI#90d7adfa",
InvokeAfterMsgRequestTypeID: "invokeAfterMsg#cb9f372d", InvokeAfterMsgRequestTypeID: "invokeAfterMsg#cb9f372d",
InvokeAfterMsgsRequestTypeID: "invokeAfterMsgs#3dc4b4f0", InvokeAfterMsgsRequestTypeID: "invokeAfterMsgs#3dc4b4f0",
InitConnectionRequestTypeID: "initConnection#c1cd5ea9", InitConnectionRequestTypeID: "initConnection#c1cd5ea9",
@@ -1875,7 +1889,7 @@ func TypesMap() map[uint32]string {
MessagesClearAllDraftsRequestTypeID: "messages.clearAllDrafts#7e58ee9c", MessagesClearAllDraftsRequestTypeID: "messages.clearAllDrafts#7e58ee9c",
MessagesUpdatePinnedMessageRequestTypeID: "messages.updatePinnedMessage#d2aaf7ec", MessagesUpdatePinnedMessageRequestTypeID: "messages.updatePinnedMessage#d2aaf7ec",
MessagesSendVoteRequestTypeID: "messages.sendVote#10ea6184", MessagesSendVoteRequestTypeID: "messages.sendVote#10ea6184",
MessagesGetPollResultsRequestTypeID: "messages.getPollResults#73bb643b", MessagesGetPollResultsRequestTypeID: "messages.getPollResults#eda3e33b",
MessagesGetOnlinesRequestTypeID: "messages.getOnlines#6e2be050", MessagesGetOnlinesRequestTypeID: "messages.getOnlines#6e2be050",
MessagesEditChatAboutRequestTypeID: "messages.editChatAbout#def60797", MessagesEditChatAboutRequestTypeID: "messages.editChatAbout#def60797",
MessagesEditChatDefaultBannedRightsRequestTypeID: "messages.editChatDefaultBannedRights#a5866b41", MessagesEditChatDefaultBannedRightsRequestTypeID: "messages.editChatDefaultBannedRights#a5866b41",
@@ -1931,7 +1945,7 @@ func TypesMap() map[uint32]string {
MessagesSetChatAvailableReactionsRequestTypeID: "messages.setChatAvailableReactions#864b2581", MessagesSetChatAvailableReactionsRequestTypeID: "messages.setChatAvailableReactions#864b2581",
MessagesGetAvailableReactionsRequestTypeID: "messages.getAvailableReactions#18dea0ac", MessagesGetAvailableReactionsRequestTypeID: "messages.getAvailableReactions#18dea0ac",
MessagesSetDefaultReactionRequestTypeID: "messages.setDefaultReaction#4f47a016", MessagesSetDefaultReactionRequestTypeID: "messages.setDefaultReaction#4f47a016",
MessagesTranslateTextRequestTypeID: "messages.translateText#63183030", MessagesTranslateTextRequestTypeID: "messages.translateText#a5eec345",
MessagesGetUnreadReactionsRequestTypeID: "messages.getUnreadReactions#bd7f90ac", MessagesGetUnreadReactionsRequestTypeID: "messages.getUnreadReactions#bd7f90ac",
MessagesReadReactionsRequestTypeID: "messages.readReactions#9ec44f93", MessagesReadReactionsRequestTypeID: "messages.readReactions#9ec44f93",
MessagesSearchSentMediaRequestTypeID: "messages.searchSentMedia#107e31a0", MessagesSearchSentMediaRequestTypeID: "messages.searchSentMedia#107e31a0",
@@ -1955,7 +1969,7 @@ func TypesMap() map[uint32]string {
MessagesGetExtendedMediaRequestTypeID: "messages.getExtendedMedia#84f80814", MessagesGetExtendedMediaRequestTypeID: "messages.getExtendedMedia#84f80814",
MessagesSetDefaultHistoryTTLRequestTypeID: "messages.setDefaultHistoryTTL#9eb51445", MessagesSetDefaultHistoryTTLRequestTypeID: "messages.setDefaultHistoryTTL#9eb51445",
MessagesGetDefaultHistoryTTLRequestTypeID: "messages.getDefaultHistoryTTL#658b7188", MessagesGetDefaultHistoryTTLRequestTypeID: "messages.getDefaultHistoryTTL#658b7188",
MessagesSendBotRequestedPeerRequestTypeID: "messages.sendBotRequestedPeer#91b2d060", MessagesSendBotRequestedPeerRequestTypeID: "messages.sendBotRequestedPeer#6c5cf2a7",
MessagesGetEmojiGroupsRequestTypeID: "messages.getEmojiGroups#7488ce5b", MessagesGetEmojiGroupsRequestTypeID: "messages.getEmojiGroups#7488ce5b",
MessagesGetEmojiStatusGroupsRequestTypeID: "messages.getEmojiStatusGroups#2ecd56cd", MessagesGetEmojiStatusGroupsRequestTypeID: "messages.getEmojiStatusGroups#2ecd56cd",
MessagesGetEmojiProfilePhotoGroupsRequestTypeID: "messages.getEmojiProfilePhotoGroups#21a548f3", MessagesGetEmojiProfilePhotoGroupsRequestTypeID: "messages.getEmojiProfilePhotoGroups#21a548f3",
@@ -2015,12 +2029,19 @@ func TypesMap() map[uint32]string {
MessagesCreateForumTopicRequestTypeID: "messages.createForumTopic#2f98c3d5", MessagesCreateForumTopicRequestTypeID: "messages.createForumTopic#2f98c3d5",
MessagesDeleteTopicHistoryRequestTypeID: "messages.deleteTopicHistory#d2816f10", MessagesDeleteTopicHistoryRequestTypeID: "messages.deleteTopicHistory#d2816f10",
MessagesGetEmojiGameInfoRequestTypeID: "messages.getEmojiGameInfo#fb7e8ca7", MessagesGetEmojiGameInfoRequestTypeID: "messages.getEmojiGameInfo#fb7e8ca7",
MessagesSummarizeTextRequestTypeID: "messages.summarizeText#9d4104e2", MessagesSummarizeTextRequestTypeID: "messages.summarizeText#abbbd346",
MessagesEditChatCreatorRequestTypeID: "messages.editChatCreator#f743b857", MessagesEditChatCreatorRequestTypeID: "messages.editChatCreator#f743b857",
MessagesGetFutureChatCreatorAfterLeaveRequestTypeID: "messages.getFutureChatCreatorAfterLeave#3b7d0ea6", MessagesGetFutureChatCreatorAfterLeaveRequestTypeID: "messages.getFutureChatCreatorAfterLeave#3b7d0ea6",
MessagesEditChatParticipantRankRequestTypeID: "messages.editChatParticipantRank#a00f32b0", MessagesEditChatParticipantRankRequestTypeID: "messages.editChatParticipantRank#a00f32b0",
MessagesDeclineURLAuthRequestTypeID: "messages.declineUrlAuth#35436bbc", MessagesDeclineURLAuthRequestTypeID: "messages.declineUrlAuth#35436bbc",
MessagesCheckURLAuthMatchCodeRequestTypeID: "messages.checkUrlAuthMatchCode#c9a47b0b", MessagesCheckURLAuthMatchCodeRequestTypeID: "messages.checkUrlAuthMatchCode#c9a47b0b",
MessagesComposeMessageWithAIRequestTypeID: "messages.composeMessageWithAI#fd426afe",
MessagesReportReadMetricsRequestTypeID: "messages.reportReadMetrics#4067c5e6",
MessagesReportMusicListenRequestTypeID: "messages.reportMusicListen#ddbcd819",
MessagesAddPollAnswerRequestTypeID: "messages.addPollAnswer#19bc4b6d",
MessagesDeletePollAnswerRequestTypeID: "messages.deletePollAnswer#ac8505a5",
MessagesGetUnreadPollVotesRequestTypeID: "messages.getUnreadPollVotes#43286cf2",
MessagesReadPollVotesRequestTypeID: "messages.readPollVotes#1720b4d8",
UpdatesGetStateRequestTypeID: "updates.getState#edd4882a", UpdatesGetStateRequestTypeID: "updates.getState#edd4882a",
UpdatesGetDifferenceRequestTypeID: "updates.getDifference#19c2f763", UpdatesGetDifferenceRequestTypeID: "updates.getDifference#19c2f763",
UpdatesGetChannelDifferenceRequestTypeID: "updates.getChannelDifference#3173d78", UpdatesGetChannelDifferenceRequestTypeID: "updates.getChannelDifference#3173d78",
@@ -2150,6 +2171,11 @@ func TypesMap() map[uint32]string {
BotsUpdateStarRefProgramRequestTypeID: "bots.updateStarRefProgram#778b5ab3", BotsUpdateStarRefProgramRequestTypeID: "bots.updateStarRefProgram#778b5ab3",
BotsSetCustomVerificationRequestTypeID: "bots.setCustomVerification#8b89dfbd", BotsSetCustomVerificationRequestTypeID: "bots.setCustomVerification#8b89dfbd",
BotsGetBotRecommendationsRequestTypeID: "bots.getBotRecommendations#a1b70815", BotsGetBotRecommendationsRequestTypeID: "bots.getBotRecommendations#a1b70815",
BotsCheckUsernameRequestTypeID: "bots.checkUsername#87f2219b",
BotsCreateBotRequestTypeID: "bots.createBot#e5b17f2b",
BotsExportBotTokenRequestTypeID: "bots.exportBotToken#bd0d99eb",
BotsRequestWebViewButtonRequestTypeID: "bots.requestWebViewButton#31a2a35e",
BotsGetRequestedWebViewButtonRequestTypeID: "bots.getRequestedWebViewButton#bf25b7f3",
PaymentsGetPaymentFormRequestTypeID: "payments.getPaymentForm#37148dbb", PaymentsGetPaymentFormRequestTypeID: "payments.getPaymentForm#37148dbb",
PaymentsGetPaymentReceiptRequestTypeID: "payments.getPaymentReceipt#2478d1cc", PaymentsGetPaymentReceiptRequestTypeID: "payments.getPaymentReceipt#2478d1cc",
PaymentsValidateRequestedInfoRequestTypeID: "payments.validateRequestedInfo#b6c8f12b", PaymentsValidateRequestedInfoRequestTypeID: "payments.validateRequestedInfo#b6c8f12b",
@@ -2294,8 +2320,8 @@ func TypesMap() map[uint32]string {
ChatlistsGetLeaveChatlistSuggestionsRequestTypeID: "chatlists.getLeaveChatlistSuggestions#fdbcd714", ChatlistsGetLeaveChatlistSuggestionsRequestTypeID: "chatlists.getLeaveChatlistSuggestions#fdbcd714",
ChatlistsLeaveChatlistRequestTypeID: "chatlists.leaveChatlist#74fae13a", ChatlistsLeaveChatlistRequestTypeID: "chatlists.leaveChatlist#74fae13a",
StoriesCanSendStoryRequestTypeID: "stories.canSendStory#30eb63f0", StoriesCanSendStoryRequestTypeID: "stories.canSendStory#30eb63f0",
StoriesSendStoryRequestTypeID: "stories.sendStory#737fc2ec", StoriesSendStoryRequestTypeID: "stories.sendStory#8f9e6898",
StoriesEditStoryRequestTypeID: "stories.editStory#b583ba46", StoriesEditStoryRequestTypeID: "stories.editStory#2c63a72b",
StoriesDeleteStoriesRequestTypeID: "stories.deleteStories#ae59db5f", StoriesDeleteStoriesRequestTypeID: "stories.deleteStories#ae59db5f",
StoriesTogglePinnedRequestTypeID: "stories.togglePinned#9a75a1ef", StoriesTogglePinnedRequestTypeID: "stories.togglePinned#9a75a1ef",
StoriesGetAllStoriesRequestTypeID: "stories.getAllStories#eeb0d625", StoriesGetAllStoriesRequestTypeID: "stories.getAllStories#eeb0d625",
@@ -2538,6 +2564,9 @@ func NamesMap() map[string]uint32 {
"messageActionChangeCreator": MessageActionChangeCreatorTypeID, "messageActionChangeCreator": MessageActionChangeCreatorTypeID,
"messageActionNoForwardsToggle": MessageActionNoForwardsToggleTypeID, "messageActionNoForwardsToggle": MessageActionNoForwardsToggleTypeID,
"messageActionNoForwardsRequest": MessageActionNoForwardsRequestTypeID, "messageActionNoForwardsRequest": MessageActionNoForwardsRequestTypeID,
"messageActionPollAppendAnswer": MessageActionPollAppendAnswerTypeID,
"messageActionPollDeleteAnswer": MessageActionPollDeleteAnswerTypeID,
"messageActionManagedBotCreated": MessageActionManagedBotCreatedTypeID,
"dialog": DialogTypeID, "dialog": DialogTypeID,
"dialogFolder": DialogFolderTypeID, "dialogFolder": DialogFolderTypeID,
"photoEmpty": PhotoEmptyTypeID, "photoEmpty": PhotoEmptyTypeID,
@@ -2613,6 +2642,7 @@ func NamesMap() map[string]uint32 {
"inputMessagesFilterGeo": InputMessagesFilterGeoTypeID, "inputMessagesFilterGeo": InputMessagesFilterGeoTypeID,
"inputMessagesFilterContacts": InputMessagesFilterContactsTypeID, "inputMessagesFilterContacts": InputMessagesFilterContactsTypeID,
"inputMessagesFilterPinned": InputMessagesFilterPinnedTypeID, "inputMessagesFilterPinned": InputMessagesFilterPinnedTypeID,
"inputMessagesFilterPoll": InputMessagesFilterPollTypeID,
"updateNewMessage": UpdateNewMessageTypeID, "updateNewMessage": UpdateNewMessageTypeID,
"updateMessageID": UpdateMessageIDTypeID, "updateMessageID": UpdateMessageIDTypeID,
"updateDeleteMessages": UpdateDeleteMessagesTypeID, "updateDeleteMessages": UpdateDeleteMessagesTypeID,
@@ -2766,6 +2796,7 @@ func NamesMap() map[string]uint32 {
"updateEmojiGameInfo": UpdateEmojiGameInfoTypeID, "updateEmojiGameInfo": UpdateEmojiGameInfoTypeID,
"updateStarGiftCraftFail": UpdateStarGiftCraftFailTypeID, "updateStarGiftCraftFail": UpdateStarGiftCraftFailTypeID,
"updateChatParticipantRank": UpdateChatParticipantRankTypeID, "updateChatParticipantRank": UpdateChatParticipantRankTypeID,
"updateManagedBot": UpdateManagedBotTypeID,
"updates.state": UpdatesStateTypeID, "updates.state": UpdatesStateTypeID,
"updates.differenceEmpty": UpdatesDifferenceEmptyTypeID, "updates.differenceEmpty": UpdatesDifferenceEmptyTypeID,
"updates.difference": UpdatesDifferenceTypeID, "updates.difference": UpdatesDifferenceTypeID,
@@ -2983,6 +3014,9 @@ func NamesMap() map[string]uint32 {
"messageEntityCustomEmoji": MessageEntityCustomEmojiTypeID, "messageEntityCustomEmoji": MessageEntityCustomEmojiTypeID,
"messageEntityBlockquote": MessageEntityBlockquoteTypeID, "messageEntityBlockquote": MessageEntityBlockquoteTypeID,
"messageEntityFormattedDate": MessageEntityFormattedDateTypeID, "messageEntityFormattedDate": MessageEntityFormattedDateTypeID,
"messageEntityDiffInsert": MessageEntityDiffInsertTypeID,
"messageEntityDiffReplace": MessageEntityDiffReplaceTypeID,
"messageEntityDiffDelete": MessageEntityDiffDeleteTypeID,
"inputChannelEmpty": InputChannelEmptyTypeID, "inputChannelEmpty": InputChannelEmptyTypeID,
"inputChannel": InputChannelTypeID, "inputChannel": InputChannelTypeID,
"inputChannelFromMessage": InputChannelFromMessageTypeID, "inputChannelFromMessage": InputChannelFromMessageTypeID,
@@ -3347,6 +3381,7 @@ func NamesMap() map[string]uint32 {
"help.userInfoEmpty": HelpUserInfoEmptyTypeID, "help.userInfoEmpty": HelpUserInfoEmptyTypeID,
"help.userInfo": HelpUserInfoTypeID, "help.userInfo": HelpUserInfoTypeID,
"pollAnswer": PollAnswerTypeID, "pollAnswer": PollAnswerTypeID,
"inputPollAnswer": InputPollAnswerTypeID,
"poll": PollTypeID, "poll": PollTypeID,
"pollAnswerVoters": PollAnswerVotersTypeID, "pollAnswerVoters": PollAnswerVotersTypeID,
"pollResults": PollResultsTypeID, "pollResults": PollResultsTypeID,
@@ -3592,6 +3627,7 @@ func NamesMap() map[string]uint32 {
"requestPeerTypeUser": RequestPeerTypeUserTypeID, "requestPeerTypeUser": RequestPeerTypeUserTypeID,
"requestPeerTypeChat": RequestPeerTypeChatTypeID, "requestPeerTypeChat": RequestPeerTypeChatTypeID,
"requestPeerTypeBroadcast": RequestPeerTypeBroadcastTypeID, "requestPeerTypeBroadcast": RequestPeerTypeBroadcastTypeID,
"requestPeerTypeCreateBot": RequestPeerTypeCreateBotTypeID,
"emojiListNotModified": EmojiListNotModifiedTypeID, "emojiListNotModified": EmojiListNotModifiedTypeID,
"emojiList": EmojiListTypeID, "emojiList": EmojiListTypeID,
"emojiGroup": EmojiGroupTypeID, "emojiGroup": EmojiGroupTypeID,
@@ -3903,6 +3939,10 @@ func NamesMap() map[string]uint32 {
"starGiftAttributeRarityEpic": StarGiftAttributeRarityEpicTypeID, "starGiftAttributeRarityEpic": StarGiftAttributeRarityEpicTypeID,
"starGiftAttributeRarityLegendary": StarGiftAttributeRarityLegendaryTypeID, "starGiftAttributeRarityLegendary": StarGiftAttributeRarityLegendaryTypeID,
"keyboardButtonStyle": KeyboardButtonStyleTypeID, "keyboardButtonStyle": KeyboardButtonStyleTypeID,
"inputMessageReadMetric": InputMessageReadMetricTypeID,
"bots.exportedBotToken": BotsExportedBotTokenTypeID,
"bots.requestedButton": BotsRequestedButtonTypeID,
"messages.composedMessageWithAI": MessagesComposedMessageWithAITypeID,
"invokeAfterMsg": InvokeAfterMsgRequestTypeID, "invokeAfterMsg": InvokeAfterMsgRequestTypeID,
"invokeAfterMsgs": InvokeAfterMsgsRequestTypeID, "invokeAfterMsgs": InvokeAfterMsgsRequestTypeID,
"initConnection": InitConnectionRequestTypeID, "initConnection": InitConnectionRequestTypeID,
@@ -4342,6 +4382,13 @@ func NamesMap() map[string]uint32 {
"messages.editChatParticipantRank": MessagesEditChatParticipantRankRequestTypeID, "messages.editChatParticipantRank": MessagesEditChatParticipantRankRequestTypeID,
"messages.declineUrlAuth": MessagesDeclineURLAuthRequestTypeID, "messages.declineUrlAuth": MessagesDeclineURLAuthRequestTypeID,
"messages.checkUrlAuthMatchCode": MessagesCheckURLAuthMatchCodeRequestTypeID, "messages.checkUrlAuthMatchCode": MessagesCheckURLAuthMatchCodeRequestTypeID,
"messages.composeMessageWithAI": MessagesComposeMessageWithAIRequestTypeID,
"messages.reportReadMetrics": MessagesReportReadMetricsRequestTypeID,
"messages.reportMusicListen": MessagesReportMusicListenRequestTypeID,
"messages.addPollAnswer": MessagesAddPollAnswerRequestTypeID,
"messages.deletePollAnswer": MessagesDeletePollAnswerRequestTypeID,
"messages.getUnreadPollVotes": MessagesGetUnreadPollVotesRequestTypeID,
"messages.readPollVotes": MessagesReadPollVotesRequestTypeID,
"updates.getState": UpdatesGetStateRequestTypeID, "updates.getState": UpdatesGetStateRequestTypeID,
"updates.getDifference": UpdatesGetDifferenceRequestTypeID, "updates.getDifference": UpdatesGetDifferenceRequestTypeID,
"updates.getChannelDifference": UpdatesGetChannelDifferenceRequestTypeID, "updates.getChannelDifference": UpdatesGetChannelDifferenceRequestTypeID,
@@ -4471,6 +4518,11 @@ func NamesMap() map[string]uint32 {
"bots.updateStarRefProgram": BotsUpdateStarRefProgramRequestTypeID, "bots.updateStarRefProgram": BotsUpdateStarRefProgramRequestTypeID,
"bots.setCustomVerification": BotsSetCustomVerificationRequestTypeID, "bots.setCustomVerification": BotsSetCustomVerificationRequestTypeID,
"bots.getBotRecommendations": BotsGetBotRecommendationsRequestTypeID, "bots.getBotRecommendations": BotsGetBotRecommendationsRequestTypeID,
"bots.checkUsername": BotsCheckUsernameRequestTypeID,
"bots.createBot": BotsCreateBotRequestTypeID,
"bots.exportBotToken": BotsExportBotTokenRequestTypeID,
"bots.requestWebViewButton": BotsRequestWebViewButtonRequestTypeID,
"bots.getRequestedWebViewButton": BotsGetRequestedWebViewButtonRequestTypeID,
"payments.getPaymentForm": PaymentsGetPaymentFormRequestTypeID, "payments.getPaymentForm": PaymentsGetPaymentFormRequestTypeID,
"payments.getPaymentReceipt": PaymentsGetPaymentReceiptRequestTypeID, "payments.getPaymentReceipt": PaymentsGetPaymentReceiptRequestTypeID,
"payments.validateRequestedInfo": PaymentsValidateRequestedInfoRequestTypeID, "payments.validateRequestedInfo": PaymentsValidateRequestedInfoRequestTypeID,
@@ -4859,6 +4911,9 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
MessageActionChangeCreatorTypeID: func() bin.Object { return &MessageActionChangeCreator{} }, MessageActionChangeCreatorTypeID: func() bin.Object { return &MessageActionChangeCreator{} },
MessageActionNoForwardsToggleTypeID: func() bin.Object { return &MessageActionNoForwardsToggle{} }, MessageActionNoForwardsToggleTypeID: func() bin.Object { return &MessageActionNoForwardsToggle{} },
MessageActionNoForwardsRequestTypeID: func() bin.Object { return &MessageActionNoForwardsRequest{} }, MessageActionNoForwardsRequestTypeID: func() bin.Object { return &MessageActionNoForwardsRequest{} },
MessageActionPollAppendAnswerTypeID: func() bin.Object { return &MessageActionPollAppendAnswer{} },
MessageActionPollDeleteAnswerTypeID: func() bin.Object { return &MessageActionPollDeleteAnswer{} },
MessageActionManagedBotCreatedTypeID: func() bin.Object { return &MessageActionManagedBotCreated{} },
DialogTypeID: func() bin.Object { return &Dialog{} }, DialogTypeID: func() bin.Object { return &Dialog{} },
DialogFolderTypeID: func() bin.Object { return &DialogFolder{} }, DialogFolderTypeID: func() bin.Object { return &DialogFolder{} },
PhotoEmptyTypeID: func() bin.Object { return &PhotoEmpty{} }, PhotoEmptyTypeID: func() bin.Object { return &PhotoEmpty{} },
@@ -4934,6 +4989,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
InputMessagesFilterGeoTypeID: func() bin.Object { return &InputMessagesFilterGeo{} }, InputMessagesFilterGeoTypeID: func() bin.Object { return &InputMessagesFilterGeo{} },
InputMessagesFilterContactsTypeID: func() bin.Object { return &InputMessagesFilterContacts{} }, InputMessagesFilterContactsTypeID: func() bin.Object { return &InputMessagesFilterContacts{} },
InputMessagesFilterPinnedTypeID: func() bin.Object { return &InputMessagesFilterPinned{} }, InputMessagesFilterPinnedTypeID: func() bin.Object { return &InputMessagesFilterPinned{} },
InputMessagesFilterPollTypeID: func() bin.Object { return &InputMessagesFilterPoll{} },
UpdateNewMessageTypeID: func() bin.Object { return &UpdateNewMessage{} }, UpdateNewMessageTypeID: func() bin.Object { return &UpdateNewMessage{} },
UpdateMessageIDTypeID: func() bin.Object { return &UpdateMessageID{} }, UpdateMessageIDTypeID: func() bin.Object { return &UpdateMessageID{} },
UpdateDeleteMessagesTypeID: func() bin.Object { return &UpdateDeleteMessages{} }, UpdateDeleteMessagesTypeID: func() bin.Object { return &UpdateDeleteMessages{} },
@@ -5087,6 +5143,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
UpdateEmojiGameInfoTypeID: func() bin.Object { return &UpdateEmojiGameInfo{} }, UpdateEmojiGameInfoTypeID: func() bin.Object { return &UpdateEmojiGameInfo{} },
UpdateStarGiftCraftFailTypeID: func() bin.Object { return &UpdateStarGiftCraftFail{} }, UpdateStarGiftCraftFailTypeID: func() bin.Object { return &UpdateStarGiftCraftFail{} },
UpdateChatParticipantRankTypeID: func() bin.Object { return &UpdateChatParticipantRank{} }, UpdateChatParticipantRankTypeID: func() bin.Object { return &UpdateChatParticipantRank{} },
UpdateManagedBotTypeID: func() bin.Object { return &UpdateManagedBot{} },
UpdatesStateTypeID: func() bin.Object { return &UpdatesState{} }, UpdatesStateTypeID: func() bin.Object { return &UpdatesState{} },
UpdatesDifferenceEmptyTypeID: func() bin.Object { return &UpdatesDifferenceEmpty{} }, UpdatesDifferenceEmptyTypeID: func() bin.Object { return &UpdatesDifferenceEmpty{} },
UpdatesDifferenceTypeID: func() bin.Object { return &UpdatesDifference{} }, UpdatesDifferenceTypeID: func() bin.Object { return &UpdatesDifference{} },
@@ -5304,6 +5361,9 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
MessageEntityCustomEmojiTypeID: func() bin.Object { return &MessageEntityCustomEmoji{} }, MessageEntityCustomEmojiTypeID: func() bin.Object { return &MessageEntityCustomEmoji{} },
MessageEntityBlockquoteTypeID: func() bin.Object { return &MessageEntityBlockquote{} }, MessageEntityBlockquoteTypeID: func() bin.Object { return &MessageEntityBlockquote{} },
MessageEntityFormattedDateTypeID: func() bin.Object { return &MessageEntityFormattedDate{} }, MessageEntityFormattedDateTypeID: func() bin.Object { return &MessageEntityFormattedDate{} },
MessageEntityDiffInsertTypeID: func() bin.Object { return &MessageEntityDiffInsert{} },
MessageEntityDiffReplaceTypeID: func() bin.Object { return &MessageEntityDiffReplace{} },
MessageEntityDiffDeleteTypeID: func() bin.Object { return &MessageEntityDiffDelete{} },
InputChannelEmptyTypeID: func() bin.Object { return &InputChannelEmpty{} }, InputChannelEmptyTypeID: func() bin.Object { return &InputChannelEmpty{} },
InputChannelTypeID: func() bin.Object { return &InputChannel{} }, InputChannelTypeID: func() bin.Object { return &InputChannel{} },
InputChannelFromMessageTypeID: func() bin.Object { return &InputChannelFromMessage{} }, InputChannelFromMessageTypeID: func() bin.Object { return &InputChannelFromMessage{} },
@@ -5668,6 +5728,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
HelpUserInfoEmptyTypeID: func() bin.Object { return &HelpUserInfoEmpty{} }, HelpUserInfoEmptyTypeID: func() bin.Object { return &HelpUserInfoEmpty{} },
HelpUserInfoTypeID: func() bin.Object { return &HelpUserInfo{} }, HelpUserInfoTypeID: func() bin.Object { return &HelpUserInfo{} },
PollAnswerTypeID: func() bin.Object { return &PollAnswer{} }, PollAnswerTypeID: func() bin.Object { return &PollAnswer{} },
InputPollAnswerTypeID: func() bin.Object { return &InputPollAnswer{} },
PollTypeID: func() bin.Object { return &Poll{} }, PollTypeID: func() bin.Object { return &Poll{} },
PollAnswerVotersTypeID: func() bin.Object { return &PollAnswerVoters{} }, PollAnswerVotersTypeID: func() bin.Object { return &PollAnswerVoters{} },
PollResultsTypeID: func() bin.Object { return &PollResults{} }, PollResultsTypeID: func() bin.Object { return &PollResults{} },
@@ -5913,6 +5974,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
RequestPeerTypeUserTypeID: func() bin.Object { return &RequestPeerTypeUser{} }, RequestPeerTypeUserTypeID: func() bin.Object { return &RequestPeerTypeUser{} },
RequestPeerTypeChatTypeID: func() bin.Object { return &RequestPeerTypeChat{} }, RequestPeerTypeChatTypeID: func() bin.Object { return &RequestPeerTypeChat{} },
RequestPeerTypeBroadcastTypeID: func() bin.Object { return &RequestPeerTypeBroadcast{} }, RequestPeerTypeBroadcastTypeID: func() bin.Object { return &RequestPeerTypeBroadcast{} },
RequestPeerTypeCreateBotTypeID: func() bin.Object { return &RequestPeerTypeCreateBot{} },
EmojiListNotModifiedTypeID: func() bin.Object { return &EmojiListNotModified{} }, EmojiListNotModifiedTypeID: func() bin.Object { return &EmojiListNotModified{} },
EmojiListTypeID: func() bin.Object { return &EmojiList{} }, EmojiListTypeID: func() bin.Object { return &EmojiList{} },
EmojiGroupTypeID: func() bin.Object { return &EmojiGroup{} }, EmojiGroupTypeID: func() bin.Object { return &EmojiGroup{} },
@@ -6224,6 +6286,10 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
StarGiftAttributeRarityEpicTypeID: func() bin.Object { return &StarGiftAttributeRarityEpic{} }, StarGiftAttributeRarityEpicTypeID: func() bin.Object { return &StarGiftAttributeRarityEpic{} },
StarGiftAttributeRarityLegendaryTypeID: func() bin.Object { return &StarGiftAttributeRarityLegendary{} }, StarGiftAttributeRarityLegendaryTypeID: func() bin.Object { return &StarGiftAttributeRarityLegendary{} },
KeyboardButtonStyleTypeID: func() bin.Object { return &KeyboardButtonStyle{} }, KeyboardButtonStyleTypeID: func() bin.Object { return &KeyboardButtonStyle{} },
InputMessageReadMetricTypeID: func() bin.Object { return &InputMessageReadMetric{} },
BotsExportedBotTokenTypeID: func() bin.Object { return &BotsExportedBotToken{} },
BotsRequestedButtonTypeID: func() bin.Object { return &BotsRequestedButton{} },
MessagesComposedMessageWithAITypeID: func() bin.Object { return &MessagesComposedMessageWithAI{} },
InvokeAfterMsgRequestTypeID: func() bin.Object { return &InvokeAfterMsgRequest{} }, InvokeAfterMsgRequestTypeID: func() bin.Object { return &InvokeAfterMsgRequest{} },
InvokeAfterMsgsRequestTypeID: func() bin.Object { return &InvokeAfterMsgsRequest{} }, InvokeAfterMsgsRequestTypeID: func() bin.Object { return &InvokeAfterMsgsRequest{} },
InitConnectionRequestTypeID: func() bin.Object { return &InitConnectionRequest{} }, InitConnectionRequestTypeID: func() bin.Object { return &InitConnectionRequest{} },
@@ -6663,6 +6729,13 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
MessagesEditChatParticipantRankRequestTypeID: func() bin.Object { return &MessagesEditChatParticipantRankRequest{} }, MessagesEditChatParticipantRankRequestTypeID: func() bin.Object { return &MessagesEditChatParticipantRankRequest{} },
MessagesDeclineURLAuthRequestTypeID: func() bin.Object { return &MessagesDeclineURLAuthRequest{} }, MessagesDeclineURLAuthRequestTypeID: func() bin.Object { return &MessagesDeclineURLAuthRequest{} },
MessagesCheckURLAuthMatchCodeRequestTypeID: func() bin.Object { return &MessagesCheckURLAuthMatchCodeRequest{} }, MessagesCheckURLAuthMatchCodeRequestTypeID: func() bin.Object { return &MessagesCheckURLAuthMatchCodeRequest{} },
MessagesComposeMessageWithAIRequestTypeID: func() bin.Object { return &MessagesComposeMessageWithAIRequest{} },
MessagesReportReadMetricsRequestTypeID: func() bin.Object { return &MessagesReportReadMetricsRequest{} },
MessagesReportMusicListenRequestTypeID: func() bin.Object { return &MessagesReportMusicListenRequest{} },
MessagesAddPollAnswerRequestTypeID: func() bin.Object { return &MessagesAddPollAnswerRequest{} },
MessagesDeletePollAnswerRequestTypeID: func() bin.Object { return &MessagesDeletePollAnswerRequest{} },
MessagesGetUnreadPollVotesRequestTypeID: func() bin.Object { return &MessagesGetUnreadPollVotesRequest{} },
MessagesReadPollVotesRequestTypeID: func() bin.Object { return &MessagesReadPollVotesRequest{} },
UpdatesGetStateRequestTypeID: func() bin.Object { return &UpdatesGetStateRequest{} }, UpdatesGetStateRequestTypeID: func() bin.Object { return &UpdatesGetStateRequest{} },
UpdatesGetDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetDifferenceRequest{} }, UpdatesGetDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetDifferenceRequest{} },
UpdatesGetChannelDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetChannelDifferenceRequest{} }, UpdatesGetChannelDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetChannelDifferenceRequest{} },
@@ -6792,6 +6865,11 @@ func TypesConstructorMap() map[uint32]func() bin.Object {
BotsUpdateStarRefProgramRequestTypeID: func() bin.Object { return &BotsUpdateStarRefProgramRequest{} }, BotsUpdateStarRefProgramRequestTypeID: func() bin.Object { return &BotsUpdateStarRefProgramRequest{} },
BotsSetCustomVerificationRequestTypeID: func() bin.Object { return &BotsSetCustomVerificationRequest{} }, BotsSetCustomVerificationRequestTypeID: func() bin.Object { return &BotsSetCustomVerificationRequest{} },
BotsGetBotRecommendationsRequestTypeID: func() bin.Object { return &BotsGetBotRecommendationsRequest{} }, BotsGetBotRecommendationsRequestTypeID: func() bin.Object { return &BotsGetBotRecommendationsRequest{} },
BotsCheckUsernameRequestTypeID: func() bin.Object { return &BotsCheckUsernameRequest{} },
BotsCreateBotRequestTypeID: func() bin.Object { return &BotsCreateBotRequest{} },
BotsExportBotTokenRequestTypeID: func() bin.Object { return &BotsExportBotTokenRequest{} },
BotsRequestWebViewButtonRequestTypeID: func() bin.Object { return &BotsRequestWebViewButtonRequest{} },
BotsGetRequestedWebViewButtonRequestTypeID: func() bin.Object { return &BotsGetRequestedWebViewButtonRequest{} },
PaymentsGetPaymentFormRequestTypeID: func() bin.Object { return &PaymentsGetPaymentFormRequest{} }, PaymentsGetPaymentFormRequestTypeID: func() bin.Object { return &PaymentsGetPaymentFormRequest{} },
PaymentsGetPaymentReceiptRequestTypeID: func() bin.Object { return &PaymentsGetPaymentReceiptRequest{} }, PaymentsGetPaymentReceiptRequestTypeID: func() bin.Object { return &PaymentsGetPaymentReceiptRequest{} },
PaymentsValidateRequestedInfoRequestTypeID: func() bin.Object { return &PaymentsValidateRequestedInfoRequest{} }, PaymentsValidateRequestedInfoRequestTypeID: func() bin.Object { return &PaymentsValidateRequestedInfoRequest{} },
@@ -7805,6 +7883,9 @@ func ClassConstructorsMap() map[string][]uint32 {
MessageActionChangeCreatorTypeID, MessageActionChangeCreatorTypeID,
MessageActionNoForwardsToggleTypeID, MessageActionNoForwardsToggleTypeID,
MessageActionNoForwardsRequestTypeID, MessageActionNoForwardsRequestTypeID,
MessageActionPollAppendAnswerTypeID,
MessageActionPollDeleteAnswerTypeID,
MessageActionManagedBotCreatedTypeID,
}, },
MessageClassName: { MessageClassName: {
MessageEmptyTypeID, MessageEmptyTypeID,
@@ -7834,6 +7915,9 @@ func ClassConstructorsMap() map[string][]uint32 {
MessageEntityCustomEmojiTypeID, MessageEntityCustomEmojiTypeID,
MessageEntityBlockquoteTypeID, MessageEntityBlockquoteTypeID,
MessageEntityFormattedDateTypeID, MessageEntityFormattedDateTypeID,
MessageEntityDiffInsertTypeID,
MessageEntityDiffReplaceTypeID,
MessageEntityDiffDeleteTypeID,
}, },
MessageExtendedMediaClassName: { MessageExtendedMediaClassName: {
MessageExtendedMediaPreviewTypeID, MessageExtendedMediaPreviewTypeID,
@@ -7932,6 +8016,7 @@ func ClassConstructorsMap() map[string][]uint32 {
InputMessagesFilterGeoTypeID, InputMessagesFilterGeoTypeID,
InputMessagesFilterContactsTypeID, InputMessagesFilterContactsTypeID,
InputMessagesFilterPinnedTypeID, InputMessagesFilterPinnedTypeID,
InputMessagesFilterPollTypeID,
}, },
MessagesFoundStickerSetsClassName: { MessagesFoundStickerSetsClassName: {
MessagesFoundStickerSetsNotModifiedTypeID, MessagesFoundStickerSetsNotModifiedTypeID,
@@ -8135,6 +8220,10 @@ func ClassConstructorsMap() map[string][]uint32 {
PhotosPhotosTypeID, PhotosPhotosTypeID,
PhotosPhotosSliceTypeID, PhotosPhotosSliceTypeID,
}, },
PollAnswerClassName: {
PollAnswerTypeID,
InputPollAnswerTypeID,
},
PostInteractionCountersClassName: { PostInteractionCountersClassName: {
PostInteractionCountersMessageTypeID, PostInteractionCountersMessageTypeID,
PostInteractionCountersStoryTypeID, PostInteractionCountersStoryTypeID,
@@ -8231,6 +8320,7 @@ func ClassConstructorsMap() map[string][]uint32 {
RequestPeerTypeUserTypeID, RequestPeerTypeUserTypeID,
RequestPeerTypeChatTypeID, RequestPeerTypeChatTypeID,
RequestPeerTypeBroadcastTypeID, RequestPeerTypeBroadcastTypeID,
RequestPeerTypeCreateBotTypeID,
}, },
RequestedPeerClassName: { RequestedPeerClassName: {
RequestedPeerUserTypeID, RequestedPeerUserTypeID,
@@ -8589,6 +8679,7 @@ func ClassConstructorsMap() map[string][]uint32 {
UpdateEmojiGameInfoTypeID, UpdateEmojiGameInfoTypeID,
UpdateStarGiftCraftFailTypeID, UpdateStarGiftCraftFailTypeID,
UpdateChatParticipantRankTypeID, UpdateChatParticipantRankTypeID,
UpdateManagedBotTypeID,
}, },
UpdatesChannelDifferenceClassName: { UpdatesChannelDifferenceClassName: {
UpdatesChannelDifferenceEmptyTypeID, UpdatesChannelDifferenceEmptyTypeID,
+264
View File
@@ -976,6 +976,262 @@ func (r *RequestPeerTypeBroadcast) GetBotAdminRights() (value ChatAdminRights, o
return r.BotAdminRights, true return r.BotAdminRights, true
} }
// RequestPeerTypeCreateBot represents TL type `requestPeerTypeCreateBot#3e81e078`.
//
// See https://core.telegram.org/constructor/requestPeerTypeCreateBot for reference.
type RequestPeerTypeCreateBot struct {
// Flags field of RequestPeerTypeCreateBot.
Flags bin.Fields
// BotManaged field of RequestPeerTypeCreateBot.
BotManaged bool
// SuggestedName field of RequestPeerTypeCreateBot.
//
// Use SetSuggestedName and GetSuggestedName helpers.
SuggestedName string
// SuggestedUsername field of RequestPeerTypeCreateBot.
//
// Use SetSuggestedUsername and GetSuggestedUsername helpers.
SuggestedUsername string
}
// RequestPeerTypeCreateBotTypeID is TL type id of RequestPeerTypeCreateBot.
const RequestPeerTypeCreateBotTypeID = 0x3e81e078
// construct implements constructor of RequestPeerTypeClass.
func (r RequestPeerTypeCreateBot) construct() RequestPeerTypeClass { return &r }
// Ensuring interfaces in compile-time for RequestPeerTypeCreateBot.
var (
_ bin.Encoder = &RequestPeerTypeCreateBot{}
_ bin.Decoder = &RequestPeerTypeCreateBot{}
_ bin.BareEncoder = &RequestPeerTypeCreateBot{}
_ bin.BareDecoder = &RequestPeerTypeCreateBot{}
_ RequestPeerTypeClass = &RequestPeerTypeCreateBot{}
)
func (r *RequestPeerTypeCreateBot) Zero() bool {
if r == nil {
return true
}
if !(r.Flags.Zero()) {
return false
}
if !(r.BotManaged == false) {
return false
}
if !(r.SuggestedName == "") {
return false
}
if !(r.SuggestedUsername == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (r *RequestPeerTypeCreateBot) String() string {
if r == nil {
return "RequestPeerTypeCreateBot(nil)"
}
type Alias RequestPeerTypeCreateBot
return fmt.Sprintf("RequestPeerTypeCreateBot%+v", Alias(*r))
}
// FillFrom fills RequestPeerTypeCreateBot from given interface.
func (r *RequestPeerTypeCreateBot) FillFrom(from interface {
GetBotManaged() (value bool)
GetSuggestedName() (value string, ok bool)
GetSuggestedUsername() (value string, ok bool)
}) {
r.BotManaged = from.GetBotManaged()
if val, ok := from.GetSuggestedName(); ok {
r.SuggestedName = val
}
if val, ok := from.GetSuggestedUsername(); ok {
r.SuggestedUsername = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*RequestPeerTypeCreateBot) TypeID() uint32 {
return RequestPeerTypeCreateBotTypeID
}
// TypeName returns name of type in TL schema.
func (*RequestPeerTypeCreateBot) TypeName() string {
return "requestPeerTypeCreateBot"
}
// TypeInfo returns info about TL type.
func (r *RequestPeerTypeCreateBot) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "requestPeerTypeCreateBot",
ID: RequestPeerTypeCreateBotTypeID,
}
if r == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "BotManaged",
SchemaName: "bot_managed",
Null: !r.Flags.Has(0),
},
{
Name: "SuggestedName",
SchemaName: "suggested_name",
Null: !r.Flags.Has(1),
},
{
Name: "SuggestedUsername",
SchemaName: "suggested_username",
Null: !r.Flags.Has(2),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (r *RequestPeerTypeCreateBot) SetFlags() {
if !(r.BotManaged == false) {
r.Flags.Set(0)
}
if !(r.SuggestedName == "") {
r.Flags.Set(1)
}
if !(r.SuggestedUsername == "") {
r.Flags.Set(2)
}
}
// Encode implements bin.Encoder.
func (r *RequestPeerTypeCreateBot) Encode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode requestPeerTypeCreateBot#3e81e078 as nil")
}
b.PutID(RequestPeerTypeCreateBotTypeID)
return r.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (r *RequestPeerTypeCreateBot) EncodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't encode requestPeerTypeCreateBot#3e81e078 as nil")
}
r.SetFlags()
if err := r.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode requestPeerTypeCreateBot#3e81e078: field flags: %w", err)
}
if r.Flags.Has(1) {
b.PutString(r.SuggestedName)
}
if r.Flags.Has(2) {
b.PutString(r.SuggestedUsername)
}
return nil
}
// Decode implements bin.Decoder.
func (r *RequestPeerTypeCreateBot) Decode(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode requestPeerTypeCreateBot#3e81e078 to nil")
}
if err := b.ConsumeID(RequestPeerTypeCreateBotTypeID); err != nil {
return fmt.Errorf("unable to decode requestPeerTypeCreateBot#3e81e078: %w", err)
}
return r.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (r *RequestPeerTypeCreateBot) DecodeBare(b *bin.Buffer) error {
if r == nil {
return fmt.Errorf("can't decode requestPeerTypeCreateBot#3e81e078 to nil")
}
{
if err := r.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode requestPeerTypeCreateBot#3e81e078: field flags: %w", err)
}
}
r.BotManaged = r.Flags.Has(0)
if r.Flags.Has(1) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode requestPeerTypeCreateBot#3e81e078: field suggested_name: %w", err)
}
r.SuggestedName = value
}
if r.Flags.Has(2) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode requestPeerTypeCreateBot#3e81e078: field suggested_username: %w", err)
}
r.SuggestedUsername = value
}
return nil
}
// SetBotManaged sets value of BotManaged conditional field.
func (r *RequestPeerTypeCreateBot) SetBotManaged(value bool) {
if value {
r.Flags.Set(0)
r.BotManaged = true
} else {
r.Flags.Unset(0)
r.BotManaged = false
}
}
// GetBotManaged returns value of BotManaged conditional field.
func (r *RequestPeerTypeCreateBot) GetBotManaged() (value bool) {
if r == nil {
return
}
return r.Flags.Has(0)
}
// SetSuggestedName sets value of SuggestedName conditional field.
func (r *RequestPeerTypeCreateBot) SetSuggestedName(value string) {
r.Flags.Set(1)
r.SuggestedName = value
}
// GetSuggestedName returns value of SuggestedName conditional field and
// boolean which is true if field was set.
func (r *RequestPeerTypeCreateBot) GetSuggestedName() (value string, ok bool) {
if r == nil {
return
}
if !r.Flags.Has(1) {
return value, false
}
return r.SuggestedName, true
}
// SetSuggestedUsername sets value of SuggestedUsername conditional field.
func (r *RequestPeerTypeCreateBot) SetSuggestedUsername(value string) {
r.Flags.Set(2)
r.SuggestedUsername = value
}
// GetSuggestedUsername returns value of SuggestedUsername conditional field and
// boolean which is true if field was set.
func (r *RequestPeerTypeCreateBot) GetSuggestedUsername() (value string, ok bool) {
if r == nil {
return
}
if !r.Flags.Has(2) {
return value, false
}
return r.SuggestedUsername, true
}
// RequestPeerTypeClassName is schema name of RequestPeerTypeClass. // RequestPeerTypeClassName is schema name of RequestPeerTypeClass.
const RequestPeerTypeClassName = "RequestPeerType" const RequestPeerTypeClassName = "RequestPeerType"
@@ -993,6 +1249,7 @@ const RequestPeerTypeClassName = "RequestPeerType"
// case *tg.RequestPeerTypeUser: // requestPeerTypeUser#5f3b8a00 // case *tg.RequestPeerTypeUser: // requestPeerTypeUser#5f3b8a00
// case *tg.RequestPeerTypeChat: // requestPeerTypeChat#c9f06e1b // case *tg.RequestPeerTypeChat: // requestPeerTypeChat#c9f06e1b
// case *tg.RequestPeerTypeBroadcast: // requestPeerTypeBroadcast#339bef6c // case *tg.RequestPeerTypeBroadcast: // requestPeerTypeBroadcast#339bef6c
// case *tg.RequestPeerTypeCreateBot: // requestPeerTypeCreateBot#3e81e078
// default: panic(v) // default: panic(v)
// } // }
type RequestPeerTypeClass interface { type RequestPeerTypeClass interface {
@@ -1042,6 +1299,13 @@ func DecodeRequestPeerType(buf *bin.Buffer) (RequestPeerTypeClass, error) {
return nil, fmt.Errorf("unable to decode RequestPeerTypeClass: %w", err) return nil, fmt.Errorf("unable to decode RequestPeerTypeClass: %w", err)
} }
return &v, nil return &v, nil
case RequestPeerTypeCreateBotTypeID:
// Decoding requestPeerTypeCreateBot#3e81e078.
v := RequestPeerTypeCreateBot{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode RequestPeerTypeClass: %w", err)
}
return &v, nil
default: default:
return nil, fmt.Errorf("unable to decode RequestPeerTypeClass: %w", bin.NewUnexpectedID(id)) return nil, fmt.Errorf("unable to decode RequestPeerTypeClass: %w", bin.NewUnexpectedID(id))
} }
+95
View File
@@ -155,6 +155,19 @@ func (s RequestPeerTypeClassArray) AsRequestPeerTypeBroadcast() (to RequestPeerT
return to return to
} }
// AsRequestPeerTypeCreateBot returns copy with only RequestPeerTypeCreateBot constructors.
func (s RequestPeerTypeClassArray) AsRequestPeerTypeCreateBot() (to RequestPeerTypeCreateBotArray) {
for _, elem := range s {
value, ok := elem.(*RequestPeerTypeCreateBot)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// RequestPeerTypeUserArray is adapter for slice of RequestPeerTypeUser. // RequestPeerTypeUserArray is adapter for slice of RequestPeerTypeUser.
type RequestPeerTypeUserArray []RequestPeerTypeUser type RequestPeerTypeUserArray []RequestPeerTypeUser
@@ -400,3 +413,85 @@ func (s *RequestPeerTypeBroadcastArray) Pop() (v RequestPeerTypeBroadcast, ok bo
return v, true return v, true
} }
// RequestPeerTypeCreateBotArray is adapter for slice of RequestPeerTypeCreateBot.
type RequestPeerTypeCreateBotArray []RequestPeerTypeCreateBot
// Sort sorts slice of RequestPeerTypeCreateBot.
func (s RequestPeerTypeCreateBotArray) Sort(less func(a, b RequestPeerTypeCreateBot) bool) RequestPeerTypeCreateBotArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of RequestPeerTypeCreateBot.
func (s RequestPeerTypeCreateBotArray) SortStable(less func(a, b RequestPeerTypeCreateBot) bool) RequestPeerTypeCreateBotArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of RequestPeerTypeCreateBot.
func (s RequestPeerTypeCreateBotArray) Retain(keep func(x RequestPeerTypeCreateBot) bool) RequestPeerTypeCreateBotArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s RequestPeerTypeCreateBotArray) First() (v RequestPeerTypeCreateBot, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s RequestPeerTypeCreateBotArray) Last() (v RequestPeerTypeCreateBot, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *RequestPeerTypeCreateBotArray) PopFirst() (v RequestPeerTypeCreateBot, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero RequestPeerTypeCreateBot
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *RequestPeerTypeCreateBotArray) Pop() (v RequestPeerTypeCreateBot, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
+216
View File
@@ -7869,6 +7869,133 @@ func (s *ServerDispatcher) OnMessagesCheckURLAuthMatchCode(f func(ctx context.Co
s.handlers[MessagesCheckURLAuthMatchCodeRequestTypeID] = handler s.handlers[MessagesCheckURLAuthMatchCodeRequestTypeID] = handler
} }
func (s *ServerDispatcher) OnMessagesComposeMessageWithAI(f func(ctx context.Context, request *MessagesComposeMessageWithAIRequest) (*MessagesComposedMessageWithAI, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesComposeMessageWithAIRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return response, nil
}
s.handlers[MessagesComposeMessageWithAIRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesReportReadMetrics(f func(ctx context.Context, request *MessagesReportReadMetricsRequest) (bool, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesReportReadMetricsRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
if response {
return &BoolBox{Bool: &BoolTrue{}}, nil
}
return &BoolBox{Bool: &BoolFalse{}}, nil
}
s.handlers[MessagesReportReadMetricsRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesReportMusicListen(f func(ctx context.Context, request *MessagesReportMusicListenRequest) (bool, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesReportMusicListenRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
if response {
return &BoolBox{Bool: &BoolTrue{}}, nil
}
return &BoolBox{Bool: &BoolFalse{}}, nil
}
s.handlers[MessagesReportMusicListenRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesAddPollAnswer(f func(ctx context.Context, request *MessagesAddPollAnswerRequest) (UpdatesClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesAddPollAnswerRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return &UpdatesBox{Updates: response}, nil
}
s.handlers[MessagesAddPollAnswerRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesDeletePollAnswer(f func(ctx context.Context, request *MessagesDeletePollAnswerRequest) (UpdatesClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesDeletePollAnswerRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return &UpdatesBox{Updates: response}, nil
}
s.handlers[MessagesDeletePollAnswerRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesGetUnreadPollVotes(f func(ctx context.Context, request *MessagesGetUnreadPollVotesRequest) (MessagesMessagesClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesGetUnreadPollVotesRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return &MessagesMessagesBox{Messages: response}, nil
}
s.handlers[MessagesGetUnreadPollVotesRequestTypeID] = handler
}
func (s *ServerDispatcher) OnMessagesReadPollVotes(f func(ctx context.Context, request *MessagesReadPollVotesRequest) (*MessagesAffectedHistory, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request MessagesReadPollVotesRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return response, nil
}
s.handlers[MessagesReadPollVotesRequestTypeID] = handler
}
func (s *ServerDispatcher) OnUpdatesGetState(f func(ctx context.Context) (*UpdatesState, error)) { func (s *ServerDispatcher) OnUpdatesGetState(f func(ctx context.Context) (*UpdatesState, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request UpdatesGetStateRequest var request UpdatesGetStateRequest
@@ -10210,6 +10337,95 @@ func (s *ServerDispatcher) OnBotsGetBotRecommendations(f func(ctx context.Contex
s.handlers[BotsGetBotRecommendationsRequestTypeID] = handler s.handlers[BotsGetBotRecommendationsRequestTypeID] = handler
} }
func (s *ServerDispatcher) OnBotsCheckUsername(f func(ctx context.Context, username string) (bool, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request BotsCheckUsernameRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, request.Username)
if err != nil {
return nil, err
}
if response {
return &BoolBox{Bool: &BoolTrue{}}, nil
}
return &BoolBox{Bool: &BoolFalse{}}, nil
}
s.handlers[BotsCheckUsernameRequestTypeID] = handler
}
func (s *ServerDispatcher) OnBotsCreateBot(f func(ctx context.Context, request *BotsCreateBotRequest) (UserClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request BotsCreateBotRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return &UserBox{User: response}, nil
}
s.handlers[BotsCreateBotRequestTypeID] = handler
}
func (s *ServerDispatcher) OnBotsExportBotToken(f func(ctx context.Context, request *BotsExportBotTokenRequest) (*BotsExportedBotToken, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request BotsExportBotTokenRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return response, nil
}
s.handlers[BotsExportBotTokenRequestTypeID] = handler
}
func (s *ServerDispatcher) OnBotsRequestWebViewButton(f func(ctx context.Context, request *BotsRequestWebViewButtonRequest) (*BotsRequestedButton, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request BotsRequestWebViewButtonRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return response, nil
}
s.handlers[BotsRequestWebViewButtonRequestTypeID] = handler
}
func (s *ServerDispatcher) OnBotsGetRequestedWebViewButton(f func(ctx context.Context, request *BotsGetRequestedWebViewButtonRequest) (KeyboardButtonClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request BotsGetRequestedWebViewButtonRequest
if err := request.Decode(b); err != nil {
return nil, err
}
response, err := f(ctx, &request)
if err != nil {
return nil, err
}
return &KeyboardButtonBox{KeyboardButton: response}, nil
}
s.handlers[BotsGetRequestedWebViewButtonRequestTypeID] = handler
}
func (s *ServerDispatcher) OnPaymentsGetPaymentForm(f func(ctx context.Context, request *PaymentsGetPaymentFormRequest) (PaymentsPaymentFormClass, error)) { func (s *ServerDispatcher) OnPaymentsGetPaymentForm(f func(ctx context.Context, request *PaymentsGetPaymentFormRequest) (PaymentsPaymentFormClass, error)) {
handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) {
var request PaymentsGetPaymentFormRequest var request PaymentsGetPaymentFormRequest
+92 -30
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// StoriesEditStoryRequest represents TL type `stories.editStory#b583ba46`. // StoriesEditStoryRequest represents TL type `stories.editStory#2c63a72b`.
// Edit an uploaded story¹ // Edit an uploaded story¹
// May also be used in a business connection¹, not by wrapping the query in // May also be used in a business connection¹, not by wrapping the query in
// invokeWithBusinessConnection »², but rather by specifying the ID of a controlled // invokeWithBusinessConnection »², but rather by specifying the ID of a controlled
@@ -88,10 +88,14 @@ type StoriesEditStoryRequest struct {
// //
// Use SetPrivacyRules and GetPrivacyRules helpers. // Use SetPrivacyRules and GetPrivacyRules helpers.
PrivacyRules []InputPrivacyRuleClass PrivacyRules []InputPrivacyRuleClass
// Music field of StoriesEditStoryRequest.
//
// Use SetMusic and GetMusic helpers.
Music InputDocumentClass
} }
// StoriesEditStoryRequestTypeID is TL type id of StoriesEditStoryRequest. // StoriesEditStoryRequestTypeID is TL type id of StoriesEditStoryRequest.
const StoriesEditStoryRequestTypeID = 0xb583ba46 const StoriesEditStoryRequestTypeID = 0x2c63a72b
// Ensuring interfaces in compile-time for StoriesEditStoryRequest. // Ensuring interfaces in compile-time for StoriesEditStoryRequest.
var ( var (
@@ -129,6 +133,9 @@ func (e *StoriesEditStoryRequest) Zero() bool {
if !(e.PrivacyRules == nil) { if !(e.PrivacyRules == nil) {
return false return false
} }
if !(e.Music == nil) {
return false
}
return true return true
} }
@@ -151,6 +158,7 @@ func (e *StoriesEditStoryRequest) FillFrom(from interface {
GetCaption() (value string, ok bool) GetCaption() (value string, ok bool)
GetEntities() (value []MessageEntityClass, ok bool) GetEntities() (value []MessageEntityClass, ok bool)
GetPrivacyRules() (value []InputPrivacyRuleClass, ok bool) GetPrivacyRules() (value []InputPrivacyRuleClass, ok bool)
GetMusic() (value InputDocumentClass, ok bool)
}) { }) {
e.Peer = from.GetPeer() e.Peer = from.GetPeer()
e.ID = from.GetID() e.ID = from.GetID()
@@ -174,6 +182,10 @@ func (e *StoriesEditStoryRequest) FillFrom(from interface {
e.PrivacyRules = val e.PrivacyRules = val
} }
if val, ok := from.GetMusic(); ok {
e.Music = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -232,6 +244,11 @@ func (e *StoriesEditStoryRequest) TypeInfo() tdp.Type {
SchemaName: "privacy_rules", SchemaName: "privacy_rules",
Null: !e.Flags.Has(2), Null: !e.Flags.Has(2),
}, },
{
Name: "Music",
SchemaName: "music",
Null: !e.Flags.Has(4),
},
} }
return typ return typ
} }
@@ -253,12 +270,15 @@ func (e *StoriesEditStoryRequest) SetFlags() {
if !(e.PrivacyRules == nil) { if !(e.PrivacyRules == nil) {
e.Flags.Set(2) e.Flags.Set(2)
} }
if !(e.Music == nil) {
e.Flags.Set(4)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (e *StoriesEditStoryRequest) Encode(b *bin.Buffer) error { func (e *StoriesEditStoryRequest) Encode(b *bin.Buffer) error {
if e == nil { if e == nil {
return fmt.Errorf("can't encode stories.editStory#b583ba46 as nil") return fmt.Errorf("can't encode stories.editStory#2c63a72b as nil")
} }
b.PutID(StoriesEditStoryRequestTypeID) b.PutID(StoriesEditStoryRequestTypeID)
return e.EncodeBare(b) return e.EncodeBare(b)
@@ -267,35 +287,35 @@ func (e *StoriesEditStoryRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (e *StoriesEditStoryRequest) EncodeBare(b *bin.Buffer) error { func (e *StoriesEditStoryRequest) EncodeBare(b *bin.Buffer) error {
if e == nil { if e == nil {
return fmt.Errorf("can't encode stories.editStory#b583ba46 as nil") return fmt.Errorf("can't encode stories.editStory#2c63a72b as nil")
} }
e.SetFlags() e.SetFlags()
if err := e.Flags.Encode(b); err != nil { if err := e.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field flags: %w", err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field flags: %w", err)
} }
if e.Peer == nil { if e.Peer == nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field peer is nil") return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field peer is nil")
} }
if err := e.Peer.Encode(b); err != nil { if err := e.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field peer: %w", err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field peer: %w", err)
} }
b.PutInt(e.ID) b.PutInt(e.ID)
if e.Flags.Has(0) { if e.Flags.Has(0) {
if e.Media == nil { if e.Media == nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field media is nil") return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field media is nil")
} }
if err := e.Media.Encode(b); err != nil { if err := e.Media.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field media: %w", err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field media: %w", err)
} }
} }
if e.Flags.Has(3) { if e.Flags.Has(3) {
b.PutVectorHeader(len(e.MediaAreas)) b.PutVectorHeader(len(e.MediaAreas))
for idx, v := range e.MediaAreas { for idx, v := range e.MediaAreas {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field media_areas element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field media_areas element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field media_areas element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field media_areas element with index %d: %w", idx, err)
} }
} }
} }
@@ -306,10 +326,10 @@ func (e *StoriesEditStoryRequest) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(e.Entities)) b.PutVectorHeader(len(e.Entities))
for idx, v := range e.Entities { for idx, v := range e.Entities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field entities element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field entities element with index %d: %w", idx, err)
} }
} }
} }
@@ -317,23 +337,31 @@ func (e *StoriesEditStoryRequest) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(e.PrivacyRules)) b.PutVectorHeader(len(e.PrivacyRules))
for idx, v := range e.PrivacyRules { for idx, v := range e.PrivacyRules {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field privacy_rules element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field privacy_rules element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#b583ba46: field privacy_rules element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field privacy_rules element with index %d: %w", idx, err)
} }
} }
} }
if e.Flags.Has(4) {
if e.Music == nil {
return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field music is nil")
}
if err := e.Music.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.editStory#2c63a72b: field music: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (e *StoriesEditStoryRequest) Decode(b *bin.Buffer) error { func (e *StoriesEditStoryRequest) Decode(b *bin.Buffer) error {
if e == nil { if e == nil {
return fmt.Errorf("can't decode stories.editStory#b583ba46 to nil") return fmt.Errorf("can't decode stories.editStory#2c63a72b to nil")
} }
if err := b.ConsumeID(StoriesEditStoryRequestTypeID); err != nil { if err := b.ConsumeID(StoriesEditStoryRequestTypeID); err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: %w", err)
} }
return e.DecodeBare(b) return e.DecodeBare(b)
} }
@@ -341,38 +369,38 @@ func (e *StoriesEditStoryRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error { func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
if e == nil { if e == nil {
return fmt.Errorf("can't decode stories.editStory#b583ba46 to nil") return fmt.Errorf("can't decode stories.editStory#2c63a72b to nil")
} }
{ {
if err := e.Flags.Decode(b); err != nil { if err := e.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field flags: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field flags: %w", err)
} }
} }
{ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field peer: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field peer: %w", err)
} }
e.Peer = value e.Peer = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field id: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field id: %w", err)
} }
e.ID = value e.ID = value
} }
if e.Flags.Has(0) { if e.Flags.Has(0) {
value, err := DecodeInputMedia(b) value, err := DecodeInputMedia(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field media: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field media: %w", err)
} }
e.Media = value e.Media = value
} }
if e.Flags.Has(3) { if e.Flags.Has(3) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field media_areas: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field media_areas: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -381,7 +409,7 @@ func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMediaArea(b) value, err := DecodeMediaArea(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field media_areas: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field media_areas: %w", err)
} }
e.MediaAreas = append(e.MediaAreas, value) e.MediaAreas = append(e.MediaAreas, value)
} }
@@ -389,14 +417,14 @@ func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
if e.Flags.Has(1) { if e.Flags.Has(1) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field caption: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field caption: %w", err)
} }
e.Caption = value e.Caption = value
} }
if e.Flags.Has(1) { if e.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field entities: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -405,7 +433,7 @@ func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field entities: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field entities: %w", err)
} }
e.Entities = append(e.Entities, value) e.Entities = append(e.Entities, value)
} }
@@ -413,7 +441,7 @@ func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
if e.Flags.Has(2) { if e.Flags.Has(2) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field privacy_rules: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field privacy_rules: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -422,11 +450,18 @@ func (e *StoriesEditStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeInputPrivacyRule(b) value, err := DecodeInputPrivacyRule(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.editStory#b583ba46: field privacy_rules: %w", err) return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field privacy_rules: %w", err)
} }
e.PrivacyRules = append(e.PrivacyRules, value) e.PrivacyRules = append(e.PrivacyRules, value)
} }
} }
if e.Flags.Has(4) {
value, err := DecodeInputDocument(b)
if err != nil {
return fmt.Errorf("unable to decode stories.editStory#2c63a72b: field music: %w", err)
}
e.Music = value
}
return nil return nil
} }
@@ -536,6 +571,24 @@ func (e *StoriesEditStoryRequest) GetPrivacyRules() (value []InputPrivacyRuleCla
return e.PrivacyRules, true return e.PrivacyRules, true
} }
// SetMusic sets value of Music conditional field.
func (e *StoriesEditStoryRequest) SetMusic(value InputDocumentClass) {
e.Flags.Set(4)
e.Music = value
}
// GetMusic returns value of Music conditional field and
// boolean which is true if field was set.
func (e *StoriesEditStoryRequest) GetMusic() (value InputDocumentClass, ok bool) {
if e == nil {
return
}
if !e.Flags.Has(4) {
return value, false
}
return e.Music, true
}
// MapMediaAreas returns field MediaAreas wrapped in MediaAreaClassArray helper. // MapMediaAreas returns field MediaAreas wrapped in MediaAreaClassArray helper.
func (e *StoriesEditStoryRequest) MapMediaAreas() (value MediaAreaClassArray, ok bool) { func (e *StoriesEditStoryRequest) MapMediaAreas() (value MediaAreaClassArray, ok bool) {
if !e.Flags.Has(3) { if !e.Flags.Has(3) {
@@ -560,7 +613,16 @@ func (e *StoriesEditStoryRequest) MapPrivacyRules() (value InputPrivacyRuleClass
return InputPrivacyRuleClassArray(e.PrivacyRules), true return InputPrivacyRuleClassArray(e.PrivacyRules), true
} }
// StoriesEditStory invokes method stories.editStory#b583ba46 returning error if any. // GetMusicAsNotEmpty returns mapped value of Music conditional field and
// boolean which is true if field was set.
func (e *StoriesEditStoryRequest) GetMusicAsNotEmpty() (*InputDocument, bool) {
if value, ok := e.GetMusic(); ok {
return value.AsNotEmpty()
}
return nil, false
}
// StoriesEditStory invokes method stories.editStory#2c63a72b returning error if any.
// Edit an uploaded story¹ // Edit an uploaded story¹
// May also be used in a business connection¹, not by wrapping the query in // May also be used in a business connection¹, not by wrapping the query in
// invokeWithBusinessConnection »², but rather by specifying the ID of a controlled // invokeWithBusinessConnection »², but rather by specifying the ID of a controlled
+99 -37
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// StoriesSendStoryRequest represents TL type `stories.sendStory#737fc2ec`. // StoriesSendStoryRequest represents TL type `stories.sendStory#8f9e6898`.
// Uploads a Telegram Story¹. // Uploads a Telegram Story¹.
// May also be used in a business connection¹, not by wrapping the query in // May also be used in a business connection¹, not by wrapping the query in
// invokeWithBusinessConnection »², but rather by specifying the ID of a controlled // invokeWithBusinessConnection »², but rather by specifying the ID of a controlled
@@ -112,10 +112,14 @@ type StoriesSendStoryRequest struct {
// //
// Use SetAlbums and GetAlbums helpers. // Use SetAlbums and GetAlbums helpers.
Albums []int Albums []int
// Music field of StoriesSendStoryRequest.
//
// Use SetMusic and GetMusic helpers.
Music InputDocumentClass
} }
// StoriesSendStoryRequestTypeID is TL type id of StoriesSendStoryRequest. // StoriesSendStoryRequestTypeID is TL type id of StoriesSendStoryRequest.
const StoriesSendStoryRequestTypeID = 0x737fc2ec const StoriesSendStoryRequestTypeID = 0x8f9e6898
// Ensuring interfaces in compile-time for StoriesSendStoryRequest. // Ensuring interfaces in compile-time for StoriesSendStoryRequest.
var ( var (
@@ -174,6 +178,9 @@ func (s *StoriesSendStoryRequest) Zero() bool {
if !(s.Albums == nil) { if !(s.Albums == nil) {
return false return false
} }
if !(s.Music == nil) {
return false
}
return true return true
} }
@@ -203,6 +210,7 @@ func (s *StoriesSendStoryRequest) FillFrom(from interface {
GetFwdFromID() (value InputPeerClass, ok bool) GetFwdFromID() (value InputPeerClass, ok bool)
GetFwdFromStory() (value int, ok bool) GetFwdFromStory() (value int, ok bool)
GetAlbums() (value []int, ok bool) GetAlbums() (value []int, ok bool)
GetMusic() (value InputDocumentClass, ok bool)
}) { }) {
s.Pinned = from.GetPinned() s.Pinned = from.GetPinned()
s.Noforwards = from.GetNoforwards() s.Noforwards = from.GetNoforwards()
@@ -239,6 +247,10 @@ func (s *StoriesSendStoryRequest) FillFrom(from interface {
s.Albums = val s.Albums = val
} }
if val, ok := from.GetMusic(); ok {
s.Music = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -330,6 +342,11 @@ func (s *StoriesSendStoryRequest) TypeInfo() tdp.Type {
SchemaName: "albums", SchemaName: "albums",
Null: !s.Flags.Has(8), Null: !s.Flags.Has(8),
}, },
{
Name: "Music",
SchemaName: "music",
Null: !s.Flags.Has(9),
},
} }
return typ return typ
} }
@@ -366,12 +383,15 @@ func (s *StoriesSendStoryRequest) SetFlags() {
if !(s.Albums == nil) { if !(s.Albums == nil) {
s.Flags.Set(8) s.Flags.Set(8)
} }
if !(s.Music == nil) {
s.Flags.Set(9)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (s *StoriesSendStoryRequest) Encode(b *bin.Buffer) error { func (s *StoriesSendStoryRequest) Encode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode stories.sendStory#737fc2ec as nil") return fmt.Errorf("can't encode stories.sendStory#8f9e6898 as nil")
} }
b.PutID(StoriesSendStoryRequestTypeID) b.PutID(StoriesSendStoryRequestTypeID)
return s.EncodeBare(b) return s.EncodeBare(b)
@@ -380,32 +400,32 @@ func (s *StoriesSendStoryRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (s *StoriesSendStoryRequest) EncodeBare(b *bin.Buffer) error { func (s *StoriesSendStoryRequest) EncodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode stories.sendStory#737fc2ec as nil") return fmt.Errorf("can't encode stories.sendStory#8f9e6898 as nil")
} }
s.SetFlags() s.SetFlags()
if err := s.Flags.Encode(b); err != nil { if err := s.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field flags: %w", err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field flags: %w", err)
} }
if s.Peer == nil { if s.Peer == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field peer is nil") return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field peer is nil")
} }
if err := s.Peer.Encode(b); err != nil { if err := s.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field peer: %w", err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field peer: %w", err)
} }
if s.Media == nil { if s.Media == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field media is nil") return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field media is nil")
} }
if err := s.Media.Encode(b); err != nil { if err := s.Media.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field media: %w", err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field media: %w", err)
} }
if s.Flags.Has(5) { if s.Flags.Has(5) {
b.PutVectorHeader(len(s.MediaAreas)) b.PutVectorHeader(len(s.MediaAreas))
for idx, v := range s.MediaAreas { for idx, v := range s.MediaAreas {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field media_areas element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field media_areas element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field media_areas element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field media_areas element with index %d: %w", idx, err)
} }
} }
} }
@@ -416,20 +436,20 @@ func (s *StoriesSendStoryRequest) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(s.Entities)) b.PutVectorHeader(len(s.Entities))
for idx, v := range s.Entities { for idx, v := range s.Entities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field entities element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field entities element with index %d: %w", idx, err)
} }
} }
} }
b.PutVectorHeader(len(s.PrivacyRules)) b.PutVectorHeader(len(s.PrivacyRules))
for idx, v := range s.PrivacyRules { for idx, v := range s.PrivacyRules {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field privacy_rules element with index %d is nil", idx) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field privacy_rules element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field privacy_rules element with index %d: %w", idx, err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field privacy_rules element with index %d: %w", idx, err)
} }
} }
b.PutLong(s.RandomID) b.PutLong(s.RandomID)
@@ -438,10 +458,10 @@ func (s *StoriesSendStoryRequest) EncodeBare(b *bin.Buffer) error {
} }
if s.Flags.Has(6) { if s.Flags.Has(6) {
if s.FwdFromID == nil { if s.FwdFromID == nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field fwd_from_id is nil") return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field fwd_from_id is nil")
} }
if err := s.FwdFromID.Encode(b); err != nil { if err := s.FwdFromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#737fc2ec: field fwd_from_id: %w", err) return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field fwd_from_id: %w", err)
} }
} }
if s.Flags.Has(6) { if s.Flags.Has(6) {
@@ -453,16 +473,24 @@ func (s *StoriesSendStoryRequest) EncodeBare(b *bin.Buffer) error {
b.PutInt(v) b.PutInt(v)
} }
} }
if s.Flags.Has(9) {
if s.Music == nil {
return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field music is nil")
}
if err := s.Music.Encode(b); err != nil {
return fmt.Errorf("unable to encode stories.sendStory#8f9e6898: field music: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (s *StoriesSendStoryRequest) Decode(b *bin.Buffer) error { func (s *StoriesSendStoryRequest) Decode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode stories.sendStory#737fc2ec to nil") return fmt.Errorf("can't decode stories.sendStory#8f9e6898 to nil")
} }
if err := b.ConsumeID(StoriesSendStoryRequestTypeID); err != nil { if err := b.ConsumeID(StoriesSendStoryRequestTypeID); err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: %w", err)
} }
return s.DecodeBare(b) return s.DecodeBare(b)
} }
@@ -470,11 +498,11 @@ func (s *StoriesSendStoryRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error { func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode stories.sendStory#737fc2ec to nil") return fmt.Errorf("can't decode stories.sendStory#8f9e6898 to nil")
} }
{ {
if err := s.Flags.Decode(b); err != nil { if err := s.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field flags: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field flags: %w", err)
} }
} }
s.Pinned = s.Flags.Has(2) s.Pinned = s.Flags.Has(2)
@@ -483,21 +511,21 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
{ {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field peer: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field peer: %w", err)
} }
s.Peer = value s.Peer = value
} }
{ {
value, err := DecodeInputMedia(b) value, err := DecodeInputMedia(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field media: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field media: %w", err)
} }
s.Media = value s.Media = value
} }
if s.Flags.Has(5) { if s.Flags.Has(5) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field media_areas: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field media_areas: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -506,7 +534,7 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMediaArea(b) value, err := DecodeMediaArea(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field media_areas: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field media_areas: %w", err)
} }
s.MediaAreas = append(s.MediaAreas, value) s.MediaAreas = append(s.MediaAreas, value)
} }
@@ -514,14 +542,14 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
if s.Flags.Has(0) { if s.Flags.Has(0) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field caption: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field caption: %w", err)
} }
s.Caption = value s.Caption = value
} }
if s.Flags.Has(1) { if s.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field entities: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -530,7 +558,7 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field entities: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field entities: %w", err)
} }
s.Entities = append(s.Entities, value) s.Entities = append(s.Entities, value)
} }
@@ -538,7 +566,7 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
{ {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field privacy_rules: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field privacy_rules: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -547,7 +575,7 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeInputPrivacyRule(b) value, err := DecodeInputPrivacyRule(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field privacy_rules: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field privacy_rules: %w", err)
} }
s.PrivacyRules = append(s.PrivacyRules, value) s.PrivacyRules = append(s.PrivacyRules, value)
} }
@@ -555,35 +583,35 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field random_id: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field random_id: %w", err)
} }
s.RandomID = value s.RandomID = value
} }
if s.Flags.Has(3) { if s.Flags.Has(3) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field period: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field period: %w", err)
} }
s.Period = value s.Period = value
} }
if s.Flags.Has(6) { if s.Flags.Has(6) {
value, err := DecodeInputPeer(b) value, err := DecodeInputPeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field fwd_from_id: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field fwd_from_id: %w", err)
} }
s.FwdFromID = value s.FwdFromID = value
} }
if s.Flags.Has(6) { if s.Flags.Has(6) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field fwd_from_story: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field fwd_from_story: %w", err)
} }
s.FwdFromStory = value s.FwdFromStory = value
} }
if s.Flags.Has(8) { if s.Flags.Has(8) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field albums: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field albums: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -592,11 +620,18 @@ func (s *StoriesSendStoryRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#737fc2ec: field albums: %w", err) return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field albums: %w", err)
} }
s.Albums = append(s.Albums, value) s.Albums = append(s.Albums, value)
} }
} }
if s.Flags.Has(9) {
value, err := DecodeInputDocument(b)
if err != nil {
return fmt.Errorf("unable to decode stories.sendStory#8f9e6898: field music: %w", err)
}
s.Music = value
}
return nil return nil
} }
@@ -815,6 +850,24 @@ func (s *StoriesSendStoryRequest) GetAlbums() (value []int, ok bool) {
return s.Albums, true return s.Albums, true
} }
// SetMusic sets value of Music conditional field.
func (s *StoriesSendStoryRequest) SetMusic(value InputDocumentClass) {
s.Flags.Set(9)
s.Music = value
}
// GetMusic returns value of Music conditional field and
// boolean which is true if field was set.
func (s *StoriesSendStoryRequest) GetMusic() (value InputDocumentClass, ok bool) {
if s == nil {
return
}
if !s.Flags.Has(9) {
return value, false
}
return s.Music, true
}
// MapMediaAreas returns field MediaAreas wrapped in MediaAreaClassArray helper. // MapMediaAreas returns field MediaAreas wrapped in MediaAreaClassArray helper.
func (s *StoriesSendStoryRequest) MapMediaAreas() (value MediaAreaClassArray, ok bool) { func (s *StoriesSendStoryRequest) MapMediaAreas() (value MediaAreaClassArray, ok bool) {
if !s.Flags.Has(5) { if !s.Flags.Has(5) {
@@ -836,7 +889,16 @@ func (s *StoriesSendStoryRequest) MapPrivacyRules() (value InputPrivacyRuleClass
return InputPrivacyRuleClassArray(s.PrivacyRules) return InputPrivacyRuleClassArray(s.PrivacyRules)
} }
// StoriesSendStory invokes method stories.sendStory#737fc2ec returning error if any. // GetMusicAsNotEmpty returns mapped value of Music conditional field and
// boolean which is true if field was set.
func (s *StoriesSendStoryRequest) GetMusicAsNotEmpty() (*InputDocument, bool) {
if value, ok := s.GetMusic(); ok {
return value.AsNotEmpty()
}
return nil, false
}
// StoriesSendStory invokes method stories.sendStory#8f9e6898 returning error if any.
// Uploads a Telegram Story¹. // Uploads a Telegram Story¹.
// May also be used in a business connection¹, not by wrapping the query in // May also be used in a business connection¹, not by wrapping the query in
// invokeWithBusinessConnection »², but rather by specifying the ID of a controlled // invokeWithBusinessConnection »², but rather by specifying the ID of a controlled
+95 -42
View File
@@ -455,7 +455,7 @@ func (s *StoryItemSkipped) GetExpireDate() (value int) {
return s.ExpireDate return s.ExpireDate
} }
// StoryItem represents TL type `storyItem#edf164f1`. // StoryItem represents TL type `storyItem#16a4b93c`.
// Represents a story¹. // Represents a story¹.
// //
// Links: // Links:
@@ -558,10 +558,14 @@ type StoryItem struct {
// //
// Use SetAlbums and GetAlbums helpers. // Use SetAlbums and GetAlbums helpers.
Albums []int Albums []int
// Music field of StoryItem.
//
// Use SetMusic and GetMusic helpers.
Music DocumentClass
} }
// StoryItemTypeID is TL type id of StoryItem. // StoryItemTypeID is TL type id of StoryItem.
const StoryItemTypeID = 0xedf164f1 const StoryItemTypeID = 0x16a4b93c
// construct implements constructor of StoryItemClass. // construct implements constructor of StoryItemClass.
func (s StoryItem) construct() StoryItemClass { return &s } func (s StoryItem) construct() StoryItemClass { return &s }
@@ -649,6 +653,9 @@ func (s *StoryItem) Zero() bool {
if !(s.Albums == nil) { if !(s.Albums == nil) {
return false return false
} }
if !(s.Music == nil) {
return false
}
return true return true
} }
@@ -686,6 +693,7 @@ func (s *StoryItem) FillFrom(from interface {
GetViews() (value StoryViews, ok bool) GetViews() (value StoryViews, ok bool)
GetSentReaction() (value ReactionClass, ok bool) GetSentReaction() (value ReactionClass, ok bool)
GetAlbums() (value []int, ok bool) GetAlbums() (value []int, ok bool)
GetMusic() (value DocumentClass, ok bool)
}) { }) {
s.Pinned = from.GetPinned() s.Pinned = from.GetPinned()
s.Public = from.GetPublic() s.Public = from.GetPublic()
@@ -736,6 +744,10 @@ func (s *StoryItem) FillFrom(from interface {
s.Albums = val s.Albums = val
} }
if val, ok := from.GetMusic(); ok {
s.Music = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -867,6 +879,11 @@ func (s *StoryItem) TypeInfo() tdp.Type {
SchemaName: "albums", SchemaName: "albums",
Null: !s.Flags.Has(19), Null: !s.Flags.Has(19),
}, },
{
Name: "Music",
SchemaName: "music",
Null: !s.Flags.Has(20),
},
} }
return typ return typ
} }
@@ -927,12 +944,15 @@ func (s *StoryItem) SetFlags() {
if !(s.Albums == nil) { if !(s.Albums == nil) {
s.Flags.Set(19) s.Flags.Set(19)
} }
if !(s.Music == nil) {
s.Flags.Set(20)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (s *StoryItem) Encode(b *bin.Buffer) error { func (s *StoryItem) Encode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode storyItem#edf164f1 as nil") return fmt.Errorf("can't encode storyItem#16a4b93c as nil")
} }
b.PutID(StoryItemTypeID) b.PutID(StoryItemTypeID)
return s.EncodeBare(b) return s.EncodeBare(b)
@@ -941,25 +961,25 @@ func (s *StoryItem) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (s *StoryItem) EncodeBare(b *bin.Buffer) error { func (s *StoryItem) EncodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't encode storyItem#edf164f1 as nil") return fmt.Errorf("can't encode storyItem#16a4b93c as nil")
} }
s.SetFlags() s.SetFlags()
if err := s.Flags.Encode(b); err != nil { if err := s.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field flags: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field flags: %w", err)
} }
b.PutInt(s.ID) b.PutInt(s.ID)
b.PutInt(s.Date) b.PutInt(s.Date)
if s.Flags.Has(18) { if s.Flags.Has(18) {
if s.FromID == nil { if s.FromID == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field from_id is nil") return fmt.Errorf("unable to encode storyItem#16a4b93c: field from_id is nil")
} }
if err := s.FromID.Encode(b); err != nil { if err := s.FromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field from_id: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field from_id: %w", err)
} }
} }
if s.Flags.Has(17) { if s.Flags.Has(17) {
if err := s.FwdFrom.Encode(b); err != nil { if err := s.FwdFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field fwd_from: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field fwd_from: %w", err)
} }
} }
b.PutInt(s.ExpireDate) b.PutInt(s.ExpireDate)
@@ -970,27 +990,27 @@ func (s *StoryItem) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(s.Entities)) b.PutVectorHeader(len(s.Entities))
for idx, v := range s.Entities { for idx, v := range s.Entities {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field entities element with index %d is nil", idx) return fmt.Errorf("unable to encode storyItem#16a4b93c: field entities element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field entities element with index %d: %w", idx, err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field entities element with index %d: %w", idx, err)
} }
} }
} }
if s.Media == nil { if s.Media == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field media is nil") return fmt.Errorf("unable to encode storyItem#16a4b93c: field media is nil")
} }
if err := s.Media.Encode(b); err != nil { if err := s.Media.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field media: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field media: %w", err)
} }
if s.Flags.Has(14) { if s.Flags.Has(14) {
b.PutVectorHeader(len(s.MediaAreas)) b.PutVectorHeader(len(s.MediaAreas))
for idx, v := range s.MediaAreas { for idx, v := range s.MediaAreas {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field media_areas element with index %d is nil", idx) return fmt.Errorf("unable to encode storyItem#16a4b93c: field media_areas element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field media_areas element with index %d: %w", idx, err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field media_areas element with index %d: %w", idx, err)
} }
} }
} }
@@ -998,24 +1018,24 @@ func (s *StoryItem) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(s.Privacy)) b.PutVectorHeader(len(s.Privacy))
for idx, v := range s.Privacy { for idx, v := range s.Privacy {
if v == nil { if v == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field privacy element with index %d is nil", idx) return fmt.Errorf("unable to encode storyItem#16a4b93c: field privacy element with index %d is nil", idx)
} }
if err := v.Encode(b); err != nil { if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field privacy element with index %d: %w", idx, err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field privacy element with index %d: %w", idx, err)
} }
} }
} }
if s.Flags.Has(3) { if s.Flags.Has(3) {
if err := s.Views.Encode(b); err != nil { if err := s.Views.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field views: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field views: %w", err)
} }
} }
if s.Flags.Has(15) { if s.Flags.Has(15) {
if s.SentReaction == nil { if s.SentReaction == nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field sent_reaction is nil") return fmt.Errorf("unable to encode storyItem#16a4b93c: field sent_reaction is nil")
} }
if err := s.SentReaction.Encode(b); err != nil { if err := s.SentReaction.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#edf164f1: field sent_reaction: %w", err) return fmt.Errorf("unable to encode storyItem#16a4b93c: field sent_reaction: %w", err)
} }
} }
if s.Flags.Has(19) { if s.Flags.Has(19) {
@@ -1024,16 +1044,24 @@ func (s *StoryItem) EncodeBare(b *bin.Buffer) error {
b.PutInt(v) b.PutInt(v)
} }
} }
if s.Flags.Has(20) {
if s.Music == nil {
return fmt.Errorf("unable to encode storyItem#16a4b93c: field music is nil")
}
if err := s.Music.Encode(b); err != nil {
return fmt.Errorf("unable to encode storyItem#16a4b93c: field music: %w", err)
}
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (s *StoryItem) Decode(b *bin.Buffer) error { func (s *StoryItem) Decode(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode storyItem#edf164f1 to nil") return fmt.Errorf("can't decode storyItem#16a4b93c to nil")
} }
if err := b.ConsumeID(StoryItemTypeID); err != nil { if err := b.ConsumeID(StoryItemTypeID); err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: %w", err)
} }
return s.DecodeBare(b) return s.DecodeBare(b)
} }
@@ -1041,11 +1069,11 @@ func (s *StoryItem) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (s *StoryItem) DecodeBare(b *bin.Buffer) error { func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
if s == nil { if s == nil {
return fmt.Errorf("can't decode storyItem#edf164f1 to nil") return fmt.Errorf("can't decode storyItem#16a4b93c to nil")
} }
{ {
if err := s.Flags.Decode(b); err != nil { if err := s.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field flags: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field flags: %w", err)
} }
} }
s.Pinned = s.Flags.Has(5) s.Pinned = s.Flags.Has(5)
@@ -1060,47 +1088,47 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field id: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field id: %w", err)
} }
s.ID = value s.ID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field date: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field date: %w", err)
} }
s.Date = value s.Date = value
} }
if s.Flags.Has(18) { if s.Flags.Has(18) {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field from_id: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field from_id: %w", err)
} }
s.FromID = value s.FromID = value
} }
if s.Flags.Has(17) { if s.Flags.Has(17) {
if err := s.FwdFrom.Decode(b); err != nil { if err := s.FwdFrom.Decode(b); err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field fwd_from: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field fwd_from: %w", err)
} }
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field expire_date: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field expire_date: %w", err)
} }
s.ExpireDate = value s.ExpireDate = value
} }
if s.Flags.Has(0) { if s.Flags.Has(0) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field caption: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field caption: %w", err)
} }
s.Caption = value s.Caption = value
} }
if s.Flags.Has(1) { if s.Flags.Has(1) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field entities: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field entities: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -1109,7 +1137,7 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b) value, err := DecodeMessageEntity(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field entities: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field entities: %w", err)
} }
s.Entities = append(s.Entities, value) s.Entities = append(s.Entities, value)
} }
@@ -1117,14 +1145,14 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
{ {
value, err := DecodeMessageMedia(b) value, err := DecodeMessageMedia(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field media: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field media: %w", err)
} }
s.Media = value s.Media = value
} }
if s.Flags.Has(14) { if s.Flags.Has(14) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field media_areas: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field media_areas: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -1133,7 +1161,7 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMediaArea(b) value, err := DecodeMediaArea(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field media_areas: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field media_areas: %w", err)
} }
s.MediaAreas = append(s.MediaAreas, value) s.MediaAreas = append(s.MediaAreas, value)
} }
@@ -1141,7 +1169,7 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
if s.Flags.Has(2) { if s.Flags.Has(2) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field privacy: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field privacy: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -1150,27 +1178,27 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := DecodePrivacyRule(b) value, err := DecodePrivacyRule(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field privacy: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field privacy: %w", err)
} }
s.Privacy = append(s.Privacy, value) s.Privacy = append(s.Privacy, value)
} }
} }
if s.Flags.Has(3) { if s.Flags.Has(3) {
if err := s.Views.Decode(b); err != nil { if err := s.Views.Decode(b); err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field views: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field views: %w", err)
} }
} }
if s.Flags.Has(15) { if s.Flags.Has(15) {
value, err := DecodeReaction(b) value, err := DecodeReaction(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field sent_reaction: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field sent_reaction: %w", err)
} }
s.SentReaction = value s.SentReaction = value
} }
if s.Flags.Has(19) { if s.Flags.Has(19) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field albums: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field albums: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -1179,11 +1207,18 @@ func (s *StoryItem) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode storyItem#edf164f1: field albums: %w", err) return fmt.Errorf("unable to decode storyItem#16a4b93c: field albums: %w", err)
} }
s.Albums = append(s.Albums, value) s.Albums = append(s.Albums, value)
} }
} }
if s.Flags.Has(20) {
value, err := DecodeDocument(b)
if err != nil {
return fmt.Errorf("unable to decode storyItem#16a4b93c: field music: %w", err)
}
s.Music = value
}
return nil return nil
} }
@@ -1552,6 +1587,24 @@ func (s *StoryItem) GetAlbums() (value []int, ok bool) {
return s.Albums, true return s.Albums, true
} }
// SetMusic sets value of Music conditional field.
func (s *StoryItem) SetMusic(value DocumentClass) {
s.Flags.Set(20)
s.Music = value
}
// GetMusic returns value of Music conditional field and
// boolean which is true if field was set.
func (s *StoryItem) GetMusic() (value DocumentClass, ok bool) {
if s == nil {
return
}
if !s.Flags.Has(20) {
return value, false
}
return s.Music, true
}
// MapEntities returns field Entities wrapped in MessageEntityClassArray helper. // MapEntities returns field Entities wrapped in MessageEntityClassArray helper.
func (s *StoryItem) MapEntities() (value MessageEntityClassArray, ok bool) { func (s *StoryItem) MapEntities() (value MessageEntityClassArray, ok bool) {
if !s.Flags.Has(1) { if !s.Flags.Has(1) {
@@ -1592,7 +1645,7 @@ const StoryItemClassName = "StoryItem"
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.StoryItemDeleted: // storyItemDeleted#51e6ee4f // case *tg.StoryItemDeleted: // storyItemDeleted#51e6ee4f
// case *tg.StoryItemSkipped: // storyItemSkipped#ffadc913 // case *tg.StoryItemSkipped: // storyItemSkipped#ffadc913
// case *tg.StoryItem: // storyItem#edf164f1 // case *tg.StoryItem: // storyItem#16a4b93c
// default: panic(v) // default: panic(v)
// } // }
type StoryItemClass interface { type StoryItemClass interface {
@@ -1639,7 +1692,7 @@ func DecodeStoryItem(buf *bin.Buffer) (StoryItemClass, error) {
} }
return &v, nil return &v, nil
case StoryItemTypeID: case StoryItemTypeID:
// Decoding storyItem#edf164f1. // Decoding storyItem#16a4b93c.
v := StoryItem{} v := StoryItem{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode StoryItemClass: %w", err) return nil, fmt.Errorf("unable to decode StoryItemClass: %w", err)
+417 -32
View File
@@ -13021,7 +13021,7 @@ func (u *UpdateDialogUnreadMark) GetSavedPeerID() (value PeerClass, ok bool) {
return u.SavedPeerID, true return u.SavedPeerID, true
} }
// UpdateMessagePoll represents TL type `updateMessagePoll#aca1657b`. // UpdateMessagePoll represents TL type `updateMessagePoll#d64c522b`.
// The results of a poll have changed // The results of a poll have changed
// //
// See https://core.telegram.org/constructor/updateMessagePoll for reference. // See https://core.telegram.org/constructor/updateMessagePoll for reference.
@@ -13031,6 +13031,18 @@ type UpdateMessagePoll struct {
// Links: // Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields // 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields Flags bin.Fields
// Peer field of UpdateMessagePoll.
//
// Use SetPeer and GetPeer helpers.
Peer PeerClass
// MsgID field of UpdateMessagePoll.
//
// Use SetMsgID and GetMsgID helpers.
MsgID int
// TopMsgID field of UpdateMessagePoll.
//
// Use SetTopMsgID and GetTopMsgID helpers.
TopMsgID int
// Poll ID // Poll ID
PollID int64 PollID int64
// If the server knows the client hasn't cached this poll yet, the poll itself // If the server knows the client hasn't cached this poll yet, the poll itself
@@ -13042,7 +13054,7 @@ type UpdateMessagePoll struct {
} }
// UpdateMessagePollTypeID is TL type id of UpdateMessagePoll. // UpdateMessagePollTypeID is TL type id of UpdateMessagePoll.
const UpdateMessagePollTypeID = 0xaca1657b const UpdateMessagePollTypeID = 0xd64c522b
// construct implements constructor of UpdateClass. // construct implements constructor of UpdateClass.
func (u UpdateMessagePoll) construct() UpdateClass { return &u } func (u UpdateMessagePoll) construct() UpdateClass { return &u }
@@ -13064,6 +13076,15 @@ func (u *UpdateMessagePoll) Zero() bool {
if !(u.Flags.Zero()) { if !(u.Flags.Zero()) {
return false return false
} }
if !(u.Peer == nil) {
return false
}
if !(u.MsgID == 0) {
return false
}
if !(u.TopMsgID == 0) {
return false
}
if !(u.PollID == 0) { if !(u.PollID == 0) {
return false return false
} }
@@ -13088,10 +13109,25 @@ func (u *UpdateMessagePoll) String() string {
// FillFrom fills UpdateMessagePoll from given interface. // FillFrom fills UpdateMessagePoll from given interface.
func (u *UpdateMessagePoll) FillFrom(from interface { func (u *UpdateMessagePoll) FillFrom(from interface {
GetPeer() (value PeerClass, ok bool)
GetMsgID() (value int, ok bool)
GetTopMsgID() (value int, ok bool)
GetPollID() (value int64) GetPollID() (value int64)
GetPoll() (value Poll, ok bool) GetPoll() (value Poll, ok bool)
GetResults() (value PollResults) GetResults() (value PollResults)
}) { }) {
if val, ok := from.GetPeer(); ok {
u.Peer = val
}
if val, ok := from.GetMsgID(); ok {
u.MsgID = val
}
if val, ok := from.GetTopMsgID(); ok {
u.TopMsgID = val
}
u.PollID = from.GetPollID() u.PollID = from.GetPollID()
if val, ok := from.GetPoll(); ok { if val, ok := from.GetPoll(); ok {
u.Poll = val u.Poll = val
@@ -13123,6 +13159,21 @@ func (u *UpdateMessagePoll) TypeInfo() tdp.Type {
return typ return typ
} }
typ.Fields = []tdp.Field{ typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
Null: !u.Flags.Has(1),
},
{
Name: "MsgID",
SchemaName: "msg_id",
Null: !u.Flags.Has(1),
},
{
Name: "TopMsgID",
SchemaName: "top_msg_id",
Null: !u.Flags.Has(2),
},
{ {
Name: "PollID", Name: "PollID",
SchemaName: "poll_id", SchemaName: "poll_id",
@@ -13142,6 +13193,15 @@ func (u *UpdateMessagePoll) TypeInfo() tdp.Type {
// SetFlags sets flags for non-zero fields. // SetFlags sets flags for non-zero fields.
func (u *UpdateMessagePoll) SetFlags() { func (u *UpdateMessagePoll) SetFlags() {
if !(u.Peer == nil) {
u.Flags.Set(1)
}
if !(u.MsgID == 0) {
u.Flags.Set(1)
}
if !(u.TopMsgID == 0) {
u.Flags.Set(2)
}
if !(u.Poll.Zero()) { if !(u.Poll.Zero()) {
u.Flags.Set(0) u.Flags.Set(0)
} }
@@ -13150,7 +13210,7 @@ func (u *UpdateMessagePoll) SetFlags() {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (u *UpdateMessagePoll) Encode(b *bin.Buffer) error { func (u *UpdateMessagePoll) Encode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode updateMessagePoll#aca1657b as nil") return fmt.Errorf("can't encode updateMessagePoll#d64c522b as nil")
} }
b.PutID(UpdateMessagePollTypeID) b.PutID(UpdateMessagePollTypeID)
return u.EncodeBare(b) return u.EncodeBare(b)
@@ -13159,20 +13219,34 @@ func (u *UpdateMessagePoll) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (u *UpdateMessagePoll) EncodeBare(b *bin.Buffer) error { func (u *UpdateMessagePoll) EncodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode updateMessagePoll#aca1657b as nil") return fmt.Errorf("can't encode updateMessagePoll#d64c522b as nil")
} }
u.SetFlags() u.SetFlags()
if err := u.Flags.Encode(b); err != nil { if err := u.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode updateMessagePoll#aca1657b: field flags: %w", err) return fmt.Errorf("unable to encode updateMessagePoll#d64c522b: field flags: %w", err)
}
if u.Flags.Has(1) {
if u.Peer == nil {
return fmt.Errorf("unable to encode updateMessagePoll#d64c522b: field peer is nil")
}
if err := u.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode updateMessagePoll#d64c522b: field peer: %w", err)
}
}
if u.Flags.Has(1) {
b.PutInt(u.MsgID)
}
if u.Flags.Has(2) {
b.PutInt(u.TopMsgID)
} }
b.PutLong(u.PollID) b.PutLong(u.PollID)
if u.Flags.Has(0) { if u.Flags.Has(0) {
if err := u.Poll.Encode(b); err != nil { if err := u.Poll.Encode(b); err != nil {
return fmt.Errorf("unable to encode updateMessagePoll#aca1657b: field poll: %w", err) return fmt.Errorf("unable to encode updateMessagePoll#d64c522b: field poll: %w", err)
} }
} }
if err := u.Results.Encode(b); err != nil { if err := u.Results.Encode(b); err != nil {
return fmt.Errorf("unable to encode updateMessagePoll#aca1657b: field results: %w", err) return fmt.Errorf("unable to encode updateMessagePoll#d64c522b: field results: %w", err)
} }
return nil return nil
} }
@@ -13180,10 +13254,10 @@ func (u *UpdateMessagePoll) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (u *UpdateMessagePoll) Decode(b *bin.Buffer) error { func (u *UpdateMessagePoll) Decode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode updateMessagePoll#aca1657b to nil") return fmt.Errorf("can't decode updateMessagePoll#d64c522b to nil")
} }
if err := b.ConsumeID(UpdateMessagePollTypeID); err != nil { if err := b.ConsumeID(UpdateMessagePollTypeID); err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#aca1657b: %w", err) return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: %w", err)
} }
return u.DecodeBare(b) return u.DecodeBare(b)
} }
@@ -13191,33 +13265,108 @@ func (u *UpdateMessagePoll) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (u *UpdateMessagePoll) DecodeBare(b *bin.Buffer) error { func (u *UpdateMessagePoll) DecodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode updateMessagePoll#aca1657b to nil") return fmt.Errorf("can't decode updateMessagePoll#d64c522b to nil")
} }
{ {
if err := u.Flags.Decode(b); err != nil { if err := u.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#aca1657b: field flags: %w", err) return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field flags: %w", err)
} }
} }
if u.Flags.Has(1) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field peer: %w", err)
}
u.Peer = value
}
if u.Flags.Has(1) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field msg_id: %w", err)
}
u.MsgID = value
}
if u.Flags.Has(2) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field top_msg_id: %w", err)
}
u.TopMsgID = value
}
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#aca1657b: field poll_id: %w", err) return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field poll_id: %w", err)
} }
u.PollID = value u.PollID = value
} }
if u.Flags.Has(0) { if u.Flags.Has(0) {
if err := u.Poll.Decode(b); err != nil { if err := u.Poll.Decode(b); err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#aca1657b: field poll: %w", err) return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field poll: %w", err)
} }
} }
{ {
if err := u.Results.Decode(b); err != nil { if err := u.Results.Decode(b); err != nil {
return fmt.Errorf("unable to decode updateMessagePoll#aca1657b: field results: %w", err) return fmt.Errorf("unable to decode updateMessagePoll#d64c522b: field results: %w", err)
} }
} }
return nil return nil
} }
// SetPeer sets value of Peer conditional field.
func (u *UpdateMessagePoll) SetPeer(value PeerClass) {
u.Flags.Set(1)
u.Peer = value
}
// GetPeer returns value of Peer conditional field and
// boolean which is true if field was set.
func (u *UpdateMessagePoll) GetPeer() (value PeerClass, ok bool) {
if u == nil {
return
}
if !u.Flags.Has(1) {
return value, false
}
return u.Peer, true
}
// SetMsgID sets value of MsgID conditional field.
func (u *UpdateMessagePoll) SetMsgID(value int) {
u.Flags.Set(1)
u.MsgID = value
}
// GetMsgID returns value of MsgID conditional field and
// boolean which is true if field was set.
func (u *UpdateMessagePoll) GetMsgID() (value int, ok bool) {
if u == nil {
return
}
if !u.Flags.Has(1) {
return value, false
}
return u.MsgID, true
}
// SetTopMsgID sets value of TopMsgID conditional field.
func (u *UpdateMessagePoll) SetTopMsgID(value int) {
u.Flags.Set(2)
u.TopMsgID = value
}
// GetTopMsgID returns value of TopMsgID conditional field and
// boolean which is true if field was set.
func (u *UpdateMessagePoll) GetTopMsgID() (value int, ok bool) {
if u == nil {
return
}
if !u.Flags.Has(2) {
return value, false
}
return u.TopMsgID, true
}
// GetPollID returns value of PollID field. // GetPollID returns value of PollID field.
func (u *UpdateMessagePoll) GetPollID() (value int64) { func (u *UpdateMessagePoll) GetPollID() (value int64) {
if u == nil { if u == nil {
@@ -14806,7 +14955,7 @@ func (u *UpdateLoginToken) DecodeBare(b *bin.Buffer) error {
return nil return nil
} }
// UpdateMessagePollVote represents TL type `updateMessagePollVote#24f40e77`. // UpdateMessagePollVote represents TL type `updateMessagePollVote#7699f014`.
// A specific peer has voted in a poll // A specific peer has voted in a poll
// //
// See https://core.telegram.org/constructor/updateMessagePollVote for reference. // See https://core.telegram.org/constructor/updateMessagePollVote for reference.
@@ -14817,6 +14966,8 @@ type UpdateMessagePollVote struct {
Peer PeerClass Peer PeerClass
// Chosen option(s) // Chosen option(s)
Options [][]byte Options [][]byte
// Positions field of UpdateMessagePollVote.
Positions []int
// New qts value, see updates »¹ for more info. // New qts value, see updates »¹ for more info.
// //
// Links: // Links:
@@ -14825,7 +14976,7 @@ type UpdateMessagePollVote struct {
} }
// UpdateMessagePollVoteTypeID is TL type id of UpdateMessagePollVote. // UpdateMessagePollVoteTypeID is TL type id of UpdateMessagePollVote.
const UpdateMessagePollVoteTypeID = 0x24f40e77 const UpdateMessagePollVoteTypeID = 0x7699f014
// construct implements constructor of UpdateClass. // construct implements constructor of UpdateClass.
func (u UpdateMessagePollVote) construct() UpdateClass { return &u } func (u UpdateMessagePollVote) construct() UpdateClass { return &u }
@@ -14853,6 +15004,9 @@ func (u *UpdateMessagePollVote) Zero() bool {
if !(u.Options == nil) { if !(u.Options == nil) {
return false return false
} }
if !(u.Positions == nil) {
return false
}
if !(u.Qts == 0) { if !(u.Qts == 0) {
return false return false
} }
@@ -14874,11 +15028,13 @@ func (u *UpdateMessagePollVote) FillFrom(from interface {
GetPollID() (value int64) GetPollID() (value int64)
GetPeer() (value PeerClass) GetPeer() (value PeerClass)
GetOptions() (value [][]byte) GetOptions() (value [][]byte)
GetPositions() (value []int)
GetQts() (value int) GetQts() (value int)
}) { }) {
u.PollID = from.GetPollID() u.PollID = from.GetPollID()
u.Peer = from.GetPeer() u.Peer = from.GetPeer()
u.Options = from.GetOptions() u.Options = from.GetOptions()
u.Positions = from.GetPositions()
u.Qts = from.GetQts() u.Qts = from.GetQts()
} }
@@ -14917,6 +15073,10 @@ func (u *UpdateMessagePollVote) TypeInfo() tdp.Type {
Name: "Options", Name: "Options",
SchemaName: "options", SchemaName: "options",
}, },
{
Name: "Positions",
SchemaName: "positions",
},
{ {
Name: "Qts", Name: "Qts",
SchemaName: "qts", SchemaName: "qts",
@@ -14928,7 +15088,7 @@ func (u *UpdateMessagePollVote) TypeInfo() tdp.Type {
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (u *UpdateMessagePollVote) Encode(b *bin.Buffer) error { func (u *UpdateMessagePollVote) Encode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode updateMessagePollVote#24f40e77 as nil") return fmt.Errorf("can't encode updateMessagePollVote#7699f014 as nil")
} }
b.PutID(UpdateMessagePollVoteTypeID) b.PutID(UpdateMessagePollVoteTypeID)
return u.EncodeBare(b) return u.EncodeBare(b)
@@ -14937,19 +15097,23 @@ func (u *UpdateMessagePollVote) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (u *UpdateMessagePollVote) EncodeBare(b *bin.Buffer) error { func (u *UpdateMessagePollVote) EncodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode updateMessagePollVote#24f40e77 as nil") return fmt.Errorf("can't encode updateMessagePollVote#7699f014 as nil")
} }
b.PutLong(u.PollID) b.PutLong(u.PollID)
if u.Peer == nil { if u.Peer == nil {
return fmt.Errorf("unable to encode updateMessagePollVote#24f40e77: field peer is nil") return fmt.Errorf("unable to encode updateMessagePollVote#7699f014: field peer is nil")
} }
if err := u.Peer.Encode(b); err != nil { if err := u.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode updateMessagePollVote#24f40e77: field peer: %w", err) return fmt.Errorf("unable to encode updateMessagePollVote#7699f014: field peer: %w", err)
} }
b.PutVectorHeader(len(u.Options)) b.PutVectorHeader(len(u.Options))
for _, v := range u.Options { for _, v := range u.Options {
b.PutBytes(v) b.PutBytes(v)
} }
b.PutVectorHeader(len(u.Positions))
for _, v := range u.Positions {
b.PutInt(v)
}
b.PutInt(u.Qts) b.PutInt(u.Qts)
return nil return nil
} }
@@ -14957,10 +15121,10 @@ func (u *UpdateMessagePollVote) EncodeBare(b *bin.Buffer) error {
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (u *UpdateMessagePollVote) Decode(b *bin.Buffer) error { func (u *UpdateMessagePollVote) Decode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode updateMessagePollVote#24f40e77 to nil") return fmt.Errorf("can't decode updateMessagePollVote#7699f014 to nil")
} }
if err := b.ConsumeID(UpdateMessagePollVoteTypeID); err != nil { if err := b.ConsumeID(UpdateMessagePollVoteTypeID); err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: %w", err)
} }
return u.DecodeBare(b) return u.DecodeBare(b)
} }
@@ -14968,26 +15132,26 @@ func (u *UpdateMessagePollVote) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (u *UpdateMessagePollVote) DecodeBare(b *bin.Buffer) error { func (u *UpdateMessagePollVote) DecodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode updateMessagePollVote#24f40e77 to nil") return fmt.Errorf("can't decode updateMessagePollVote#7699f014 to nil")
} }
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: field poll_id: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field poll_id: %w", err)
} }
u.PollID = value u.PollID = value
} }
{ {
value, err := DecodePeer(b) value, err := DecodePeer(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: field peer: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field peer: %w", err)
} }
u.Peer = value u.Peer = value
} }
{ {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: field options: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field options: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -14996,15 +15160,32 @@ func (u *UpdateMessagePollVote) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.Bytes() value, err := b.Bytes()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: field options: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field options: %w", err)
} }
u.Options = append(u.Options, value) u.Options = append(u.Options, value)
} }
} }
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field positions: %w", err)
}
if headerLen > 0 {
u.Positions = make([]int, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field positions: %w", err)
}
u.Positions = append(u.Positions, value)
}
}
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode updateMessagePollVote#24f40e77: field qts: %w", err) return fmt.Errorf("unable to decode updateMessagePollVote#7699f014: field qts: %w", err)
} }
u.Qts = value u.Qts = value
} }
@@ -15035,6 +15216,14 @@ func (u *UpdateMessagePollVote) GetOptions() (value [][]byte) {
return u.Options return u.Options
} }
// GetPositions returns value of Positions field.
func (u *UpdateMessagePollVote) GetPositions() (value []int) {
if u == nil {
return
}
return u.Positions
}
// GetQts returns value of Qts field. // GetQts returns value of Qts field.
func (u *UpdateMessagePollVote) GetQts() (value int) { func (u *UpdateMessagePollVote) GetQts() (value int) {
if u == nil { if u == nil {
@@ -31162,6 +31351,194 @@ func (u *UpdateChatParticipantRank) GetVersion() (value int) {
return u.Version return u.Version
} }
// UpdateManagedBot represents TL type `updateManagedBot#4880ed9a`.
//
// See https://core.telegram.org/constructor/updateManagedBot for reference.
type UpdateManagedBot struct {
// UserID field of UpdateManagedBot.
UserID int64
// BotID field of UpdateManagedBot.
BotID int64
// Qts field of UpdateManagedBot.
Qts int
}
// UpdateManagedBotTypeID is TL type id of UpdateManagedBot.
const UpdateManagedBotTypeID = 0x4880ed9a
// construct implements constructor of UpdateClass.
func (u UpdateManagedBot) construct() UpdateClass { return &u }
// Ensuring interfaces in compile-time for UpdateManagedBot.
var (
_ bin.Encoder = &UpdateManagedBot{}
_ bin.Decoder = &UpdateManagedBot{}
_ bin.BareEncoder = &UpdateManagedBot{}
_ bin.BareDecoder = &UpdateManagedBot{}
_ UpdateClass = &UpdateManagedBot{}
)
func (u *UpdateManagedBot) Zero() bool {
if u == nil {
return true
}
if !(u.UserID == 0) {
return false
}
if !(u.BotID == 0) {
return false
}
if !(u.Qts == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (u *UpdateManagedBot) String() string {
if u == nil {
return "UpdateManagedBot(nil)"
}
type Alias UpdateManagedBot
return fmt.Sprintf("UpdateManagedBot%+v", Alias(*u))
}
// FillFrom fills UpdateManagedBot from given interface.
func (u *UpdateManagedBot) FillFrom(from interface {
GetUserID() (value int64)
GetBotID() (value int64)
GetQts() (value int)
}) {
u.UserID = from.GetUserID()
u.BotID = from.GetBotID()
u.Qts = from.GetQts()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*UpdateManagedBot) TypeID() uint32 {
return UpdateManagedBotTypeID
}
// TypeName returns name of type in TL schema.
func (*UpdateManagedBot) TypeName() string {
return "updateManagedBot"
}
// TypeInfo returns info about TL type.
func (u *UpdateManagedBot) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "updateManagedBot",
ID: UpdateManagedBotTypeID,
}
if u == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "UserID",
SchemaName: "user_id",
},
{
Name: "BotID",
SchemaName: "bot_id",
},
{
Name: "Qts",
SchemaName: "qts",
},
}
return typ
}
// Encode implements bin.Encoder.
func (u *UpdateManagedBot) Encode(b *bin.Buffer) error {
if u == nil {
return fmt.Errorf("can't encode updateManagedBot#4880ed9a as nil")
}
b.PutID(UpdateManagedBotTypeID)
return u.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (u *UpdateManagedBot) EncodeBare(b *bin.Buffer) error {
if u == nil {
return fmt.Errorf("can't encode updateManagedBot#4880ed9a as nil")
}
b.PutLong(u.UserID)
b.PutLong(u.BotID)
b.PutInt(u.Qts)
return nil
}
// Decode implements bin.Decoder.
func (u *UpdateManagedBot) Decode(b *bin.Buffer) error {
if u == nil {
return fmt.Errorf("can't decode updateManagedBot#4880ed9a to nil")
}
if err := b.ConsumeID(UpdateManagedBotTypeID); err != nil {
return fmt.Errorf("unable to decode updateManagedBot#4880ed9a: %w", err)
}
return u.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (u *UpdateManagedBot) DecodeBare(b *bin.Buffer) error {
if u == nil {
return fmt.Errorf("can't decode updateManagedBot#4880ed9a to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode updateManagedBot#4880ed9a: field user_id: %w", err)
}
u.UserID = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode updateManagedBot#4880ed9a: field bot_id: %w", err)
}
u.BotID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode updateManagedBot#4880ed9a: field qts: %w", err)
}
u.Qts = value
}
return nil
}
// GetUserID returns value of UserID field.
func (u *UpdateManagedBot) GetUserID() (value int64) {
if u == nil {
return
}
return u.UserID
}
// GetBotID returns value of BotID field.
func (u *UpdateManagedBot) GetBotID() (value int64) {
if u == nil {
return
}
return u.BotID
}
// GetQts returns value of Qts field.
func (u *UpdateManagedBot) GetQts() (value int) {
if u == nil {
return
}
return u.Qts
}
// UpdateClassName is schema name of UpdateClass. // UpdateClassName is schema name of UpdateClass.
const UpdateClassName = "Update" const UpdateClassName = "Update"
@@ -31238,7 +31615,7 @@ const UpdateClassName = "Update"
// case *tg.UpdateContactsReset: // updateContactsReset#7084a7be // case *tg.UpdateContactsReset: // updateContactsReset#7084a7be
// case *tg.UpdateChannelAvailableMessages: // updateChannelAvailableMessages#b23fc698 // case *tg.UpdateChannelAvailableMessages: // updateChannelAvailableMessages#b23fc698
// case *tg.UpdateDialogUnreadMark: // updateDialogUnreadMark#b658f23e // case *tg.UpdateDialogUnreadMark: // updateDialogUnreadMark#b658f23e
// case *tg.UpdateMessagePoll: // updateMessagePoll#aca1657b // case *tg.UpdateMessagePoll: // updateMessagePoll#d64c522b
// case *tg.UpdateChatDefaultBannedRights: // updateChatDefaultBannedRights#54c01850 // case *tg.UpdateChatDefaultBannedRights: // updateChatDefaultBannedRights#54c01850
// case *tg.UpdateFolderPeers: // updateFolderPeers#19360dc0 // case *tg.UpdateFolderPeers: // updateFolderPeers#19360dc0
// case *tg.UpdatePeerSettings: // updatePeerSettings#6a7e7366 // case *tg.UpdatePeerSettings: // updatePeerSettings#6a7e7366
@@ -31248,7 +31625,7 @@ const UpdateClassName = "Update"
// case *tg.UpdateTheme: // updateTheme#8216fba3 // case *tg.UpdateTheme: // updateTheme#8216fba3
// case *tg.UpdateGeoLiveViewed: // updateGeoLiveViewed#871fb939 // case *tg.UpdateGeoLiveViewed: // updateGeoLiveViewed#871fb939
// case *tg.UpdateLoginToken: // updateLoginToken#564fe691 // case *tg.UpdateLoginToken: // updateLoginToken#564fe691
// case *tg.UpdateMessagePollVote: // updateMessagePollVote#24f40e77 // case *tg.UpdateMessagePollVote: // updateMessagePollVote#7699f014
// case *tg.UpdateDialogFilter: // updateDialogFilter#26ffde7d // case *tg.UpdateDialogFilter: // updateDialogFilter#26ffde7d
// case *tg.UpdateDialogFilterOrder: // updateDialogFilterOrder#a5d72105 // case *tg.UpdateDialogFilterOrder: // updateDialogFilterOrder#a5d72105
// case *tg.UpdateDialogFilters: // updateDialogFilters#3504914f // case *tg.UpdateDialogFilters: // updateDialogFilters#3504914f
@@ -31329,6 +31706,7 @@ const UpdateClassName = "Update"
// case *tg.UpdateEmojiGameInfo: // updateEmojiGameInfo#fb9c547a // case *tg.UpdateEmojiGameInfo: // updateEmojiGameInfo#fb9c547a
// case *tg.UpdateStarGiftCraftFail: // updateStarGiftCraftFail#ac072444 // case *tg.UpdateStarGiftCraftFail: // updateStarGiftCraftFail#ac072444
// case *tg.UpdateChatParticipantRank: // updateChatParticipantRank#bd8367b9 // case *tg.UpdateChatParticipantRank: // updateChatParticipantRank#bd8367b9
// case *tg.UpdateManagedBot: // updateManagedBot#4880ed9a
// default: panic(v) // default: panic(v)
// } // }
type UpdateClass interface { type UpdateClass interface {
@@ -31792,7 +32170,7 @@ func DecodeUpdate(buf *bin.Buffer) (UpdateClass, error) {
} }
return &v, nil return &v, nil
case UpdateMessagePollTypeID: case UpdateMessagePollTypeID:
// Decoding updateMessagePoll#aca1657b. // Decoding updateMessagePoll#d64c522b.
v := UpdateMessagePoll{} v := UpdateMessagePoll{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode UpdateClass: %w", err) return nil, fmt.Errorf("unable to decode UpdateClass: %w", err)
@@ -31862,7 +32240,7 @@ func DecodeUpdate(buf *bin.Buffer) (UpdateClass, error) {
} }
return &v, nil return &v, nil
case UpdateMessagePollVoteTypeID: case UpdateMessagePollVoteTypeID:
// Decoding updateMessagePollVote#24f40e77. // Decoding updateMessagePollVote#7699f014.
v := UpdateMessagePollVote{} v := UpdateMessagePollVote{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode UpdateClass: %w", err) return nil, fmt.Errorf("unable to decode UpdateClass: %w", err)
@@ -32428,6 +32806,13 @@ func DecodeUpdate(buf *bin.Buffer) (UpdateClass, error) {
return nil, fmt.Errorf("unable to decode UpdateClass: %w", err) return nil, fmt.Errorf("unable to decode UpdateClass: %w", err)
} }
return &v, nil return &v, nil
case UpdateManagedBotTypeID:
// Decoding updateManagedBot#4880ed9a.
v := UpdateManagedBot{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode UpdateClass: %w", err)
}
return &v, nil
default: default:
return nil, fmt.Errorf("unable to decode UpdateClass: %w", bin.NewUnexpectedID(id)) return nil, fmt.Errorf("unable to decode UpdateClass: %w", bin.NewUnexpectedID(id))
} }
+95
View File
@@ -1884,6 +1884,19 @@ func (s UpdateClassArray) AsUpdateChatParticipantRank() (to UpdateChatParticipan
return to return to
} }
// AsUpdateManagedBot returns copy with only UpdateManagedBot constructors.
func (s UpdateClassArray) AsUpdateManagedBot() (to UpdateManagedBotArray) {
for _, elem := range s {
value, ok := elem.(*UpdateManagedBot)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// UpdateNewMessageArray is adapter for slice of UpdateNewMessage. // UpdateNewMessageArray is adapter for slice of UpdateNewMessage.
type UpdateNewMessageArray []UpdateNewMessage type UpdateNewMessageArray []UpdateNewMessage
@@ -13301,3 +13314,85 @@ func (s *UpdateChatParticipantRankArray) Pop() (v UpdateChatParticipantRank, ok
return v, true return v, true
} }
// UpdateManagedBotArray is adapter for slice of UpdateManagedBot.
type UpdateManagedBotArray []UpdateManagedBot
// Sort sorts slice of UpdateManagedBot.
func (s UpdateManagedBotArray) Sort(less func(a, b UpdateManagedBot) bool) UpdateManagedBotArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of UpdateManagedBot.
func (s UpdateManagedBotArray) SortStable(less func(a, b UpdateManagedBot) bool) UpdateManagedBotArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of UpdateManagedBot.
func (s UpdateManagedBotArray) Retain(keep func(x UpdateManagedBot) bool) UpdateManagedBotArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s UpdateManagedBotArray) First() (v UpdateManagedBot, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s UpdateManagedBotArray) Last() (v UpdateManagedBot, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *UpdateManagedBotArray) PopFirst() (v UpdateManagedBot, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero UpdateManagedBot
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *UpdateManagedBotArray) Pop() (v UpdateManagedBot, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
+2
View File
@@ -86,6 +86,8 @@ func IsQtsUpdate(u UpdateClass) (qts int, ok bool) {
return u.Qts, true return u.Qts, true
case *UpdateBotPurchasedPaidMedia: case *UpdateBotPurchasedPaidMedia:
return u.Qts, true return u.Qts, true
case *UpdateManagedBot:
return u.Qts, true
} }
return return
+105 -22
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// URLAuthResultRequest represents TL type `urlAuthResultRequest#f8f8eb1e`. // URLAuthResultRequest represents TL type `urlAuthResultRequest#3cd623ec`.
// Details about the authorization request, for more info click here »¹ // Details about the authorization request, for more info click here »¹
// //
// Links: // Links:
@@ -50,6 +50,8 @@ type URLAuthResultRequest struct {
RequestPhoneNumber bool RequestPhoneNumber bool
// MatchCodesFirst field of URLAuthResultRequest. // MatchCodesFirst field of URLAuthResultRequest.
MatchCodesFirst bool MatchCodesFirst bool
// IsApp field of URLAuthResultRequest.
IsApp bool
// Username of a bot, which will be used for user authorization. If not specified, the // Username of a bot, which will be used for user authorization. If not specified, the
// current bot's username will be assumed. The url's domain must be the same as the // current bot's username will be assumed. The url's domain must be the same as the
// domain linked with the bot. See Linking your domain to the bot¹ for more details. // domain linked with the bot. See Linking your domain to the bot¹ for more details.
@@ -83,10 +85,14 @@ type URLAuthResultRequest struct {
// //
// Use SetUserIDHint and GetUserIDHint helpers. // Use SetUserIDHint and GetUserIDHint helpers.
UserIDHint int64 UserIDHint int64
// VerifiedAppName field of URLAuthResultRequest.
//
// Use SetVerifiedAppName and GetVerifiedAppName helpers.
VerifiedAppName string
} }
// URLAuthResultRequestTypeID is TL type id of URLAuthResultRequest. // URLAuthResultRequestTypeID is TL type id of URLAuthResultRequest.
const URLAuthResultRequestTypeID = 0xf8f8eb1e const URLAuthResultRequestTypeID = 0x3cd623ec
// construct implements constructor of URLAuthResultClass. // construct implements constructor of URLAuthResultClass.
func (u URLAuthResultRequest) construct() URLAuthResultClass { return &u } func (u URLAuthResultRequest) construct() URLAuthResultClass { return &u }
@@ -117,6 +123,9 @@ func (u *URLAuthResultRequest) Zero() bool {
if !(u.MatchCodesFirst == false) { if !(u.MatchCodesFirst == false) {
return false return false
} }
if !(u.IsApp == false) {
return false
}
if !(u.Bot == nil) { if !(u.Bot == nil) {
return false return false
} }
@@ -141,6 +150,9 @@ func (u *URLAuthResultRequest) Zero() bool {
if !(u.UserIDHint == 0) { if !(u.UserIDHint == 0) {
return false return false
} }
if !(u.VerifiedAppName == "") {
return false
}
return true return true
} }
@@ -159,6 +171,7 @@ func (u *URLAuthResultRequest) FillFrom(from interface {
GetRequestWriteAccess() (value bool) GetRequestWriteAccess() (value bool)
GetRequestPhoneNumber() (value bool) GetRequestPhoneNumber() (value bool)
GetMatchCodesFirst() (value bool) GetMatchCodesFirst() (value bool)
GetIsApp() (value bool)
GetBot() (value UserClass) GetBot() (value UserClass)
GetDomain() (value string) GetDomain() (value string)
GetBrowser() (value string, ok bool) GetBrowser() (value string, ok bool)
@@ -167,10 +180,12 @@ func (u *URLAuthResultRequest) FillFrom(from interface {
GetRegion() (value string, ok bool) GetRegion() (value string, ok bool)
GetMatchCodes() (value []string, ok bool) GetMatchCodes() (value []string, ok bool)
GetUserIDHint() (value int64, ok bool) GetUserIDHint() (value int64, ok bool)
GetVerifiedAppName() (value string, ok bool)
}) { }) {
u.RequestWriteAccess = from.GetRequestWriteAccess() u.RequestWriteAccess = from.GetRequestWriteAccess()
u.RequestPhoneNumber = from.GetRequestPhoneNumber() u.RequestPhoneNumber = from.GetRequestPhoneNumber()
u.MatchCodesFirst = from.GetMatchCodesFirst() u.MatchCodesFirst = from.GetMatchCodesFirst()
u.IsApp = from.GetIsApp()
u.Bot = from.GetBot() u.Bot = from.GetBot()
u.Domain = from.GetDomain() u.Domain = from.GetDomain()
if val, ok := from.GetBrowser(); ok { if val, ok := from.GetBrowser(); ok {
@@ -197,6 +212,10 @@ func (u *URLAuthResultRequest) FillFrom(from interface {
u.UserIDHint = val u.UserIDHint = val
} }
if val, ok := from.GetVerifiedAppName(); ok {
u.VerifiedAppName = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -237,6 +256,11 @@ func (u *URLAuthResultRequest) TypeInfo() tdp.Type {
SchemaName: "match_codes_first", SchemaName: "match_codes_first",
Null: !u.Flags.Has(5), Null: !u.Flags.Has(5),
}, },
{
Name: "IsApp",
SchemaName: "is_app",
Null: !u.Flags.Has(6),
},
{ {
Name: "Bot", Name: "Bot",
SchemaName: "bot", SchemaName: "bot",
@@ -275,6 +299,11 @@ func (u *URLAuthResultRequest) TypeInfo() tdp.Type {
SchemaName: "user_id_hint", SchemaName: "user_id_hint",
Null: !u.Flags.Has(4), Null: !u.Flags.Has(4),
}, },
{
Name: "VerifiedAppName",
SchemaName: "verified_app_name",
Null: !u.Flags.Has(7),
},
} }
return typ return typ
} }
@@ -290,6 +319,9 @@ func (u *URLAuthResultRequest) SetFlags() {
if !(u.MatchCodesFirst == false) { if !(u.MatchCodesFirst == false) {
u.Flags.Set(5) u.Flags.Set(5)
} }
if !(u.IsApp == false) {
u.Flags.Set(6)
}
if !(u.Browser == "") { if !(u.Browser == "") {
u.Flags.Set(2) u.Flags.Set(2)
} }
@@ -308,12 +340,15 @@ func (u *URLAuthResultRequest) SetFlags() {
if !(u.UserIDHint == 0) { if !(u.UserIDHint == 0) {
u.Flags.Set(4) u.Flags.Set(4)
} }
if !(u.VerifiedAppName == "") {
u.Flags.Set(7)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (u *URLAuthResultRequest) Encode(b *bin.Buffer) error { func (u *URLAuthResultRequest) Encode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode urlAuthResultRequest#f8f8eb1e as nil") return fmt.Errorf("can't encode urlAuthResultRequest#3cd623ec as nil")
} }
b.PutID(URLAuthResultRequestTypeID) b.PutID(URLAuthResultRequestTypeID)
return u.EncodeBare(b) return u.EncodeBare(b)
@@ -322,17 +357,17 @@ func (u *URLAuthResultRequest) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (u *URLAuthResultRequest) EncodeBare(b *bin.Buffer) error { func (u *URLAuthResultRequest) EncodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode urlAuthResultRequest#f8f8eb1e as nil") return fmt.Errorf("can't encode urlAuthResultRequest#3cd623ec as nil")
} }
u.SetFlags() u.SetFlags()
if err := u.Flags.Encode(b); err != nil { if err := u.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode urlAuthResultRequest#f8f8eb1e: field flags: %w", err) return fmt.Errorf("unable to encode urlAuthResultRequest#3cd623ec: field flags: %w", err)
} }
if u.Bot == nil { if u.Bot == nil {
return fmt.Errorf("unable to encode urlAuthResultRequest#f8f8eb1e: field bot is nil") return fmt.Errorf("unable to encode urlAuthResultRequest#3cd623ec: field bot is nil")
} }
if err := u.Bot.Encode(b); err != nil { if err := u.Bot.Encode(b); err != nil {
return fmt.Errorf("unable to encode urlAuthResultRequest#f8f8eb1e: field bot: %w", err) return fmt.Errorf("unable to encode urlAuthResultRequest#3cd623ec: field bot: %w", err)
} }
b.PutString(u.Domain) b.PutString(u.Domain)
if u.Flags.Has(2) { if u.Flags.Has(2) {
@@ -356,16 +391,19 @@ func (u *URLAuthResultRequest) EncodeBare(b *bin.Buffer) error {
if u.Flags.Has(4) { if u.Flags.Has(4) {
b.PutLong(u.UserIDHint) b.PutLong(u.UserIDHint)
} }
if u.Flags.Has(7) {
b.PutString(u.VerifiedAppName)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (u *URLAuthResultRequest) Decode(b *bin.Buffer) error { func (u *URLAuthResultRequest) Decode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode urlAuthResultRequest#f8f8eb1e to nil") return fmt.Errorf("can't decode urlAuthResultRequest#3cd623ec to nil")
} }
if err := b.ConsumeID(URLAuthResultRequestTypeID); err != nil { if err := b.ConsumeID(URLAuthResultRequestTypeID); err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: %w", err)
} }
return u.DecodeBare(b) return u.DecodeBare(b)
} }
@@ -373,62 +411,63 @@ func (u *URLAuthResultRequest) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (u *URLAuthResultRequest) DecodeBare(b *bin.Buffer) error { func (u *URLAuthResultRequest) DecodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode urlAuthResultRequest#f8f8eb1e to nil") return fmt.Errorf("can't decode urlAuthResultRequest#3cd623ec to nil")
} }
{ {
if err := u.Flags.Decode(b); err != nil { if err := u.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field flags: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field flags: %w", err)
} }
} }
u.RequestWriteAccess = u.Flags.Has(0) u.RequestWriteAccess = u.Flags.Has(0)
u.RequestPhoneNumber = u.Flags.Has(1) u.RequestPhoneNumber = u.Flags.Has(1)
u.MatchCodesFirst = u.Flags.Has(5) u.MatchCodesFirst = u.Flags.Has(5)
u.IsApp = u.Flags.Has(6)
{ {
value, err := DecodeUser(b) value, err := DecodeUser(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field bot: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field bot: %w", err)
} }
u.Bot = value u.Bot = value
} }
{ {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field domain: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field domain: %w", err)
} }
u.Domain = value u.Domain = value
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field browser: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field browser: %w", err)
} }
u.Browser = value u.Browser = value
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field platform: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field platform: %w", err)
} }
u.Platform = value u.Platform = value
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field ip: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field ip: %w", err)
} }
u.IP = value u.IP = value
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field region: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field region: %w", err)
} }
u.Region = value u.Region = value
} }
if u.Flags.Has(3) { if u.Flags.Has(3) {
headerLen, err := b.VectorHeader() headerLen, err := b.VectorHeader()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field match_codes: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field match_codes: %w", err)
} }
if headerLen > 0 { if headerLen > 0 {
@@ -437,7 +476,7 @@ func (u *URLAuthResultRequest) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ { for idx := 0; idx < headerLen; idx++ {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field match_codes: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field match_codes: %w", err)
} }
u.MatchCodes = append(u.MatchCodes, value) u.MatchCodes = append(u.MatchCodes, value)
} }
@@ -445,10 +484,17 @@ func (u *URLAuthResultRequest) DecodeBare(b *bin.Buffer) error {
if u.Flags.Has(4) { if u.Flags.Has(4) {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#f8f8eb1e: field user_id_hint: %w", err) return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field user_id_hint: %w", err)
} }
u.UserIDHint = value u.UserIDHint = value
} }
if u.Flags.Has(7) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode urlAuthResultRequest#3cd623ec: field verified_app_name: %w", err)
}
u.VerifiedAppName = value
}
return nil return nil
} }
@@ -509,6 +555,25 @@ func (u *URLAuthResultRequest) GetMatchCodesFirst() (value bool) {
return u.Flags.Has(5) return u.Flags.Has(5)
} }
// SetIsApp sets value of IsApp conditional field.
func (u *URLAuthResultRequest) SetIsApp(value bool) {
if value {
u.Flags.Set(6)
u.IsApp = true
} else {
u.Flags.Unset(6)
u.IsApp = false
}
}
// GetIsApp returns value of IsApp conditional field.
func (u *URLAuthResultRequest) GetIsApp() (value bool) {
if u == nil {
return
}
return u.Flags.Has(6)
}
// GetBot returns value of Bot field. // GetBot returns value of Bot field.
func (u *URLAuthResultRequest) GetBot() (value UserClass) { func (u *URLAuthResultRequest) GetBot() (value UserClass) {
if u == nil { if u == nil {
@@ -633,6 +698,24 @@ func (u *URLAuthResultRequest) GetUserIDHint() (value int64, ok bool) {
return u.UserIDHint, true return u.UserIDHint, true
} }
// SetVerifiedAppName sets value of VerifiedAppName conditional field.
func (u *URLAuthResultRequest) SetVerifiedAppName(value string) {
u.Flags.Set(7)
u.VerifiedAppName = value
}
// GetVerifiedAppName returns value of VerifiedAppName conditional field and
// boolean which is true if field was set.
func (u *URLAuthResultRequest) GetVerifiedAppName() (value string, ok bool) {
if u == nil {
return
}
if !u.Flags.Has(7) {
return value, false
}
return u.VerifiedAppName, true
}
// URLAuthResultAccepted represents TL type `urlAuthResultAccepted#623a8fa0`. // URLAuthResultAccepted represents TL type `urlAuthResultAccepted#623a8fa0`.
// Details about an accepted authorization request, for more info click here »¹ // Details about an accepted authorization request, for more info click here »¹
// //
@@ -929,7 +1012,7 @@ const URLAuthResultClassName = "UrlAuthResult"
// panic(err) // panic(err)
// } // }
// switch v := g.(type) { // switch v := g.(type) {
// case *tg.URLAuthResultRequest: // urlAuthResultRequest#f8f8eb1e // case *tg.URLAuthResultRequest: // urlAuthResultRequest#3cd623ec
// case *tg.URLAuthResultAccepted: // urlAuthResultAccepted#623a8fa0 // case *tg.URLAuthResultAccepted: // urlAuthResultAccepted#623a8fa0
// case *tg.URLAuthResultDefault: // urlAuthResultDefault#a9d6db1f // case *tg.URLAuthResultDefault: // urlAuthResultDefault#a9d6db1f
// default: panic(v) // default: panic(v)
@@ -961,7 +1044,7 @@ func DecodeURLAuthResult(buf *bin.Buffer) (URLAuthResultClass, error) {
} }
switch id { switch id {
case URLAuthResultRequestTypeID: case URLAuthResultRequestTypeID:
// Decoding urlAuthResultRequest#f8f8eb1e. // Decoding urlAuthResultRequest#3cd623ec.
v := URLAuthResultRequest{} v := URLAuthResultRequest{}
if err := v.Decode(buf); err != nil { if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode URLAuthResultClass: %w", err) return nil, fmt.Errorf("unable to decode URLAuthResultClass: %w", err)
+163 -80
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{} _ = tdjson.Encoder{}
) )
// UserFull represents TL type `userFull#a02bc13e`. // UserFull represents TL type `userFull#6cbe645`.
// Extended user info // Extended user info
// When updating the local peer database »¹, all fields from the newly received // When updating the local peer database »¹, all fields from the newly received
// constructor take priority over the old constructor cached locally (including by // constructor take priority over the old constructor cached locally (including by
@@ -144,6 +144,8 @@ type UserFull struct {
NoforwardsMyEnabled bool NoforwardsMyEnabled bool
// NoforwardsPeerEnabled field of UserFull. // NoforwardsPeerEnabled field of UserFull.
NoforwardsPeerEnabled bool NoforwardsPeerEnabled bool
// UnofficialSecurityRisk field of UserFull.
UnofficialSecurityRisk bool
// User ID // User ID
ID int64 ID int64
// Bio of the user // Bio of the user
@@ -372,10 +374,14 @@ type UserFull struct {
// //
// Use SetNote and GetNote helpers. // Use SetNote and GetNote helpers.
Note TextWithEntities Note TextWithEntities
// BotManagerID field of UserFull.
//
// Use SetBotManagerID and GetBotManagerID helpers.
BotManagerID int64
} }
// UserFullTypeID is TL type id of UserFull. // UserFullTypeID is TL type id of UserFull.
const UserFullTypeID = 0xa02bc13e const UserFullTypeID = 0x6cbe645
// Ensuring interfaces in compile-time for UserFull. // Ensuring interfaces in compile-time for UserFull.
var ( var (
@@ -452,6 +458,9 @@ func (u *UserFull) Zero() bool {
if !(u.NoforwardsPeerEnabled == false) { if !(u.NoforwardsPeerEnabled == false) {
return false return false
} }
if !(u.UnofficialSecurityRisk == false) {
return false
}
if !(u.ID == 0) { if !(u.ID == 0) {
return false return false
} }
@@ -563,6 +572,9 @@ func (u *UserFull) Zero() bool {
if !(u.Note.Zero()) { if !(u.Note.Zero()) {
return false return false
} }
if !(u.BotManagerID == 0) {
return false
}
return true return true
} }
@@ -597,6 +609,7 @@ func (u *UserFull) FillFrom(from interface {
GetDisplayGiftsButton() (value bool) GetDisplayGiftsButton() (value bool)
GetNoforwardsMyEnabled() (value bool) GetNoforwardsMyEnabled() (value bool)
GetNoforwardsPeerEnabled() (value bool) GetNoforwardsPeerEnabled() (value bool)
GetUnofficialSecurityRisk() (value bool)
GetID() (value int64) GetID() (value int64)
GetAbout() (value string, ok bool) GetAbout() (value string, ok bool)
GetSettings() (value PeerSettings) GetSettings() (value PeerSettings)
@@ -634,6 +647,7 @@ func (u *UserFull) FillFrom(from interface {
GetMainTab() (value ProfileTabClass, ok bool) GetMainTab() (value ProfileTabClass, ok bool)
GetSavedMusic() (value DocumentClass, ok bool) GetSavedMusic() (value DocumentClass, ok bool)
GetNote() (value TextWithEntities, ok bool) GetNote() (value TextWithEntities, ok bool)
GetBotManagerID() (value int64, ok bool)
}) { }) {
u.Blocked = from.GetBlocked() u.Blocked = from.GetBlocked()
u.PhoneCallsAvailable = from.GetPhoneCallsAvailable() u.PhoneCallsAvailable = from.GetPhoneCallsAvailable()
@@ -654,6 +668,7 @@ func (u *UserFull) FillFrom(from interface {
u.DisplayGiftsButton = from.GetDisplayGiftsButton() u.DisplayGiftsButton = from.GetDisplayGiftsButton()
u.NoforwardsMyEnabled = from.GetNoforwardsMyEnabled() u.NoforwardsMyEnabled = from.GetNoforwardsMyEnabled()
u.NoforwardsPeerEnabled = from.GetNoforwardsPeerEnabled() u.NoforwardsPeerEnabled = from.GetNoforwardsPeerEnabled()
u.UnofficialSecurityRisk = from.GetUnofficialSecurityRisk()
u.ID = from.GetID() u.ID = from.GetID()
if val, ok := from.GetAbout(); ok { if val, ok := from.GetAbout(); ok {
u.About = val u.About = val
@@ -790,6 +805,10 @@ func (u *UserFull) FillFrom(from interface {
u.Note = val u.Note = val
} }
if val, ok := from.GetBotManagerID(); ok {
u.BotManagerID = val
}
} }
// TypeID returns type id in TL schema. // TypeID returns type id in TL schema.
@@ -910,6 +929,11 @@ func (u *UserFull) TypeInfo() tdp.Type {
SchemaName: "noforwards_peer_enabled", SchemaName: "noforwards_peer_enabled",
Null: !u.Flags2.Has(24), Null: !u.Flags2.Has(24),
}, },
{
Name: "UnofficialSecurityRisk",
SchemaName: "unofficial_security_risk",
Null: !u.Flags2.Has(26),
},
{ {
Name: "ID", Name: "ID",
SchemaName: "id", SchemaName: "id",
@@ -1091,6 +1115,11 @@ func (u *UserFull) TypeInfo() tdp.Type {
SchemaName: "note", SchemaName: "note",
Null: !u.Flags2.Has(22), Null: !u.Flags2.Has(22),
}, },
{
Name: "BotManagerID",
SchemaName: "bot_manager_id",
Null: !u.Flags2.Has(25),
},
} }
return typ return typ
} }
@@ -1154,6 +1183,9 @@ func (u *UserFull) SetFlags() {
if !(u.NoforwardsPeerEnabled == false) { if !(u.NoforwardsPeerEnabled == false) {
u.Flags2.Set(24) u.Flags2.Set(24)
} }
if !(u.UnofficialSecurityRisk == false) {
u.Flags2.Set(26)
}
if !(u.About == "") { if !(u.About == "") {
u.Flags.Set(1) u.Flags.Set(1)
} }
@@ -1253,12 +1285,15 @@ func (u *UserFull) SetFlags() {
if !(u.Note.Zero()) { if !(u.Note.Zero()) {
u.Flags2.Set(22) u.Flags2.Set(22)
} }
if !(u.BotManagerID == 0) {
u.Flags2.Set(25)
}
} }
// Encode implements bin.Encoder. // Encode implements bin.Encoder.
func (u *UserFull) Encode(b *bin.Buffer) error { func (u *UserFull) Encode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode userFull#a02bc13e as nil") return fmt.Errorf("can't encode userFull#6cbe645 as nil")
} }
b.PutID(UserFullTypeID) b.PutID(UserFullTypeID)
return u.EncodeBare(b) return u.EncodeBare(b)
@@ -1267,52 +1302,52 @@ func (u *UserFull) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder. // EncodeBare implements bin.BareEncoder.
func (u *UserFull) EncodeBare(b *bin.Buffer) error { func (u *UserFull) EncodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't encode userFull#a02bc13e as nil") return fmt.Errorf("can't encode userFull#6cbe645 as nil")
} }
u.SetFlags() u.SetFlags()
if err := u.Flags.Encode(b); err != nil { if err := u.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field flags: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field flags: %w", err)
} }
if err := u.Flags2.Encode(b); err != nil { if err := u.Flags2.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field flags2: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field flags2: %w", err)
} }
b.PutLong(u.ID) b.PutLong(u.ID)
if u.Flags.Has(1) { if u.Flags.Has(1) {
b.PutString(u.About) b.PutString(u.About)
} }
if err := u.Settings.Encode(b); err != nil { if err := u.Settings.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field settings: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field settings: %w", err)
} }
if u.Flags.Has(21) { if u.Flags.Has(21) {
if u.PersonalPhoto == nil { if u.PersonalPhoto == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field personal_photo is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field personal_photo is nil")
} }
if err := u.PersonalPhoto.Encode(b); err != nil { if err := u.PersonalPhoto.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field personal_photo: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field personal_photo: %w", err)
} }
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
if u.ProfilePhoto == nil { if u.ProfilePhoto == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field profile_photo is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field profile_photo is nil")
} }
if err := u.ProfilePhoto.Encode(b); err != nil { if err := u.ProfilePhoto.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field profile_photo: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field profile_photo: %w", err)
} }
} }
if u.Flags.Has(22) { if u.Flags.Has(22) {
if u.FallbackPhoto == nil { if u.FallbackPhoto == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field fallback_photo is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field fallback_photo is nil")
} }
if err := u.FallbackPhoto.Encode(b); err != nil { if err := u.FallbackPhoto.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field fallback_photo: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field fallback_photo: %w", err)
} }
} }
if err := u.NotifySettings.Encode(b); err != nil { if err := u.NotifySettings.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field notify_settings: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field notify_settings: %w", err)
} }
if u.Flags.Has(3) { if u.Flags.Has(3) {
if err := u.BotInfo.Encode(b); err != nil { if err := u.BotInfo.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field bot_info: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field bot_info: %w", err)
} }
} }
if u.Flags.Has(6) { if u.Flags.Has(6) {
@@ -1327,10 +1362,10 @@ func (u *UserFull) EncodeBare(b *bin.Buffer) error {
} }
if u.Flags.Has(15) { if u.Flags.Has(15) {
if u.Theme == nil { if u.Theme == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field theme is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field theme is nil")
} }
if err := u.Theme.Encode(b); err != nil { if err := u.Theme.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field theme: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field theme: %w", err)
} }
} }
if u.Flags.Has(16) { if u.Flags.Has(16) {
@@ -1338,55 +1373,55 @@ func (u *UserFull) EncodeBare(b *bin.Buffer) error {
} }
if u.Flags.Has(17) { if u.Flags.Has(17) {
if err := u.BotGroupAdminRights.Encode(b); err != nil { if err := u.BotGroupAdminRights.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field bot_group_admin_rights: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field bot_group_admin_rights: %w", err)
} }
} }
if u.Flags.Has(18) { if u.Flags.Has(18) {
if err := u.BotBroadcastAdminRights.Encode(b); err != nil { if err := u.BotBroadcastAdminRights.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field bot_broadcast_admin_rights: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field bot_broadcast_admin_rights: %w", err)
} }
} }
if u.Flags.Has(24) { if u.Flags.Has(24) {
if u.Wallpaper == nil { if u.Wallpaper == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field wallpaper is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field wallpaper is nil")
} }
if err := u.Wallpaper.Encode(b); err != nil { if err := u.Wallpaper.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field wallpaper: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field wallpaper: %w", err)
} }
} }
if u.Flags.Has(25) { if u.Flags.Has(25) {
if err := u.Stories.Encode(b); err != nil { if err := u.Stories.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field stories: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field stories: %w", err)
} }
} }
if u.Flags2.Has(0) { if u.Flags2.Has(0) {
if err := u.BusinessWorkHours.Encode(b); err != nil { if err := u.BusinessWorkHours.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field business_work_hours: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field business_work_hours: %w", err)
} }
} }
if u.Flags2.Has(1) { if u.Flags2.Has(1) {
if err := u.BusinessLocation.Encode(b); err != nil { if err := u.BusinessLocation.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field business_location: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field business_location: %w", err)
} }
} }
if u.Flags2.Has(2) { if u.Flags2.Has(2) {
if err := u.BusinessGreetingMessage.Encode(b); err != nil { if err := u.BusinessGreetingMessage.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field business_greeting_message: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field business_greeting_message: %w", err)
} }
} }
if u.Flags2.Has(3) { if u.Flags2.Has(3) {
if err := u.BusinessAwayMessage.Encode(b); err != nil { if err := u.BusinessAwayMessage.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field business_away_message: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field business_away_message: %w", err)
} }
} }
if u.Flags2.Has(4) { if u.Flags2.Has(4) {
if err := u.BusinessIntro.Encode(b); err != nil { if err := u.BusinessIntro.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field business_intro: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field business_intro: %w", err)
} }
} }
if u.Flags2.Has(5) { if u.Flags2.Has(5) {
if err := u.Birthday.Encode(b); err != nil { if err := u.Birthday.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field birthday: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field birthday: %w", err)
} }
} }
if u.Flags2.Has(6) { if u.Flags2.Has(6) {
@@ -1400,12 +1435,12 @@ func (u *UserFull) EncodeBare(b *bin.Buffer) error {
} }
if u.Flags2.Has(11) { if u.Flags2.Has(11) {
if err := u.StarrefProgram.Encode(b); err != nil { if err := u.StarrefProgram.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field starref_program: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field starref_program: %w", err)
} }
} }
if u.Flags2.Has(12) { if u.Flags2.Has(12) {
if err := u.BotVerification.Encode(b); err != nil { if err := u.BotVerification.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field bot_verification: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field bot_verification: %w", err)
} }
} }
if u.Flags2.Has(14) { if u.Flags2.Has(14) {
@@ -1413,17 +1448,17 @@ func (u *UserFull) EncodeBare(b *bin.Buffer) error {
} }
if u.Flags2.Has(15) { if u.Flags2.Has(15) {
if err := u.DisallowedGifts.Encode(b); err != nil { if err := u.DisallowedGifts.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field disallowed_gifts: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field disallowed_gifts: %w", err)
} }
} }
if u.Flags2.Has(17) { if u.Flags2.Has(17) {
if err := u.StarsRating.Encode(b); err != nil { if err := u.StarsRating.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field stars_rating: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field stars_rating: %w", err)
} }
} }
if u.Flags2.Has(18) { if u.Flags2.Has(18) {
if err := u.StarsMyPendingRating.Encode(b); err != nil { if err := u.StarsMyPendingRating.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field stars_my_pending_rating: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field stars_my_pending_rating: %w", err)
} }
} }
if u.Flags2.Has(18) { if u.Flags2.Has(18) {
@@ -1431,35 +1466,38 @@ func (u *UserFull) EncodeBare(b *bin.Buffer) error {
} }
if u.Flags2.Has(20) { if u.Flags2.Has(20) {
if u.MainTab == nil { if u.MainTab == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field main_tab is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field main_tab is nil")
} }
if err := u.MainTab.Encode(b); err != nil { if err := u.MainTab.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field main_tab: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field main_tab: %w", err)
} }
} }
if u.Flags2.Has(21) { if u.Flags2.Has(21) {
if u.SavedMusic == nil { if u.SavedMusic == nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field saved_music is nil") return fmt.Errorf("unable to encode userFull#6cbe645: field saved_music is nil")
} }
if err := u.SavedMusic.Encode(b); err != nil { if err := u.SavedMusic.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field saved_music: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field saved_music: %w", err)
} }
} }
if u.Flags2.Has(22) { if u.Flags2.Has(22) {
if err := u.Note.Encode(b); err != nil { if err := u.Note.Encode(b); err != nil {
return fmt.Errorf("unable to encode userFull#a02bc13e: field note: %w", err) return fmt.Errorf("unable to encode userFull#6cbe645: field note: %w", err)
} }
} }
if u.Flags2.Has(25) {
b.PutLong(u.BotManagerID)
}
return nil return nil
} }
// Decode implements bin.Decoder. // Decode implements bin.Decoder.
func (u *UserFull) Decode(b *bin.Buffer) error { func (u *UserFull) Decode(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode userFull#a02bc13e to nil") return fmt.Errorf("can't decode userFull#6cbe645 to nil")
} }
if err := b.ConsumeID(UserFullTypeID); err != nil { if err := b.ConsumeID(UserFullTypeID); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: %w", err)
} }
return u.DecodeBare(b) return u.DecodeBare(b)
} }
@@ -1467,11 +1505,11 @@ func (u *UserFull) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder. // DecodeBare implements bin.BareDecoder.
func (u *UserFull) DecodeBare(b *bin.Buffer) error { func (u *UserFull) DecodeBare(b *bin.Buffer) error {
if u == nil { if u == nil {
return fmt.Errorf("can't decode userFull#a02bc13e to nil") return fmt.Errorf("can't decode userFull#6cbe645 to nil")
} }
{ {
if err := u.Flags.Decode(b); err != nil { if err := u.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field flags: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field flags: %w", err)
} }
} }
u.Blocked = u.Flags.Has(0) u.Blocked = u.Flags.Has(0)
@@ -1489,7 +1527,7 @@ func (u *UserFull) DecodeBare(b *bin.Buffer) error {
u.ReadDatesPrivate = u.Flags.Has(30) u.ReadDatesPrivate = u.Flags.Has(30)
{ {
if err := u.Flags2.Decode(b); err != nil { if err := u.Flags2.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field flags2: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field flags2: %w", err)
} }
} }
u.SponsoredEnabled = u.Flags2.Has(7) u.SponsoredEnabled = u.Flags2.Has(7)
@@ -1498,229 +1536,237 @@ func (u *UserFull) DecodeBare(b *bin.Buffer) error {
u.DisplayGiftsButton = u.Flags2.Has(16) u.DisplayGiftsButton = u.Flags2.Has(16)
u.NoforwardsMyEnabled = u.Flags2.Has(23) u.NoforwardsMyEnabled = u.Flags2.Has(23)
u.NoforwardsPeerEnabled = u.Flags2.Has(24) u.NoforwardsPeerEnabled = u.Flags2.Has(24)
u.UnofficialSecurityRisk = u.Flags2.Has(26)
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field id: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field id: %w", err)
} }
u.ID = value u.ID = value
} }
if u.Flags.Has(1) { if u.Flags.Has(1) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field about: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field about: %w", err)
} }
u.About = value u.About = value
} }
{ {
if err := u.Settings.Decode(b); err != nil { if err := u.Settings.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field settings: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field settings: %w", err)
} }
} }
if u.Flags.Has(21) { if u.Flags.Has(21) {
value, err := DecodePhoto(b) value, err := DecodePhoto(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field personal_photo: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field personal_photo: %w", err)
} }
u.PersonalPhoto = value u.PersonalPhoto = value
} }
if u.Flags.Has(2) { if u.Flags.Has(2) {
value, err := DecodePhoto(b) value, err := DecodePhoto(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field profile_photo: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field profile_photo: %w", err)
} }
u.ProfilePhoto = value u.ProfilePhoto = value
} }
if u.Flags.Has(22) { if u.Flags.Has(22) {
value, err := DecodePhoto(b) value, err := DecodePhoto(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field fallback_photo: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field fallback_photo: %w", err)
} }
u.FallbackPhoto = value u.FallbackPhoto = value
} }
{ {
if err := u.NotifySettings.Decode(b); err != nil { if err := u.NotifySettings.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field notify_settings: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field notify_settings: %w", err)
} }
} }
if u.Flags.Has(3) { if u.Flags.Has(3) {
if err := u.BotInfo.Decode(b); err != nil { if err := u.BotInfo.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field bot_info: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field bot_info: %w", err)
} }
} }
if u.Flags.Has(6) { if u.Flags.Has(6) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field pinned_msg_id: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field pinned_msg_id: %w", err)
} }
u.PinnedMsgID = value u.PinnedMsgID = value
} }
{ {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field common_chats_count: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field common_chats_count: %w", err)
} }
u.CommonChatsCount = value u.CommonChatsCount = value
} }
if u.Flags.Has(11) { if u.Flags.Has(11) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field folder_id: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field folder_id: %w", err)
} }
u.FolderID = value u.FolderID = value
} }
if u.Flags.Has(14) { if u.Flags.Has(14) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field ttl_period: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field ttl_period: %w", err)
} }
u.TTLPeriod = value u.TTLPeriod = value
} }
if u.Flags.Has(15) { if u.Flags.Has(15) {
value, err := DecodeChatTheme(b) value, err := DecodeChatTheme(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field theme: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field theme: %w", err)
} }
u.Theme = value u.Theme = value
} }
if u.Flags.Has(16) { if u.Flags.Has(16) {
value, err := b.String() value, err := b.String()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field private_forward_name: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field private_forward_name: %w", err)
} }
u.PrivateForwardName = value u.PrivateForwardName = value
} }
if u.Flags.Has(17) { if u.Flags.Has(17) {
if err := u.BotGroupAdminRights.Decode(b); err != nil { if err := u.BotGroupAdminRights.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field bot_group_admin_rights: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field bot_group_admin_rights: %w", err)
} }
} }
if u.Flags.Has(18) { if u.Flags.Has(18) {
if err := u.BotBroadcastAdminRights.Decode(b); err != nil { if err := u.BotBroadcastAdminRights.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field bot_broadcast_admin_rights: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field bot_broadcast_admin_rights: %w", err)
} }
} }
if u.Flags.Has(24) { if u.Flags.Has(24) {
value, err := DecodeWallPaper(b) value, err := DecodeWallPaper(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field wallpaper: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field wallpaper: %w", err)
} }
u.Wallpaper = value u.Wallpaper = value
} }
if u.Flags.Has(25) { if u.Flags.Has(25) {
if err := u.Stories.Decode(b); err != nil { if err := u.Stories.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field stories: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field stories: %w", err)
} }
} }
if u.Flags2.Has(0) { if u.Flags2.Has(0) {
if err := u.BusinessWorkHours.Decode(b); err != nil { if err := u.BusinessWorkHours.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field business_work_hours: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field business_work_hours: %w", err)
} }
} }
if u.Flags2.Has(1) { if u.Flags2.Has(1) {
if err := u.BusinessLocation.Decode(b); err != nil { if err := u.BusinessLocation.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field business_location: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field business_location: %w", err)
} }
} }
if u.Flags2.Has(2) { if u.Flags2.Has(2) {
if err := u.BusinessGreetingMessage.Decode(b); err != nil { if err := u.BusinessGreetingMessage.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field business_greeting_message: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field business_greeting_message: %w", err)
} }
} }
if u.Flags2.Has(3) { if u.Flags2.Has(3) {
if err := u.BusinessAwayMessage.Decode(b); err != nil { if err := u.BusinessAwayMessage.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field business_away_message: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field business_away_message: %w", err)
} }
} }
if u.Flags2.Has(4) { if u.Flags2.Has(4) {
if err := u.BusinessIntro.Decode(b); err != nil { if err := u.BusinessIntro.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field business_intro: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field business_intro: %w", err)
} }
} }
if u.Flags2.Has(5) { if u.Flags2.Has(5) {
if err := u.Birthday.Decode(b); err != nil { if err := u.Birthday.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field birthday: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field birthday: %w", err)
} }
} }
if u.Flags2.Has(6) { if u.Flags2.Has(6) {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field personal_channel_id: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field personal_channel_id: %w", err)
} }
u.PersonalChannelID = value u.PersonalChannelID = value
} }
if u.Flags2.Has(6) { if u.Flags2.Has(6) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field personal_channel_message: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field personal_channel_message: %w", err)
} }
u.PersonalChannelMessage = value u.PersonalChannelMessage = value
} }
if u.Flags2.Has(8) { if u.Flags2.Has(8) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field stargifts_count: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field stargifts_count: %w", err)
} }
u.StargiftsCount = value u.StargiftsCount = value
} }
if u.Flags2.Has(11) { if u.Flags2.Has(11) {
if err := u.StarrefProgram.Decode(b); err != nil { if err := u.StarrefProgram.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field starref_program: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field starref_program: %w", err)
} }
} }
if u.Flags2.Has(12) { if u.Flags2.Has(12) {
if err := u.BotVerification.Decode(b); err != nil { if err := u.BotVerification.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field bot_verification: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field bot_verification: %w", err)
} }
} }
if u.Flags2.Has(14) { if u.Flags2.Has(14) {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field send_paid_messages_stars: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field send_paid_messages_stars: %w", err)
} }
u.SendPaidMessagesStars = value u.SendPaidMessagesStars = value
} }
if u.Flags2.Has(15) { if u.Flags2.Has(15) {
if err := u.DisallowedGifts.Decode(b); err != nil { if err := u.DisallowedGifts.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field disallowed_gifts: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field disallowed_gifts: %w", err)
} }
} }
if u.Flags2.Has(17) { if u.Flags2.Has(17) {
if err := u.StarsRating.Decode(b); err != nil { if err := u.StarsRating.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field stars_rating: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field stars_rating: %w", err)
} }
} }
if u.Flags2.Has(18) { if u.Flags2.Has(18) {
if err := u.StarsMyPendingRating.Decode(b); err != nil { if err := u.StarsMyPendingRating.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field stars_my_pending_rating: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field stars_my_pending_rating: %w", err)
} }
} }
if u.Flags2.Has(18) { if u.Flags2.Has(18) {
value, err := b.Int() value, err := b.Int()
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field stars_my_pending_rating_date: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field stars_my_pending_rating_date: %w", err)
} }
u.StarsMyPendingRatingDate = value u.StarsMyPendingRatingDate = value
} }
if u.Flags2.Has(20) { if u.Flags2.Has(20) {
value, err := DecodeProfileTab(b) value, err := DecodeProfileTab(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field main_tab: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field main_tab: %w", err)
} }
u.MainTab = value u.MainTab = value
} }
if u.Flags2.Has(21) { if u.Flags2.Has(21) {
value, err := DecodeDocument(b) value, err := DecodeDocument(b)
if err != nil { if err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field saved_music: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field saved_music: %w", err)
} }
u.SavedMusic = value u.SavedMusic = value
} }
if u.Flags2.Has(22) { if u.Flags2.Has(22) {
if err := u.Note.Decode(b); err != nil { if err := u.Note.Decode(b); err != nil {
return fmt.Errorf("unable to decode userFull#a02bc13e: field note: %w", err) return fmt.Errorf("unable to decode userFull#6cbe645: field note: %w", err)
} }
} }
if u.Flags2.Has(25) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode userFull#6cbe645: field bot_manager_id: %w", err)
}
u.BotManagerID = value
}
return nil return nil
} }
@@ -2085,6 +2131,25 @@ func (u *UserFull) GetNoforwardsPeerEnabled() (value bool) {
return u.Flags2.Has(24) return u.Flags2.Has(24)
} }
// SetUnofficialSecurityRisk sets value of UnofficialSecurityRisk conditional field.
func (u *UserFull) SetUnofficialSecurityRisk(value bool) {
if value {
u.Flags2.Set(26)
u.UnofficialSecurityRisk = true
} else {
u.Flags2.Unset(26)
u.UnofficialSecurityRisk = false
}
}
// GetUnofficialSecurityRisk returns value of UnofficialSecurityRisk conditional field.
func (u *UserFull) GetUnofficialSecurityRisk() (value bool) {
if u == nil {
return
}
return u.Flags2.Has(26)
}
// GetID returns value of ID field. // GetID returns value of ID field.
func (u *UserFull) GetID() (value int64) { func (u *UserFull) GetID() (value int64) {
if u == nil { if u == nil {
@@ -2711,6 +2776,24 @@ func (u *UserFull) GetNote() (value TextWithEntities, ok bool) {
return u.Note, true return u.Note, true
} }
// SetBotManagerID sets value of BotManagerID conditional field.
func (u *UserFull) SetBotManagerID(value int64) {
u.Flags2.Set(25)
u.BotManagerID = value
}
// GetBotManagerID returns value of BotManagerID conditional field and
// boolean which is true if field was set.
func (u *UserFull) GetBotManagerID() (value int64, ok bool) {
if u == nil {
return
}
if !u.Flags2.Has(25) {
return value, false
}
return u.BotManagerID, true
}
// GetPersonalPhotoAsNotEmpty returns mapped value of PersonalPhoto conditional field and // GetPersonalPhotoAsNotEmpty returns mapped value of PersonalPhoto conditional field and
// boolean which is true if field was set. // boolean which is true if field was set.
func (u *UserFull) GetPersonalPhotoAsNotEmpty() (*Photo, bool) { func (u *UserFull) GetPersonalPhotoAsNotEmpty() (*Photo, bool) {
+35
View File
@@ -313,6 +313,8 @@ type User struct {
BotForumView bool BotForumView bool
// BotForumCanManageTopics field of User. // BotForumCanManageTopics field of User.
BotForumCanManageTopics bool BotForumCanManageTopics bool
// BotCanManageBots field of User.
BotCanManageBots bool
// ID of the user, see here »¹ for more info and the available ID range. // ID of the user, see here »¹ for more info and the available ID range.
// //
// Links: // Links:
@@ -598,6 +600,9 @@ func (u *User) Zero() bool {
if !(u.BotForumCanManageTopics == false) { if !(u.BotForumCanManageTopics == false) {
return false return false
} }
if !(u.BotCanManageBots == false) {
return false
}
if !(u.ID == 0) { if !(u.ID == 0) {
return false return false
} }
@@ -700,6 +705,7 @@ func (u *User) FillFrom(from interface {
GetBotHasMainApp() (value bool) GetBotHasMainApp() (value bool)
GetBotForumView() (value bool) GetBotForumView() (value bool)
GetBotForumCanManageTopics() (value bool) GetBotForumCanManageTopics() (value bool)
GetBotCanManageBots() (value bool)
GetID() (value int64) GetID() (value int64)
GetAccessHash() (value int64, ok bool) GetAccessHash() (value int64, ok bool)
GetFirstName() (value string, ok bool) GetFirstName() (value string, ok bool)
@@ -748,6 +754,7 @@ func (u *User) FillFrom(from interface {
u.BotHasMainApp = from.GetBotHasMainApp() u.BotHasMainApp = from.GetBotHasMainApp()
u.BotForumView = from.GetBotForumView() u.BotForumView = from.GetBotForumView()
u.BotForumCanManageTopics = from.GetBotForumCanManageTopics() u.BotForumCanManageTopics = from.GetBotForumCanManageTopics()
u.BotCanManageBots = from.GetBotCanManageBots()
u.ID = from.GetID() u.ID = from.GetID()
if val, ok := from.GetAccessHash(); ok { if val, ok := from.GetAccessHash(); ok {
u.AccessHash = val u.AccessHash = val
@@ -985,6 +992,11 @@ func (u *User) TypeInfo() tdp.Type {
SchemaName: "bot_forum_can_manage_topics", SchemaName: "bot_forum_can_manage_topics",
Null: !u.Flags2.Has(17), Null: !u.Flags2.Has(17),
}, },
{
Name: "BotCanManageBots",
SchemaName: "bot_can_manage_bots",
Null: !u.Flags2.Has(18),
},
{ {
Name: "ID", Name: "ID",
SchemaName: "id", SchemaName: "id",
@@ -1171,6 +1183,9 @@ func (u *User) SetFlags() {
if !(u.BotForumCanManageTopics == false) { if !(u.BotForumCanManageTopics == false) {
u.Flags2.Set(17) u.Flags2.Set(17)
} }
if !(u.BotCanManageBots == false) {
u.Flags2.Set(18)
}
if !(u.AccessHash == 0) { if !(u.AccessHash == 0) {
u.Flags.Set(0) u.Flags.Set(0)
} }
@@ -1402,6 +1417,7 @@ func (u *User) DecodeBare(b *bin.Buffer) error {
u.BotHasMainApp = u.Flags2.Has(13) u.BotHasMainApp = u.Flags2.Has(13)
u.BotForumView = u.Flags2.Has(16) u.BotForumView = u.Flags2.Has(16)
u.BotForumCanManageTopics = u.Flags2.Has(17) u.BotForumCanManageTopics = u.Flags2.Has(17)
u.BotCanManageBots = u.Flags2.Has(18)
{ {
value, err := b.Long() value, err := b.Long()
if err != nil { if err != nil {
@@ -2076,6 +2092,25 @@ func (u *User) GetBotForumCanManageTopics() (value bool) {
return u.Flags2.Has(17) return u.Flags2.Has(17)
} }
// SetBotCanManageBots sets value of BotCanManageBots conditional field.
func (u *User) SetBotCanManageBots(value bool) {
if value {
u.Flags2.Set(18)
u.BotCanManageBots = true
} else {
u.Flags2.Unset(18)
u.BotCanManageBots = false
}
}
// GetBotCanManageBots returns value of BotCanManageBots conditional field.
func (u *User) GetBotCanManageBots() (value bool) {
if u == nil {
return
}
return u.Flags2.Has(18)
}
// GetID returns value of ID field. // GetID returns value of ID field.
func (u *User) GetID() (value int64) { func (u *User) GetID() (value int64) {
if u == nil { if u == nil {