diff --git a/_schema/tdesktop.tl b/_schema/tdesktop.tl index 75e8c834b9..11053ff03d 100644 --- a/_schema/tdesktop.tl +++ b/_schema/tdesktop.tl @@ -1,8 +1,8 @@ // Code generated by ./cmd/dltl, DO NOT EDIT. // // Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/Resources/tl/api.tl -// Layer: 138 -// SHA256: e4394d689aae7a56d9b81f444df7f182ec54f5b8eb2a0289a7ef9b19cfecabff +// Layer: 139 +// SHA256: 80cbdbe9df4d7a9dda681537ce4ae739567051782b9fb4237d3cab78c1d70384 boolFalse#bc799737 = Bool; @@ -338,6 +338,10 @@ inputReportReasonGeoIrrelevant#dbd4feed = ReportReason; inputReportReasonFake#f5ddd6e7 = ReportReason; +inputReportReasonIllegalDrugs#a8eb2be = ReportReason; + +inputReportReasonPersonalDetails#9ec7863d = ReportReason; + userFull#cf366521 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 id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?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_emoticon:flags.15?string private_forward_name:flags.16?string = UserFull; contact#145ade0b user_id:long mutual:Bool = Contact; @@ -878,7 +882,7 @@ inputStickerSetDice#e67f520e emoticon:string = InputStickerSet; inputStickerSetAnimatedEmojiAnimations#cde3739 = InputStickerSet; -stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true gifs:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet; +stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet; messages.stickerSet#b60a24a6 set:StickerSet packs:Vector documents:Vector = messages.StickerSet; @@ -1800,7 +1804,7 @@ stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats; groupCallDiscarded#7780bcb4 id:long access_hash:long duration:int = GroupCall; -groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall; +groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true rtmp_stream:flags.12?true listeners_hidden:flags.13?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall; inputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall; @@ -1910,6 +1914,12 @@ messages.translateResultText#a214f7d0 text:string = messages.TranslatedText; messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction; +groupCallStreamChannel#80eb48af channel:int scale:int last_timestamp_ms:long = GroupCallStreamChannel; + +phone.groupCallStreamChannels#d0e482b2 channels:Vector = phone.GroupCallStreamChannels; + +phone.groupCallStreamRtmpUrl#2dbf3432 url:string key:string = phone.GroupCallStreamRtmpUrl; + ---functions--- @@ -2157,6 +2167,8 @@ contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoP contacts.blockFromReplies#29a8962c flags:# delete_message:flags.0?true delete_history:flags.1?true report_spam:flags.2?true msg_id:int = Updates; +contacts.resolvePhone#8af94344 phone:string = contacts.ResolvedPeer; + messages.getMessages#63c66506 id:Vector = messages.Messages; messages.getDialogs#a0f4cb4f flags:# exclude_pinned:flags.0?true folder_id:flags.1?int offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:long = messages.Dialogs; @@ -2473,6 +2485,8 @@ messages.getUnreadReactions#e85bae1a peer:InputPeer offset_id:int add_offset:int messages.readReactions#82e251d7 peer:InputPeer = messages.AffectedHistory; +messages.searchSentMedia#107e31a0 q:string filter:MessagesFilter limit:int = messages.Messages; + updates.getState#edd4882a = updates.State; updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference; @@ -2649,7 +2663,7 @@ payments.clearSavedInfo#d83d70c1 flags:# credentials:flags.0?true info:flags.1?t payments.getBankCardData#2e79d779 number:string = payments.BankCardData; -stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector software:flags.3?string = messages.StickerSet; +stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector software:flags.3?string = messages.StickerSet; stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = messages.StickerSet; @@ -2681,7 +2695,7 @@ phone.saveCallDebug#277add7e peer:InputPhoneCall debug:DataJSON = Bool; phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool; -phone.createGroupCall#48cdc6d8 flags:# peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates; +phone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates; phone.joinGroupCall#b132ff7b flags:# muted:flags.0?true video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer invite_hash:flags.1?string params:DataJSON = Updates; @@ -2719,6 +2733,10 @@ phone.joinGroupCallPresentation#cbea6bc4 call:InputGroupCall params:DataJSON = U phone.leaveGroupCallPresentation#1c50d144 call:InputGroupCall = Updates; +phone.getGroupCallStreamChannels#1ab21940 call:InputGroupCall = phone.GroupCallStreamChannels; + +phone.getGroupCallStreamRtmpUrl#deb3abbf peer:InputPeer revoke:Bool = phone.GroupCallStreamRtmpUrl; + langpack.getLangPack#f2f2330a lang_pack:string lang_code:string = LangPackDifference; langpack.getStrings#efea3803 lang_pack:string lang_code:string keys:Vector = Vector; @@ -2743,4 +2761,4 @@ stats.getMessagePublicForwards#5630281b channel:InputChannel msg_id:int offset_r stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats; -// LAYER 138 +// LAYER 139 diff --git a/_schema/telegram.tl b/_schema/telegram.tl index 580407f126..0152e246bb 100644 --- a/_schema/telegram.tl +++ b/_schema/telegram.tl @@ -2,8 +2,8 @@ // // Source: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/Telegram/Resources/tl/api.tl // Merge: _schema/legacy.tl -// Layer: 138 -// SHA256: e4394d689aae7a56d9b81f444df7f182ec54f5b8eb2a0289a7ef9b19cfecabff +// Layer: 139 +// SHA256: 80cbdbe9df4d7a9dda681537ce4ae739567051782b9fb4237d3cab78c1d70384 boolFalse#bc799737 = Bool; @@ -339,6 +339,10 @@ inputReportReasonGeoIrrelevant#dbd4feed = ReportReason; inputReportReasonFake#f5ddd6e7 = ReportReason; +inputReportReasonIllegalDrugs#a8eb2be = ReportReason; + +inputReportReasonPersonalDetails#9ec7863d = ReportReason; + userFull#cf366521 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 id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?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_emoticon:flags.15?string private_forward_name:flags.16?string = UserFull; contact#145ade0b user_id:long mutual:Bool = Contact; @@ -879,7 +883,7 @@ inputStickerSetDice#e67f520e emoticon:string = InputStickerSet; inputStickerSetAnimatedEmojiAnimations#cde3739 = InputStickerSet; -stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true gifs:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet; +stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet; messages.stickerSet#b60a24a6 set:StickerSet packs:Vector documents:Vector = messages.StickerSet; @@ -1801,7 +1805,7 @@ stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats; groupCallDiscarded#7780bcb4 id:long access_hash:long duration:int = GroupCall; -groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall; +groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true rtmp_stream:flags.12?true listeners_hidden:flags.13?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall; inputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall; @@ -1911,6 +1915,12 @@ messages.translateResultText#a214f7d0 text:string = messages.TranslatedText; messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction; +groupCallStreamChannel#80eb48af channel:int scale:int last_timestamp_ms:long = GroupCallStreamChannel; + +phone.groupCallStreamChannels#d0e482b2 channels:Vector = phone.GroupCallStreamChannels; + +phone.groupCallStreamRtmpUrl#2dbf3432 url:string key:string = phone.GroupCallStreamRtmpUrl; + ---functions--- @@ -2158,6 +2168,8 @@ contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoP contacts.blockFromReplies#29a8962c flags:# delete_message:flags.0?true delete_history:flags.1?true report_spam:flags.2?true msg_id:int = Updates; +contacts.resolvePhone#8af94344 phone:string = contacts.ResolvedPeer; + messages.getMessages#63c66506 id:Vector = messages.Messages; messages.getDialogs#a0f4cb4f flags:# exclude_pinned:flags.0?true folder_id:flags.1?int offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:long = messages.Dialogs; @@ -2474,6 +2486,8 @@ messages.getUnreadReactions#e85bae1a peer:InputPeer offset_id:int add_offset:int messages.readReactions#82e251d7 peer:InputPeer = messages.AffectedHistory; +messages.searchSentMedia#107e31a0 q:string filter:MessagesFilter limit:int = messages.Messages; + updates.getState#edd4882a = updates.State; updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference; @@ -2650,7 +2664,7 @@ payments.clearSavedInfo#d83d70c1 flags:# credentials:flags.0?true info:flags.1?t payments.getBankCardData#2e79d779 number:string = payments.BankCardData; -stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector software:flags.3?string = messages.StickerSet; +stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector software:flags.3?string = messages.StickerSet; stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = messages.StickerSet; @@ -2682,7 +2696,7 @@ phone.saveCallDebug#277add7e peer:InputPhoneCall debug:DataJSON = Bool; phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool; -phone.createGroupCall#48cdc6d8 flags:# peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates; +phone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates; phone.joinGroupCall#b132ff7b flags:# muted:flags.0?true video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer invite_hash:flags.1?string params:DataJSON = Updates; @@ -2720,6 +2734,10 @@ phone.joinGroupCallPresentation#cbea6bc4 call:InputGroupCall params:DataJSON = U phone.leaveGroupCallPresentation#1c50d144 call:InputGroupCall = Updates; +phone.getGroupCallStreamChannels#1ab21940 call:InputGroupCall = phone.GroupCallStreamChannels; + +phone.getGroupCallStreamRtmpUrl#deb3abbf peer:InputPeer revoke:Bool = phone.GroupCallStreamRtmpUrl; + langpack.getLangPack#f2f2330a lang_pack:string lang_code:string = LangPackDifference; langpack.getStrings#efea3803 lang_pack:string lang_code:string keys:Vector = Vector; @@ -2776,4 +2794,4 @@ test.useError#ee75af01 = Error; test.useConfigSimple#f9b7b23d = help.ConfigSimple; -// LAYER 138 +// LAYER 139 diff --git a/telegram/query/messages/queries.gen.go b/telegram/query/messages/queries.gen.go index 4167861d8d..e634053851 100644 --- a/telegram/query/messages/queries.gen.go +++ b/telegram/query/messages/queries.gen.go @@ -1023,6 +1023,198 @@ func (b *SearchGlobalQueryBuilder) Collect(ctx context.Context) ([]Elem, error) return r, iter.Err() } +// SearchSentMediaQueryBuilder is query builder of MessagesSearchSentMedia. +type SearchSentMediaQueryBuilder struct { + raw *tg.Client + req tg.MessagesSearchSentMediaRequest + batchSize int +} + +// SearchSentMedia creates query builder of MessagesSearchSentMedia. +func (q *QueryBuilder) SearchSentMedia() *SearchSentMediaQueryBuilder { + b := &SearchSentMediaQueryBuilder{ + raw: q.raw, + batchSize: 1, + req: tg.MessagesSearchSentMediaRequest{ + Filter: &tg.InputMessagesFilterEmpty{}, + }, + } + + 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 *SearchSentMediaQueryBuilder) BatchSize(batchSize int) *SearchSentMediaQueryBuilder { + b.batchSize = batchSize + return b +} + +// Filter sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Filter(paramFilter tg.MessagesFilterClass) *SearchSentMediaQueryBuilder { + b.req.Filter = paramFilter + return b +} + +// Q sets Q field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Q(paramQ string) *SearchSentMediaQueryBuilder { + b.req.Q = paramQ + return b +} + +// ChatPhotos sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) ChatPhotos() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterChatPhotos{} + return b +} + +// Contacts sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Contacts() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterContacts{} + return b +} + +// Document sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Document() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterDocument{} + return b +} + +// Geo sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Geo() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterGeo{} + return b +} + +// Gif sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Gif() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterGif{} + return b +} + +// Music sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Music() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterMusic{} + return b +} + +// MyMentions sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) MyMentions() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterMyMentions{} + return b +} + +// PhoneCalls sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) PhoneCalls(paramMissed bool) *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterPhoneCalls{ + Missed: paramMissed, + } + return b +} + +// PhotoVideo sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) PhotoVideo() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterPhotoVideo{} + return b +} + +// Photos sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Photos() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterPhotos{} + return b +} + +// Pinned sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Pinned() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterPinned{} + return b +} + +// RoundVideo sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) RoundVideo() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterRoundVideo{} + return b +} + +// RoundVoice sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) RoundVoice() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterRoundVoice{} + return b +} + +// URL sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) URL() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterURL{} + return b +} + +// Video sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Video() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterVideo{} + return b +} + +// Voice sets Filter field of SearchSentMedia query. +func (b *SearchSentMediaQueryBuilder) Voice() *SearchSentMediaQueryBuilder { + b.req.Filter = &tg.InputMessagesFilterVoice{} + return b +} + +// Query implements Query interface. +func (b *SearchSentMediaQueryBuilder) Query(ctx context.Context, req Request) (tg.MessagesMessagesClass, error) { + r := &tg.MessagesSearchSentMediaRequest{ + Limit: req.Limit, + } + + r.Filter = b.req.Filter + r.Q = b.req.Q + return b.raw.MessagesSearchSentMedia(ctx, r) +} + +// Iter returns iterator using built query. +func (b *SearchSentMediaQueryBuilder) Iter() *Iterator { + iter := NewIterator(b, b.batchSize) + return iter +} + +// ForEach calls given callback on each iterator element. +func (b *SearchSentMediaQueryBuilder) 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 *SearchSentMediaQueryBuilder) 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 *SearchSentMediaQueryBuilder) 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() +} + // StatsGetMessagePublicForwardsQueryBuilder is query builder of StatsGetMessagePublicForwards. type StatsGetMessagePublicForwardsQueryBuilder struct { raw *tg.Client diff --git a/tg/tl_contacts_resolve_phone_gen.go b/tg/tl_contacts_resolve_phone_gen.go new file mode 100644 index 0000000000..5793be853a --- /dev/null +++ b/tg/tl_contacts_resolve_phone_gen.go @@ -0,0 +1,176 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// ContactsResolvePhoneRequest represents TL type `contacts.resolvePhone#8af94344`. +// +// See https://core.telegram.org/method/contacts.resolvePhone for reference. +type ContactsResolvePhoneRequest struct { + // Phone field of ContactsResolvePhoneRequest. + Phone string +} + +// ContactsResolvePhoneRequestTypeID is TL type id of ContactsResolvePhoneRequest. +const ContactsResolvePhoneRequestTypeID = 0x8af94344 + +// Ensuring interfaces in compile-time for ContactsResolvePhoneRequest. +var ( + _ bin.Encoder = &ContactsResolvePhoneRequest{} + _ bin.Decoder = &ContactsResolvePhoneRequest{} + _ bin.BareEncoder = &ContactsResolvePhoneRequest{} + _ bin.BareDecoder = &ContactsResolvePhoneRequest{} +) + +func (r *ContactsResolvePhoneRequest) Zero() bool { + if r == nil { + return true + } + if !(r.Phone == "") { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (r *ContactsResolvePhoneRequest) String() string { + if r == nil { + return "ContactsResolvePhoneRequest(nil)" + } + type Alias ContactsResolvePhoneRequest + return fmt.Sprintf("ContactsResolvePhoneRequest%+v", Alias(*r)) +} + +// FillFrom fills ContactsResolvePhoneRequest from given interface. +func (r *ContactsResolvePhoneRequest) FillFrom(from interface { + GetPhone() (value string) +}) { + r.Phone = from.GetPhone() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*ContactsResolvePhoneRequest) TypeID() uint32 { + return ContactsResolvePhoneRequestTypeID +} + +// TypeName returns name of type in TL schema. +func (*ContactsResolvePhoneRequest) TypeName() string { + return "contacts.resolvePhone" +} + +// TypeInfo returns info about TL type. +func (r *ContactsResolvePhoneRequest) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "contacts.resolvePhone", + ID: ContactsResolvePhoneRequestTypeID, + } + if r == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Phone", + SchemaName: "phone", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (r *ContactsResolvePhoneRequest) Encode(b *bin.Buffer) error { + if r == nil { + return fmt.Errorf("can't encode contacts.resolvePhone#8af94344 as nil") + } + b.PutID(ContactsResolvePhoneRequestTypeID) + return r.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (r *ContactsResolvePhoneRequest) EncodeBare(b *bin.Buffer) error { + if r == nil { + return fmt.Errorf("can't encode contacts.resolvePhone#8af94344 as nil") + } + b.PutString(r.Phone) + return nil +} + +// Decode implements bin.Decoder. +func (r *ContactsResolvePhoneRequest) Decode(b *bin.Buffer) error { + if r == nil { + return fmt.Errorf("can't decode contacts.resolvePhone#8af94344 to nil") + } + if err := b.ConsumeID(ContactsResolvePhoneRequestTypeID); err != nil { + return fmt.Errorf("unable to decode contacts.resolvePhone#8af94344: %w", err) + } + return r.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (r *ContactsResolvePhoneRequest) DecodeBare(b *bin.Buffer) error { + if r == nil { + return fmt.Errorf("can't decode contacts.resolvePhone#8af94344 to nil") + } + { + value, err := b.String() + if err != nil { + return fmt.Errorf("unable to decode contacts.resolvePhone#8af94344: field phone: %w", err) + } + r.Phone = value + } + return nil +} + +// GetPhone returns value of Phone field. +func (r *ContactsResolvePhoneRequest) GetPhone() (value string) { + if r == nil { + return + } + return r.Phone +} + +// ContactsResolvePhone invokes method contacts.resolvePhone#8af94344 returning error if any. +// +// See https://core.telegram.org/method/contacts.resolvePhone for reference. +func (c *Client) ContactsResolvePhone(ctx context.Context, phone string) (*ContactsResolvedPeer, error) { + var result ContactsResolvedPeer + + request := &ContactsResolvePhoneRequest{ + Phone: phone, + } + if err := c.rpc.Invoke(ctx, request, &result); err != nil { + return nil, err + } + return &result, nil +} diff --git a/tg/tl_contacts_resolve_phone_slices_gen.go b/tg/tl_contacts_resolve_phone_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_contacts_resolve_phone_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_group_call_gen.go b/tg/tl_group_call_gen.go index 2ed0a91edb..e43ef13ebb 100644 --- a/tg/tl_group_call_gen.go +++ b/tg/tl_group_call_gen.go @@ -247,6 +247,10 @@ type GroupCall struct { CanStartVideo bool // Whether the group call is currently being recorded RecordVideoActive bool + // RtmpStream field of GroupCall. + RtmpStream bool + // ListenersHidden field of GroupCall. + ListenersHidden bool // Group call ID ID int64 // Group call access hash @@ -320,6 +324,12 @@ func (g *GroupCall) Zero() bool { if !(g.RecordVideoActive == false) { return false } + if !(g.RtmpStream == false) { + return false + } + if !(g.ListenersHidden == false) { + return false + } if !(g.ID == 0) { return false } @@ -371,6 +381,8 @@ func (g *GroupCall) FillFrom(from interface { GetScheduleStartSubscribed() (value bool) GetCanStartVideo() (value bool) GetRecordVideoActive() (value bool) + GetRtmpStream() (value bool) + GetListenersHidden() (value bool) GetID() (value int64) GetAccessHash() (value int64) GetParticipantsCount() (value int) @@ -388,6 +400,8 @@ func (g *GroupCall) FillFrom(from interface { g.ScheduleStartSubscribed = from.GetScheduleStartSubscribed() g.CanStartVideo = from.GetCanStartVideo() g.RecordVideoActive = from.GetRecordVideoActive() + g.RtmpStream = from.GetRtmpStream() + g.ListenersHidden = from.GetListenersHidden() g.ID = from.GetID() g.AccessHash = from.GetAccessHash() g.ParticipantsCount = from.GetParticipantsCount() @@ -468,6 +482,16 @@ func (g *GroupCall) TypeInfo() tdp.Type { SchemaName: "record_video_active", Null: !g.Flags.Has(11), }, + { + Name: "RtmpStream", + SchemaName: "rtmp_stream", + Null: !g.Flags.Has(12), + }, + { + Name: "ListenersHidden", + SchemaName: "listeners_hidden", + Null: !g.Flags.Has(13), + }, { Name: "ID", SchemaName: "id", @@ -537,6 +561,12 @@ func (g *GroupCall) SetFlags() { if !(g.RecordVideoActive == false) { g.Flags.Set(11) } + if !(g.RtmpStream == false) { + g.Flags.Set(12) + } + if !(g.ListenersHidden == false) { + g.Flags.Set(13) + } if !(g.Title == "") { g.Flags.Set(3) } @@ -622,6 +652,8 @@ func (g *GroupCall) DecodeBare(b *bin.Buffer) error { g.ScheduleStartSubscribed = g.Flags.Has(8) g.CanStartVideo = g.Flags.Has(9) g.RecordVideoActive = g.Flags.Has(11) + g.RtmpStream = g.Flags.Has(12) + g.ListenersHidden = g.Flags.Has(13) { value, err := b.Long() if err != nil { @@ -809,6 +841,44 @@ func (g *GroupCall) GetRecordVideoActive() (value bool) { return g.Flags.Has(11) } +// SetRtmpStream sets value of RtmpStream conditional field. +func (g *GroupCall) SetRtmpStream(value bool) { + if value { + g.Flags.Set(12) + g.RtmpStream = true + } else { + g.Flags.Unset(12) + g.RtmpStream = false + } +} + +// GetRtmpStream returns value of RtmpStream conditional field. +func (g *GroupCall) GetRtmpStream() (value bool) { + if g == nil { + return + } + return g.Flags.Has(12) +} + +// SetListenersHidden sets value of ListenersHidden conditional field. +func (g *GroupCall) SetListenersHidden(value bool) { + if value { + g.Flags.Set(13) + g.ListenersHidden = true + } else { + g.Flags.Unset(13) + g.ListenersHidden = false + } +} + +// GetListenersHidden returns value of ListenersHidden conditional field. +func (g *GroupCall) GetListenersHidden() (value bool) { + if g == nil { + return + } + return g.Flags.Has(13) +} + // GetID returns value of ID field. func (g *GroupCall) GetID() (value int64) { if g == nil { diff --git a/tg/tl_group_call_stream_channel_gen.go b/tg/tl_group_call_stream_channel_gen.go new file mode 100644 index 0000000000..0bd4e358cf --- /dev/null +++ b/tg/tl_group_call_stream_channel_gen.go @@ -0,0 +1,215 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// GroupCallStreamChannel represents TL type `groupCallStreamChannel#80eb48af`. +// +// See https://core.telegram.org/constructor/groupCallStreamChannel for reference. +type GroupCallStreamChannel struct { + // Channel field of GroupCallStreamChannel. + Channel int + // Scale field of GroupCallStreamChannel. + Scale int + // LastTimestampMs field of GroupCallStreamChannel. + LastTimestampMs int64 +} + +// GroupCallStreamChannelTypeID is TL type id of GroupCallStreamChannel. +const GroupCallStreamChannelTypeID = 0x80eb48af + +// Ensuring interfaces in compile-time for GroupCallStreamChannel. +var ( + _ bin.Encoder = &GroupCallStreamChannel{} + _ bin.Decoder = &GroupCallStreamChannel{} + _ bin.BareEncoder = &GroupCallStreamChannel{} + _ bin.BareDecoder = &GroupCallStreamChannel{} +) + +func (g *GroupCallStreamChannel) Zero() bool { + if g == nil { + return true + } + if !(g.Channel == 0) { + return false + } + if !(g.Scale == 0) { + return false + } + if !(g.LastTimestampMs == 0) { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (g *GroupCallStreamChannel) String() string { + if g == nil { + return "GroupCallStreamChannel(nil)" + } + type Alias GroupCallStreamChannel + return fmt.Sprintf("GroupCallStreamChannel%+v", Alias(*g)) +} + +// FillFrom fills GroupCallStreamChannel from given interface. +func (g *GroupCallStreamChannel) FillFrom(from interface { + GetChannel() (value int) + GetScale() (value int) + GetLastTimestampMs() (value int64) +}) { + g.Channel = from.GetChannel() + g.Scale = from.GetScale() + g.LastTimestampMs = from.GetLastTimestampMs() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*GroupCallStreamChannel) TypeID() uint32 { + return GroupCallStreamChannelTypeID +} + +// TypeName returns name of type in TL schema. +func (*GroupCallStreamChannel) TypeName() string { + return "groupCallStreamChannel" +} + +// TypeInfo returns info about TL type. +func (g *GroupCallStreamChannel) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "groupCallStreamChannel", + ID: GroupCallStreamChannelTypeID, + } + if g == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Channel", + SchemaName: "channel", + }, + { + Name: "Scale", + SchemaName: "scale", + }, + { + Name: "LastTimestampMs", + SchemaName: "last_timestamp_ms", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (g *GroupCallStreamChannel) Encode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode groupCallStreamChannel#80eb48af as nil") + } + b.PutID(GroupCallStreamChannelTypeID) + return g.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (g *GroupCallStreamChannel) EncodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode groupCallStreamChannel#80eb48af as nil") + } + b.PutInt(g.Channel) + b.PutInt(g.Scale) + b.PutLong(g.LastTimestampMs) + return nil +} + +// Decode implements bin.Decoder. +func (g *GroupCallStreamChannel) Decode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode groupCallStreamChannel#80eb48af to nil") + } + if err := b.ConsumeID(GroupCallStreamChannelTypeID); err != nil { + return fmt.Errorf("unable to decode groupCallStreamChannel#80eb48af: %w", err) + } + return g.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (g *GroupCallStreamChannel) DecodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode groupCallStreamChannel#80eb48af to nil") + } + { + value, err := b.Int() + if err != nil { + return fmt.Errorf("unable to decode groupCallStreamChannel#80eb48af: field channel: %w", err) + } + g.Channel = value + } + { + value, err := b.Int() + if err != nil { + return fmt.Errorf("unable to decode groupCallStreamChannel#80eb48af: field scale: %w", err) + } + g.Scale = value + } + { + value, err := b.Long() + if err != nil { + return fmt.Errorf("unable to decode groupCallStreamChannel#80eb48af: field last_timestamp_ms: %w", err) + } + g.LastTimestampMs = value + } + return nil +} + +// GetChannel returns value of Channel field. +func (g *GroupCallStreamChannel) GetChannel() (value int) { + if g == nil { + return + } + return g.Channel +} + +// GetScale returns value of Scale field. +func (g *GroupCallStreamChannel) GetScale() (value int) { + if g == nil { + return + } + return g.Scale +} + +// GetLastTimestampMs returns value of LastTimestampMs field. +func (g *GroupCallStreamChannel) GetLastTimestampMs() (value int64) { + if g == nil { + return + } + return g.LastTimestampMs +} diff --git a/tg/tl_group_call_stream_channel_slices_gen.go b/tg/tl_group_call_stream_channel_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_group_call_stream_channel_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_messages_search_sent_media_gen.go b/tg/tl_messages_search_sent_media_gen.go new file mode 100644 index 0000000000..38e1b17d5b --- /dev/null +++ b/tg/tl_messages_search_sent_media_gen.go @@ -0,0 +1,232 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// MessagesSearchSentMediaRequest represents TL type `messages.searchSentMedia#107e31a0`. +// +// See https://core.telegram.org/method/messages.searchSentMedia for reference. +type MessagesSearchSentMediaRequest struct { + // Q field of MessagesSearchSentMediaRequest. + Q string + // Filter field of MessagesSearchSentMediaRequest. + Filter MessagesFilterClass + // Limit field of MessagesSearchSentMediaRequest. + Limit int +} + +// MessagesSearchSentMediaRequestTypeID is TL type id of MessagesSearchSentMediaRequest. +const MessagesSearchSentMediaRequestTypeID = 0x107e31a0 + +// Ensuring interfaces in compile-time for MessagesSearchSentMediaRequest. +var ( + _ bin.Encoder = &MessagesSearchSentMediaRequest{} + _ bin.Decoder = &MessagesSearchSentMediaRequest{} + _ bin.BareEncoder = &MessagesSearchSentMediaRequest{} + _ bin.BareDecoder = &MessagesSearchSentMediaRequest{} +) + +func (s *MessagesSearchSentMediaRequest) Zero() bool { + if s == nil { + return true + } + if !(s.Q == "") { + return false + } + if !(s.Filter == nil) { + return false + } + if !(s.Limit == 0) { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (s *MessagesSearchSentMediaRequest) String() string { + if s == nil { + return "MessagesSearchSentMediaRequest(nil)" + } + type Alias MessagesSearchSentMediaRequest + return fmt.Sprintf("MessagesSearchSentMediaRequest%+v", Alias(*s)) +} + +// FillFrom fills MessagesSearchSentMediaRequest from given interface. +func (s *MessagesSearchSentMediaRequest) FillFrom(from interface { + GetQ() (value string) + GetFilter() (value MessagesFilterClass) + GetLimit() (value int) +}) { + s.Q = from.GetQ() + s.Filter = from.GetFilter() + s.Limit = from.GetLimit() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*MessagesSearchSentMediaRequest) TypeID() uint32 { + return MessagesSearchSentMediaRequestTypeID +} + +// TypeName returns name of type in TL schema. +func (*MessagesSearchSentMediaRequest) TypeName() string { + return "messages.searchSentMedia" +} + +// TypeInfo returns info about TL type. +func (s *MessagesSearchSentMediaRequest) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "messages.searchSentMedia", + ID: MessagesSearchSentMediaRequestTypeID, + } + if s == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Q", + SchemaName: "q", + }, + { + Name: "Filter", + SchemaName: "filter", + }, + { + Name: "Limit", + SchemaName: "limit", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (s *MessagesSearchSentMediaRequest) Encode(b *bin.Buffer) error { + if s == nil { + return fmt.Errorf("can't encode messages.searchSentMedia#107e31a0 as nil") + } + b.PutID(MessagesSearchSentMediaRequestTypeID) + return s.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (s *MessagesSearchSentMediaRequest) EncodeBare(b *bin.Buffer) error { + if s == nil { + return fmt.Errorf("can't encode messages.searchSentMedia#107e31a0 as nil") + } + b.PutString(s.Q) + if s.Filter == nil { + return fmt.Errorf("unable to encode messages.searchSentMedia#107e31a0: field filter is nil") + } + if err := s.Filter.Encode(b); err != nil { + return fmt.Errorf("unable to encode messages.searchSentMedia#107e31a0: field filter: %w", err) + } + b.PutInt(s.Limit) + return nil +} + +// Decode implements bin.Decoder. +func (s *MessagesSearchSentMediaRequest) Decode(b *bin.Buffer) error { + if s == nil { + return fmt.Errorf("can't decode messages.searchSentMedia#107e31a0 to nil") + } + if err := b.ConsumeID(MessagesSearchSentMediaRequestTypeID); err != nil { + return fmt.Errorf("unable to decode messages.searchSentMedia#107e31a0: %w", err) + } + return s.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (s *MessagesSearchSentMediaRequest) DecodeBare(b *bin.Buffer) error { + if s == nil { + return fmt.Errorf("can't decode messages.searchSentMedia#107e31a0 to nil") + } + { + value, err := b.String() + if err != nil { + return fmt.Errorf("unable to decode messages.searchSentMedia#107e31a0: field q: %w", err) + } + s.Q = value + } + { + value, err := DecodeMessagesFilter(b) + if err != nil { + return fmt.Errorf("unable to decode messages.searchSentMedia#107e31a0: field filter: %w", err) + } + s.Filter = value + } + { + value, err := b.Int() + if err != nil { + return fmt.Errorf("unable to decode messages.searchSentMedia#107e31a0: field limit: %w", err) + } + s.Limit = value + } + return nil +} + +// GetQ returns value of Q field. +func (s *MessagesSearchSentMediaRequest) GetQ() (value string) { + if s == nil { + return + } + return s.Q +} + +// GetFilter returns value of Filter field. +func (s *MessagesSearchSentMediaRequest) GetFilter() (value MessagesFilterClass) { + if s == nil { + return + } + return s.Filter +} + +// GetLimit returns value of Limit field. +func (s *MessagesSearchSentMediaRequest) GetLimit() (value int) { + if s == nil { + return + } + return s.Limit +} + +// MessagesSearchSentMedia invokes method messages.searchSentMedia#107e31a0 returning error if any. +// +// See https://core.telegram.org/method/messages.searchSentMedia for reference. +func (c *Client) MessagesSearchSentMedia(ctx context.Context, request *MessagesSearchSentMediaRequest) (MessagesMessagesClass, error) { + var result MessagesMessagesBox + + if err := c.rpc.Invoke(ctx, request, &result); err != nil { + return nil, err + } + return result.Messages, nil +} diff --git a/tg/tl_messages_search_sent_media_slices_gen.go b/tg/tl_messages_search_sent_media_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_messages_search_sent_media_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_phone_create_group_call_gen.go b/tg/tl_phone_create_group_call_gen.go index 246836c9a0..0a8956fe2c 100644 --- a/tg/tl_phone_create_group_call_gen.go +++ b/tg/tl_phone_create_group_call_gen.go @@ -41,6 +41,8 @@ type PhoneCreateGroupCallRequest struct { // Links: // 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields Flags bin.Fields + // RtmpStream field of PhoneCreateGroupCallRequest. + RtmpStream bool // Associate the group call or livestream to the provided group/supergroup/channelĀ¹ // // Links: @@ -77,6 +79,9 @@ func (c *PhoneCreateGroupCallRequest) Zero() bool { if !(c.Flags.Zero()) { return false } + if !(c.RtmpStream == false) { + return false + } if !(c.Peer == nil) { return false } @@ -104,11 +109,13 @@ func (c *PhoneCreateGroupCallRequest) String() string { // FillFrom fills PhoneCreateGroupCallRequest from given interface. func (c *PhoneCreateGroupCallRequest) FillFrom(from interface { + GetRtmpStream() (value bool) GetPeer() (value InputPeerClass) GetRandomID() (value int) GetTitle() (value string, ok bool) GetScheduleDate() (value int, ok bool) }) { + c.RtmpStream = from.GetRtmpStream() c.Peer = from.GetPeer() c.RandomID = from.GetRandomID() if val, ok := from.GetTitle(); ok { @@ -144,6 +151,11 @@ func (c *PhoneCreateGroupCallRequest) TypeInfo() tdp.Type { return typ } typ.Fields = []tdp.Field{ + { + Name: "RtmpStream", + SchemaName: "rtmp_stream", + Null: !c.Flags.Has(2), + }, { Name: "Peer", SchemaName: "peer", @@ -168,6 +180,9 @@ func (c *PhoneCreateGroupCallRequest) TypeInfo() tdp.Type { // SetFlags sets flags for non-zero fields. func (c *PhoneCreateGroupCallRequest) SetFlags() { + if !(c.RtmpStream == false) { + c.Flags.Set(2) + } if !(c.Title == "") { c.Flags.Set(0) } @@ -231,6 +246,7 @@ func (c *PhoneCreateGroupCallRequest) DecodeBare(b *bin.Buffer) error { return fmt.Errorf("unable to decode phone.createGroupCall#48cdc6d8: field flags: %w", err) } } + c.RtmpStream = c.Flags.Has(2) { value, err := DecodeInputPeer(b) if err != nil { @@ -262,6 +278,25 @@ func (c *PhoneCreateGroupCallRequest) DecodeBare(b *bin.Buffer) error { return nil } +// SetRtmpStream sets value of RtmpStream conditional field. +func (c *PhoneCreateGroupCallRequest) SetRtmpStream(value bool) { + if value { + c.Flags.Set(2) + c.RtmpStream = true + } else { + c.Flags.Unset(2) + c.RtmpStream = false + } +} + +// GetRtmpStream returns value of RtmpStream conditional field. +func (c *PhoneCreateGroupCallRequest) GetRtmpStream() (value bool) { + if c == nil { + return + } + return c.Flags.Has(2) +} + // GetPeer returns value of Peer field. func (c *PhoneCreateGroupCallRequest) GetPeer() (value InputPeerClass) { if c == nil { diff --git a/tg/tl_phone_get_group_call_stream_channels_gen.go b/tg/tl_phone_get_group_call_stream_channels_gen.go new file mode 100644 index 0000000000..9056968472 --- /dev/null +++ b/tg/tl_phone_get_group_call_stream_channels_gen.go @@ -0,0 +1,176 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// PhoneGetGroupCallStreamChannelsRequest represents TL type `phone.getGroupCallStreamChannels#1ab21940`. +// +// See https://core.telegram.org/method/phone.getGroupCallStreamChannels for reference. +type PhoneGetGroupCallStreamChannelsRequest struct { + // Call field of PhoneGetGroupCallStreamChannelsRequest. + Call InputGroupCall +} + +// PhoneGetGroupCallStreamChannelsRequestTypeID is TL type id of PhoneGetGroupCallStreamChannelsRequest. +const PhoneGetGroupCallStreamChannelsRequestTypeID = 0x1ab21940 + +// Ensuring interfaces in compile-time for PhoneGetGroupCallStreamChannelsRequest. +var ( + _ bin.Encoder = &PhoneGetGroupCallStreamChannelsRequest{} + _ bin.Decoder = &PhoneGetGroupCallStreamChannelsRequest{} + _ bin.BareEncoder = &PhoneGetGroupCallStreamChannelsRequest{} + _ bin.BareDecoder = &PhoneGetGroupCallStreamChannelsRequest{} +) + +func (g *PhoneGetGroupCallStreamChannelsRequest) Zero() bool { + if g == nil { + return true + } + if !(g.Call.Zero()) { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (g *PhoneGetGroupCallStreamChannelsRequest) String() string { + if g == nil { + return "PhoneGetGroupCallStreamChannelsRequest(nil)" + } + type Alias PhoneGetGroupCallStreamChannelsRequest + return fmt.Sprintf("PhoneGetGroupCallStreamChannelsRequest%+v", Alias(*g)) +} + +// FillFrom fills PhoneGetGroupCallStreamChannelsRequest from given interface. +func (g *PhoneGetGroupCallStreamChannelsRequest) FillFrom(from interface { + GetCall() (value InputGroupCall) +}) { + g.Call = from.GetCall() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*PhoneGetGroupCallStreamChannelsRequest) TypeID() uint32 { + return PhoneGetGroupCallStreamChannelsRequestTypeID +} + +// TypeName returns name of type in TL schema. +func (*PhoneGetGroupCallStreamChannelsRequest) TypeName() string { + return "phone.getGroupCallStreamChannels" +} + +// TypeInfo returns info about TL type. +func (g *PhoneGetGroupCallStreamChannelsRequest) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "phone.getGroupCallStreamChannels", + ID: PhoneGetGroupCallStreamChannelsRequestTypeID, + } + if g == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Call", + SchemaName: "call", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (g *PhoneGetGroupCallStreamChannelsRequest) Encode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.getGroupCallStreamChannels#1ab21940 as nil") + } + b.PutID(PhoneGetGroupCallStreamChannelsRequestTypeID) + return g.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (g *PhoneGetGroupCallStreamChannelsRequest) EncodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.getGroupCallStreamChannels#1ab21940 as nil") + } + if err := g.Call.Encode(b); err != nil { + return fmt.Errorf("unable to encode phone.getGroupCallStreamChannels#1ab21940: field call: %w", err) + } + return nil +} + +// Decode implements bin.Decoder. +func (g *PhoneGetGroupCallStreamChannelsRequest) Decode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.getGroupCallStreamChannels#1ab21940 to nil") + } + if err := b.ConsumeID(PhoneGetGroupCallStreamChannelsRequestTypeID); err != nil { + return fmt.Errorf("unable to decode phone.getGroupCallStreamChannels#1ab21940: %w", err) + } + return g.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (g *PhoneGetGroupCallStreamChannelsRequest) DecodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.getGroupCallStreamChannels#1ab21940 to nil") + } + { + if err := g.Call.Decode(b); err != nil { + return fmt.Errorf("unable to decode phone.getGroupCallStreamChannels#1ab21940: field call: %w", err) + } + } + return nil +} + +// GetCall returns value of Call field. +func (g *PhoneGetGroupCallStreamChannelsRequest) GetCall() (value InputGroupCall) { + if g == nil { + return + } + return g.Call +} + +// PhoneGetGroupCallStreamChannels invokes method phone.getGroupCallStreamChannels#1ab21940 returning error if any. +// +// See https://core.telegram.org/method/phone.getGroupCallStreamChannels for reference. +func (c *Client) PhoneGetGroupCallStreamChannels(ctx context.Context, call InputGroupCall) (*PhoneGroupCallStreamChannels, error) { + var result PhoneGroupCallStreamChannels + + request := &PhoneGetGroupCallStreamChannelsRequest{ + Call: call, + } + if err := c.rpc.Invoke(ctx, request, &result); err != nil { + return nil, err + } + return &result, nil +} diff --git a/tg/tl_phone_get_group_call_stream_channels_slices_gen.go b/tg/tl_phone_get_group_call_stream_channels_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_phone_get_group_call_stream_channels_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_phone_get_group_call_stream_rtmp_url_gen.go b/tg/tl_phone_get_group_call_stream_rtmp_url_gen.go new file mode 100644 index 0000000000..3be28297fb --- /dev/null +++ b/tg/tl_phone_get_group_call_stream_rtmp_url_gen.go @@ -0,0 +1,205 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// PhoneGetGroupCallStreamRtmpURLRequest represents TL type `phone.getGroupCallStreamRtmpUrl#deb3abbf`. +// +// See https://core.telegram.org/method/phone.getGroupCallStreamRtmpUrl for reference. +type PhoneGetGroupCallStreamRtmpURLRequest struct { + // Peer field of PhoneGetGroupCallStreamRtmpURLRequest. + Peer InputPeerClass + // Revoke field of PhoneGetGroupCallStreamRtmpURLRequest. + Revoke bool +} + +// PhoneGetGroupCallStreamRtmpURLRequestTypeID is TL type id of PhoneGetGroupCallStreamRtmpURLRequest. +const PhoneGetGroupCallStreamRtmpURLRequestTypeID = 0xdeb3abbf + +// Ensuring interfaces in compile-time for PhoneGetGroupCallStreamRtmpURLRequest. +var ( + _ bin.Encoder = &PhoneGetGroupCallStreamRtmpURLRequest{} + _ bin.Decoder = &PhoneGetGroupCallStreamRtmpURLRequest{} + _ bin.BareEncoder = &PhoneGetGroupCallStreamRtmpURLRequest{} + _ bin.BareDecoder = &PhoneGetGroupCallStreamRtmpURLRequest{} +) + +func (g *PhoneGetGroupCallStreamRtmpURLRequest) Zero() bool { + if g == nil { + return true + } + if !(g.Peer == nil) { + return false + } + if !(g.Revoke == false) { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) String() string { + if g == nil { + return "PhoneGetGroupCallStreamRtmpURLRequest(nil)" + } + type Alias PhoneGetGroupCallStreamRtmpURLRequest + return fmt.Sprintf("PhoneGetGroupCallStreamRtmpURLRequest%+v", Alias(*g)) +} + +// FillFrom fills PhoneGetGroupCallStreamRtmpURLRequest from given interface. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) FillFrom(from interface { + GetPeer() (value InputPeerClass) + GetRevoke() (value bool) +}) { + g.Peer = from.GetPeer() + g.Revoke = from.GetRevoke() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*PhoneGetGroupCallStreamRtmpURLRequest) TypeID() uint32 { + return PhoneGetGroupCallStreamRtmpURLRequestTypeID +} + +// TypeName returns name of type in TL schema. +func (*PhoneGetGroupCallStreamRtmpURLRequest) TypeName() string { + return "phone.getGroupCallStreamRtmpUrl" +} + +// TypeInfo returns info about TL type. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "phone.getGroupCallStreamRtmpUrl", + ID: PhoneGetGroupCallStreamRtmpURLRequestTypeID, + } + if g == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Peer", + SchemaName: "peer", + }, + { + Name: "Revoke", + SchemaName: "revoke", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) Encode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.getGroupCallStreamRtmpUrl#deb3abbf as nil") + } + b.PutID(PhoneGetGroupCallStreamRtmpURLRequestTypeID) + return g.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) EncodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.getGroupCallStreamRtmpUrl#deb3abbf as nil") + } + if g.Peer == nil { + return fmt.Errorf("unable to encode phone.getGroupCallStreamRtmpUrl#deb3abbf: field peer is nil") + } + if err := g.Peer.Encode(b); err != nil { + return fmt.Errorf("unable to encode phone.getGroupCallStreamRtmpUrl#deb3abbf: field peer: %w", err) + } + b.PutBool(g.Revoke) + return nil +} + +// Decode implements bin.Decoder. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) Decode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.getGroupCallStreamRtmpUrl#deb3abbf to nil") + } + if err := b.ConsumeID(PhoneGetGroupCallStreamRtmpURLRequestTypeID); err != nil { + return fmt.Errorf("unable to decode phone.getGroupCallStreamRtmpUrl#deb3abbf: %w", err) + } + return g.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) DecodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.getGroupCallStreamRtmpUrl#deb3abbf to nil") + } + { + value, err := DecodeInputPeer(b) + if err != nil { + return fmt.Errorf("unable to decode phone.getGroupCallStreamRtmpUrl#deb3abbf: field peer: %w", err) + } + g.Peer = value + } + { + value, err := b.Bool() + if err != nil { + return fmt.Errorf("unable to decode phone.getGroupCallStreamRtmpUrl#deb3abbf: field revoke: %w", err) + } + g.Revoke = value + } + return nil +} + +// GetPeer returns value of Peer field. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) GetPeer() (value InputPeerClass) { + if g == nil { + return + } + return g.Peer +} + +// GetRevoke returns value of Revoke field. +func (g *PhoneGetGroupCallStreamRtmpURLRequest) GetRevoke() (value bool) { + if g == nil { + return + } + return g.Revoke +} + +// PhoneGetGroupCallStreamRtmpURL invokes method phone.getGroupCallStreamRtmpUrl#deb3abbf returning error if any. +// +// See https://core.telegram.org/method/phone.getGroupCallStreamRtmpUrl for reference. +func (c *Client) PhoneGetGroupCallStreamRtmpURL(ctx context.Context, request *PhoneGetGroupCallStreamRtmpURLRequest) (*PhoneGroupCallStreamRtmpURL, error) { + var result PhoneGroupCallStreamRtmpURL + + if err := c.rpc.Invoke(ctx, request, &result); err != nil { + return nil, err + } + return &result, nil +} diff --git a/tg/tl_phone_get_group_call_stream_rtmp_url_slices_gen.go b/tg/tl_phone_get_group_call_stream_rtmp_url_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_phone_get_group_call_stream_rtmp_url_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_phone_group_call_stream_channels_gen.go b/tg/tl_phone_group_call_stream_channels_gen.go new file mode 100644 index 0000000000..1b135203fb --- /dev/null +++ b/tg/tl_phone_group_call_stream_channels_gen.go @@ -0,0 +1,176 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// PhoneGroupCallStreamChannels represents TL type `phone.groupCallStreamChannels#d0e482b2`. +// +// See https://core.telegram.org/constructor/phone.groupCallStreamChannels for reference. +type PhoneGroupCallStreamChannels struct { + // Channels field of PhoneGroupCallStreamChannels. + Channels []GroupCallStreamChannel +} + +// PhoneGroupCallStreamChannelsTypeID is TL type id of PhoneGroupCallStreamChannels. +const PhoneGroupCallStreamChannelsTypeID = 0xd0e482b2 + +// Ensuring interfaces in compile-time for PhoneGroupCallStreamChannels. +var ( + _ bin.Encoder = &PhoneGroupCallStreamChannels{} + _ bin.Decoder = &PhoneGroupCallStreamChannels{} + _ bin.BareEncoder = &PhoneGroupCallStreamChannels{} + _ bin.BareDecoder = &PhoneGroupCallStreamChannels{} +) + +func (g *PhoneGroupCallStreamChannels) Zero() bool { + if g == nil { + return true + } + if !(g.Channels == nil) { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (g *PhoneGroupCallStreamChannels) String() string { + if g == nil { + return "PhoneGroupCallStreamChannels(nil)" + } + type Alias PhoneGroupCallStreamChannels + return fmt.Sprintf("PhoneGroupCallStreamChannels%+v", Alias(*g)) +} + +// FillFrom fills PhoneGroupCallStreamChannels from given interface. +func (g *PhoneGroupCallStreamChannels) FillFrom(from interface { + GetChannels() (value []GroupCallStreamChannel) +}) { + g.Channels = from.GetChannels() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*PhoneGroupCallStreamChannels) TypeID() uint32 { + return PhoneGroupCallStreamChannelsTypeID +} + +// TypeName returns name of type in TL schema. +func (*PhoneGroupCallStreamChannels) TypeName() string { + return "phone.groupCallStreamChannels" +} + +// TypeInfo returns info about TL type. +func (g *PhoneGroupCallStreamChannels) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "phone.groupCallStreamChannels", + ID: PhoneGroupCallStreamChannelsTypeID, + } + if g == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "Channels", + SchemaName: "channels", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (g *PhoneGroupCallStreamChannels) Encode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.groupCallStreamChannels#d0e482b2 as nil") + } + b.PutID(PhoneGroupCallStreamChannelsTypeID) + return g.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (g *PhoneGroupCallStreamChannels) EncodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.groupCallStreamChannels#d0e482b2 as nil") + } + b.PutVectorHeader(len(g.Channels)) + for idx, v := range g.Channels { + if err := v.Encode(b); err != nil { + return fmt.Errorf("unable to encode phone.groupCallStreamChannels#d0e482b2: field channels element with index %d: %w", idx, err) + } + } + return nil +} + +// Decode implements bin.Decoder. +func (g *PhoneGroupCallStreamChannels) Decode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.groupCallStreamChannels#d0e482b2 to nil") + } + if err := b.ConsumeID(PhoneGroupCallStreamChannelsTypeID); err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamChannels#d0e482b2: %w", err) + } + return g.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (g *PhoneGroupCallStreamChannels) DecodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.groupCallStreamChannels#d0e482b2 to nil") + } + { + headerLen, err := b.VectorHeader() + if err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamChannels#d0e482b2: field channels: %w", err) + } + + if headerLen > 0 { + g.Channels = make([]GroupCallStreamChannel, 0, headerLen%bin.PreallocateLimit) + } + for idx := 0; idx < headerLen; idx++ { + var value GroupCallStreamChannel + if err := value.Decode(b); err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamChannels#d0e482b2: field channels: %w", err) + } + g.Channels = append(g.Channels, value) + } + } + return nil +} + +// GetChannels returns value of Channels field. +func (g *PhoneGroupCallStreamChannels) GetChannels() (value []GroupCallStreamChannel) { + if g == nil { + return + } + return g.Channels +} diff --git a/tg/tl_phone_group_call_stream_channels_slices_gen.go b/tg/tl_phone_group_call_stream_channels_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_phone_group_call_stream_channels_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_phone_group_call_stream_rtmp_url_gen.go b/tg/tl_phone_group_call_stream_rtmp_url_gen.go new file mode 100644 index 0000000000..8f54b907e4 --- /dev/null +++ b/tg/tl_phone_group_call_stream_rtmp_url_gen.go @@ -0,0 +1,188 @@ +// Code generated by gotdgen, DO NOT EDIT. + +package tg + +import ( + "context" + "errors" + "fmt" + "sort" + "strings" + + "go.uber.org/multierr" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) + +// PhoneGroupCallStreamRtmpURL represents TL type `phone.groupCallStreamRtmpUrl#2dbf3432`. +// +// See https://core.telegram.org/constructor/phone.groupCallStreamRtmpUrl for reference. +type PhoneGroupCallStreamRtmpURL struct { + // URL field of PhoneGroupCallStreamRtmpURL. + URL string + // Key field of PhoneGroupCallStreamRtmpURL. + Key string +} + +// PhoneGroupCallStreamRtmpURLTypeID is TL type id of PhoneGroupCallStreamRtmpURL. +const PhoneGroupCallStreamRtmpURLTypeID = 0x2dbf3432 + +// Ensuring interfaces in compile-time for PhoneGroupCallStreamRtmpURL. +var ( + _ bin.Encoder = &PhoneGroupCallStreamRtmpURL{} + _ bin.Decoder = &PhoneGroupCallStreamRtmpURL{} + _ bin.BareEncoder = &PhoneGroupCallStreamRtmpURL{} + _ bin.BareDecoder = &PhoneGroupCallStreamRtmpURL{} +) + +func (g *PhoneGroupCallStreamRtmpURL) Zero() bool { + if g == nil { + return true + } + if !(g.URL == "") { + return false + } + if !(g.Key == "") { + return false + } + + return true +} + +// String implements fmt.Stringer. +func (g *PhoneGroupCallStreamRtmpURL) String() string { + if g == nil { + return "PhoneGroupCallStreamRtmpURL(nil)" + } + type Alias PhoneGroupCallStreamRtmpURL + return fmt.Sprintf("PhoneGroupCallStreamRtmpURL%+v", Alias(*g)) +} + +// FillFrom fills PhoneGroupCallStreamRtmpURL from given interface. +func (g *PhoneGroupCallStreamRtmpURL) FillFrom(from interface { + GetURL() (value string) + GetKey() (value string) +}) { + g.URL = from.GetURL() + g.Key = from.GetKey() +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*PhoneGroupCallStreamRtmpURL) TypeID() uint32 { + return PhoneGroupCallStreamRtmpURLTypeID +} + +// TypeName returns name of type in TL schema. +func (*PhoneGroupCallStreamRtmpURL) TypeName() string { + return "phone.groupCallStreamRtmpUrl" +} + +// TypeInfo returns info about TL type. +func (g *PhoneGroupCallStreamRtmpURL) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "phone.groupCallStreamRtmpUrl", + ID: PhoneGroupCallStreamRtmpURLTypeID, + } + if g == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{ + { + Name: "URL", + SchemaName: "url", + }, + { + Name: "Key", + SchemaName: "key", + }, + } + return typ +} + +// Encode implements bin.Encoder. +func (g *PhoneGroupCallStreamRtmpURL) Encode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.groupCallStreamRtmpUrl#2dbf3432 as nil") + } + b.PutID(PhoneGroupCallStreamRtmpURLTypeID) + return g.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (g *PhoneGroupCallStreamRtmpURL) EncodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't encode phone.groupCallStreamRtmpUrl#2dbf3432 as nil") + } + b.PutString(g.URL) + b.PutString(g.Key) + return nil +} + +// Decode implements bin.Decoder. +func (g *PhoneGroupCallStreamRtmpURL) Decode(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.groupCallStreamRtmpUrl#2dbf3432 to nil") + } + if err := b.ConsumeID(PhoneGroupCallStreamRtmpURLTypeID); err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamRtmpUrl#2dbf3432: %w", err) + } + return g.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (g *PhoneGroupCallStreamRtmpURL) DecodeBare(b *bin.Buffer) error { + if g == nil { + return fmt.Errorf("can't decode phone.groupCallStreamRtmpUrl#2dbf3432 to nil") + } + { + value, err := b.String() + if err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamRtmpUrl#2dbf3432: field url: %w", err) + } + g.URL = value + } + { + value, err := b.String() + if err != nil { + return fmt.Errorf("unable to decode phone.groupCallStreamRtmpUrl#2dbf3432: field key: %w", err) + } + g.Key = value + } + return nil +} + +// GetURL returns value of URL field. +func (g *PhoneGroupCallStreamRtmpURL) GetURL() (value string) { + if g == nil { + return + } + return g.URL +} + +// GetKey returns value of Key field. +func (g *PhoneGroupCallStreamRtmpURL) GetKey() (value string) { + if g == nil { + return + } + return g.Key +} diff --git a/tg/tl_phone_group_call_stream_rtmp_url_slices_gen.go b/tg/tl_phone_group_call_stream_rtmp_url_slices_gen.go new file mode 100644 index 0000000000..fe21471a4c --- /dev/null +++ b/tg/tl_phone_group_call_stream_rtmp_url_slices_gen.go @@ -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" + + "github.com/gotd/td/bin" + "github.com/gotd/td/tdjson" + "github.com/gotd/td/tdp" + "github.com/gotd/td/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{} +) diff --git a/tg/tl_registry_gen.go b/tg/tl_registry_gen.go index d4a8f0fd0d..c7afb143cc 100644 --- a/tg/tl_registry_gen.go +++ b/tg/tl_registry_gen.go @@ -32,7 +32,7 @@ var ( ) // Layer version of schema. -const Layer = 138 +const Layer = 139 // TypesMap returns mapping from type ids to TL type names. func TypesMap() map[uint32]string { @@ -204,6 +204,8 @@ func TypesMap() map[uint32]string { InputReportReasonCopyrightTypeID: "inputReportReasonCopyright#9b89f93a", InputReportReasonGeoIrrelevantTypeID: "inputReportReasonGeoIrrelevant#dbd4feed", InputReportReasonFakeTypeID: "inputReportReasonFake#f5ddd6e7", + InputReportReasonIllegalDrugsTypeID: "inputReportReasonIllegalDrugs#a8eb2be", + InputReportReasonPersonalDetailsTypeID: "inputReportReasonPersonalDetails#9ec7863d", UserFullTypeID: "userFull#cf366521", ContactTypeID: "contact#145ade0b", ImportedContactTypeID: "importedContact#c13e3c50", @@ -990,6 +992,9 @@ func TypesMap() map[uint32]string { MessagesTranslateNoResultTypeID: "messages.translateNoResult#67ca4737", MessagesTranslateResultTextTypeID: "messages.translateResultText#a214f7d0", MessagePeerReactionTypeID: "messagePeerReaction#51b67eff", + GroupCallStreamChannelTypeID: "groupCallStreamChannel#80eb48af", + PhoneGroupCallStreamChannelsTypeID: "phone.groupCallStreamChannels#d0e482b2", + PhoneGroupCallStreamRtmpURLTypeID: "phone.groupCallStreamRtmpUrl#2dbf3432", InvokeAfterMsgRequestTypeID: "invokeAfterMsg#cb9f372d", InvokeAfterMsgsRequestTypeID: "invokeAfterMsgs#3dc4b4f0", InitConnectionRequestTypeID: "initConnection#c1cd5ea9", @@ -1112,6 +1117,7 @@ func TypesMap() map[uint32]string { ContactsAcceptContactRequestTypeID: "contacts.acceptContact#f831a20f", ContactsGetLocatedRequestTypeID: "contacts.getLocated#d348bc44", ContactsBlockFromRepliesRequestTypeID: "contacts.blockFromReplies#29a8962c", + ContactsResolvePhoneRequestTypeID: "contacts.resolvePhone#8af94344", MessagesGetMessagesRequestTypeID: "messages.getMessages#63c66506", MessagesGetDialogsRequestTypeID: "messages.getDialogs#a0f4cb4f", MessagesGetHistoryRequestTypeID: "messages.getHistory#4423e6c5", @@ -1270,6 +1276,7 @@ func TypesMap() map[uint32]string { MessagesTranslateTextRequestTypeID: "messages.translateText#24ce6dee", MessagesGetUnreadReactionsRequestTypeID: "messages.getUnreadReactions#e85bae1a", MessagesReadReactionsRequestTypeID: "messages.readReactions#82e251d7", + MessagesSearchSentMediaRequestTypeID: "messages.searchSentMedia#107e31a0", UpdatesGetStateRequestTypeID: "updates.getState#edd4882a", UpdatesGetDifferenceRequestTypeID: "updates.getDifference#25939651", UpdatesGetChannelDifferenceRequestTypeID: "updates.getChannelDifference#3173d78", @@ -1393,6 +1400,8 @@ func TypesMap() map[uint32]string { PhoneSaveDefaultGroupCallJoinAsRequestTypeID: "phone.saveDefaultGroupCallJoinAs#575e1f8c", PhoneJoinGroupCallPresentationRequestTypeID: "phone.joinGroupCallPresentation#cbea6bc4", PhoneLeaveGroupCallPresentationRequestTypeID: "phone.leaveGroupCallPresentation#1c50d144", + PhoneGetGroupCallStreamChannelsRequestTypeID: "phone.getGroupCallStreamChannels#1ab21940", + PhoneGetGroupCallStreamRtmpURLRequestTypeID: "phone.getGroupCallStreamRtmpUrl#deb3abbf", LangpackGetLangPackRequestTypeID: "langpack.getLangPack#f2f2330a", LangpackGetStringsRequestTypeID: "langpack.getStrings#efea3803", LangpackGetDifferenceRequestTypeID: "langpack.getDifference#cd984aa5", @@ -1591,6 +1600,8 @@ func NamesMap() map[string]uint32 { "inputReportReasonCopyright": InputReportReasonCopyrightTypeID, "inputReportReasonGeoIrrelevant": InputReportReasonGeoIrrelevantTypeID, "inputReportReasonFake": InputReportReasonFakeTypeID, + "inputReportReasonIllegalDrugs": InputReportReasonIllegalDrugsTypeID, + "inputReportReasonPersonalDetails": InputReportReasonPersonalDetailsTypeID, "userFull": UserFullTypeID, "contact": ContactTypeID, "importedContact": ImportedContactTypeID, @@ -2377,6 +2388,9 @@ func NamesMap() map[string]uint32 { "messages.translateNoResult": MessagesTranslateNoResultTypeID, "messages.translateResultText": MessagesTranslateResultTextTypeID, "messagePeerReaction": MessagePeerReactionTypeID, + "groupCallStreamChannel": GroupCallStreamChannelTypeID, + "phone.groupCallStreamChannels": PhoneGroupCallStreamChannelsTypeID, + "phone.groupCallStreamRtmpUrl": PhoneGroupCallStreamRtmpURLTypeID, "invokeAfterMsg": InvokeAfterMsgRequestTypeID, "invokeAfterMsgs": InvokeAfterMsgsRequestTypeID, "initConnection": InitConnectionRequestTypeID, @@ -2499,6 +2513,7 @@ func NamesMap() map[string]uint32 { "contacts.acceptContact": ContactsAcceptContactRequestTypeID, "contacts.getLocated": ContactsGetLocatedRequestTypeID, "contacts.blockFromReplies": ContactsBlockFromRepliesRequestTypeID, + "contacts.resolvePhone": ContactsResolvePhoneRequestTypeID, "messages.getMessages": MessagesGetMessagesRequestTypeID, "messages.getDialogs": MessagesGetDialogsRequestTypeID, "messages.getHistory": MessagesGetHistoryRequestTypeID, @@ -2657,6 +2672,7 @@ func NamesMap() map[string]uint32 { "messages.translateText": MessagesTranslateTextRequestTypeID, "messages.getUnreadReactions": MessagesGetUnreadReactionsRequestTypeID, "messages.readReactions": MessagesReadReactionsRequestTypeID, + "messages.searchSentMedia": MessagesSearchSentMediaRequestTypeID, "updates.getState": UpdatesGetStateRequestTypeID, "updates.getDifference": UpdatesGetDifferenceRequestTypeID, "updates.getChannelDifference": UpdatesGetChannelDifferenceRequestTypeID, @@ -2780,6 +2796,8 @@ func NamesMap() map[string]uint32 { "phone.saveDefaultGroupCallJoinAs": PhoneSaveDefaultGroupCallJoinAsRequestTypeID, "phone.joinGroupCallPresentation": PhoneJoinGroupCallPresentationRequestTypeID, "phone.leaveGroupCallPresentation": PhoneLeaveGroupCallPresentationRequestTypeID, + "phone.getGroupCallStreamChannels": PhoneGetGroupCallStreamChannelsRequestTypeID, + "phone.getGroupCallStreamRtmpUrl": PhoneGetGroupCallStreamRtmpURLRequestTypeID, "langpack.getLangPack": LangpackGetLangPackRequestTypeID, "langpack.getStrings": LangpackGetStringsRequestTypeID, "langpack.getDifference": LangpackGetDifferenceRequestTypeID, @@ -2978,6 +2996,8 @@ func TypesConstructorMap() map[uint32]func() bin.Object { InputReportReasonCopyrightTypeID: func() bin.Object { return &InputReportReasonCopyright{} }, InputReportReasonGeoIrrelevantTypeID: func() bin.Object { return &InputReportReasonGeoIrrelevant{} }, InputReportReasonFakeTypeID: func() bin.Object { return &InputReportReasonFake{} }, + InputReportReasonIllegalDrugsTypeID: func() bin.Object { return &InputReportReasonIllegalDrugs{} }, + InputReportReasonPersonalDetailsTypeID: func() bin.Object { return &InputReportReasonPersonalDetails{} }, UserFullTypeID: func() bin.Object { return &UserFull{} }, ContactTypeID: func() bin.Object { return &Contact{} }, ImportedContactTypeID: func() bin.Object { return &ImportedContact{} }, @@ -3764,6 +3784,9 @@ func TypesConstructorMap() map[uint32]func() bin.Object { MessagesTranslateNoResultTypeID: func() bin.Object { return &MessagesTranslateNoResult{} }, MessagesTranslateResultTextTypeID: func() bin.Object { return &MessagesTranslateResultText{} }, MessagePeerReactionTypeID: func() bin.Object { return &MessagePeerReaction{} }, + GroupCallStreamChannelTypeID: func() bin.Object { return &GroupCallStreamChannel{} }, + PhoneGroupCallStreamChannelsTypeID: func() bin.Object { return &PhoneGroupCallStreamChannels{} }, + PhoneGroupCallStreamRtmpURLTypeID: func() bin.Object { return &PhoneGroupCallStreamRtmpURL{} }, InvokeAfterMsgRequestTypeID: func() bin.Object { return &InvokeAfterMsgRequest{} }, InvokeAfterMsgsRequestTypeID: func() bin.Object { return &InvokeAfterMsgsRequest{} }, InitConnectionRequestTypeID: func() bin.Object { return &InitConnectionRequest{} }, @@ -3886,6 +3909,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object { ContactsAcceptContactRequestTypeID: func() bin.Object { return &ContactsAcceptContactRequest{} }, ContactsGetLocatedRequestTypeID: func() bin.Object { return &ContactsGetLocatedRequest{} }, ContactsBlockFromRepliesRequestTypeID: func() bin.Object { return &ContactsBlockFromRepliesRequest{} }, + ContactsResolvePhoneRequestTypeID: func() bin.Object { return &ContactsResolvePhoneRequest{} }, MessagesGetMessagesRequestTypeID: func() bin.Object { return &MessagesGetMessagesRequest{} }, MessagesGetDialogsRequestTypeID: func() bin.Object { return &MessagesGetDialogsRequest{} }, MessagesGetHistoryRequestTypeID: func() bin.Object { return &MessagesGetHistoryRequest{} }, @@ -4044,6 +4068,7 @@ func TypesConstructorMap() map[uint32]func() bin.Object { MessagesTranslateTextRequestTypeID: func() bin.Object { return &MessagesTranslateTextRequest{} }, MessagesGetUnreadReactionsRequestTypeID: func() bin.Object { return &MessagesGetUnreadReactionsRequest{} }, MessagesReadReactionsRequestTypeID: func() bin.Object { return &MessagesReadReactionsRequest{} }, + MessagesSearchSentMediaRequestTypeID: func() bin.Object { return &MessagesSearchSentMediaRequest{} }, UpdatesGetStateRequestTypeID: func() bin.Object { return &UpdatesGetStateRequest{} }, UpdatesGetDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetDifferenceRequest{} }, UpdatesGetChannelDifferenceRequestTypeID: func() bin.Object { return &UpdatesGetChannelDifferenceRequest{} }, @@ -4167,6 +4192,8 @@ func TypesConstructorMap() map[uint32]func() bin.Object { PhoneSaveDefaultGroupCallJoinAsRequestTypeID: func() bin.Object { return &PhoneSaveDefaultGroupCallJoinAsRequest{} }, PhoneJoinGroupCallPresentationRequestTypeID: func() bin.Object { return &PhoneJoinGroupCallPresentationRequest{} }, PhoneLeaveGroupCallPresentationRequestTypeID: func() bin.Object { return &PhoneLeaveGroupCallPresentationRequest{} }, + PhoneGetGroupCallStreamChannelsRequestTypeID: func() bin.Object { return &PhoneGetGroupCallStreamChannelsRequest{} }, + PhoneGetGroupCallStreamRtmpURLRequestTypeID: func() bin.Object { return &PhoneGetGroupCallStreamRtmpURLRequest{} }, LangpackGetLangPackRequestTypeID: func() bin.Object { return &LangpackGetLangPackRequest{} }, LangpackGetStringsRequestTypeID: func() bin.Object { return &LangpackGetStringsRequest{} }, LangpackGetDifferenceRequestTypeID: func() bin.Object { return &LangpackGetDifferenceRequest{} }, @@ -4977,6 +5004,8 @@ func ClassConstructorsMap() map[string][]uint32 { InputReportReasonCopyrightTypeID, InputReportReasonGeoIrrelevantTypeID, InputReportReasonFakeTypeID, + InputReportReasonIllegalDrugsTypeID, + InputReportReasonPersonalDetailsTypeID, }, RichTextClassName: { TextEmptyTypeID, diff --git a/tg/tl_report_reason_gen.go b/tg/tl_report_reason_gen.go index 95f4ecb668..f229926aa6 100644 --- a/tg/tl_report_reason_gen.go +++ b/tg/tl_report_reason_gen.go @@ -847,6 +847,208 @@ func (i *InputReportReasonFake) DecodeBare(b *bin.Buffer) error { return nil } +// InputReportReasonIllegalDrugs represents TL type `inputReportReasonIllegalDrugs#a8eb2be`. +// +// See https://core.telegram.org/constructor/inputReportReasonIllegalDrugs for reference. +type InputReportReasonIllegalDrugs struct { +} + +// InputReportReasonIllegalDrugsTypeID is TL type id of InputReportReasonIllegalDrugs. +const InputReportReasonIllegalDrugsTypeID = 0xa8eb2be + +// construct implements constructor of ReportReasonClass. +func (i InputReportReasonIllegalDrugs) construct() ReportReasonClass { return &i } + +// Ensuring interfaces in compile-time for InputReportReasonIllegalDrugs. +var ( + _ bin.Encoder = &InputReportReasonIllegalDrugs{} + _ bin.Decoder = &InputReportReasonIllegalDrugs{} + _ bin.BareEncoder = &InputReportReasonIllegalDrugs{} + _ bin.BareDecoder = &InputReportReasonIllegalDrugs{} + + _ ReportReasonClass = &InputReportReasonIllegalDrugs{} +) + +func (i *InputReportReasonIllegalDrugs) Zero() bool { + if i == nil { + return true + } + + return true +} + +// String implements fmt.Stringer. +func (i *InputReportReasonIllegalDrugs) String() string { + if i == nil { + return "InputReportReasonIllegalDrugs(nil)" + } + type Alias InputReportReasonIllegalDrugs + return fmt.Sprintf("InputReportReasonIllegalDrugs%+v", Alias(*i)) +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*InputReportReasonIllegalDrugs) TypeID() uint32 { + return InputReportReasonIllegalDrugsTypeID +} + +// TypeName returns name of type in TL schema. +func (*InputReportReasonIllegalDrugs) TypeName() string { + return "inputReportReasonIllegalDrugs" +} + +// TypeInfo returns info about TL type. +func (i *InputReportReasonIllegalDrugs) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "inputReportReasonIllegalDrugs", + ID: InputReportReasonIllegalDrugsTypeID, + } + if i == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{} + return typ +} + +// Encode implements bin.Encoder. +func (i *InputReportReasonIllegalDrugs) Encode(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't encode inputReportReasonIllegalDrugs#a8eb2be as nil") + } + b.PutID(InputReportReasonIllegalDrugsTypeID) + return i.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (i *InputReportReasonIllegalDrugs) EncodeBare(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't encode inputReportReasonIllegalDrugs#a8eb2be as nil") + } + return nil +} + +// Decode implements bin.Decoder. +func (i *InputReportReasonIllegalDrugs) Decode(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't decode inputReportReasonIllegalDrugs#a8eb2be to nil") + } + if err := b.ConsumeID(InputReportReasonIllegalDrugsTypeID); err != nil { + return fmt.Errorf("unable to decode inputReportReasonIllegalDrugs#a8eb2be: %w", err) + } + return i.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (i *InputReportReasonIllegalDrugs) DecodeBare(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't decode inputReportReasonIllegalDrugs#a8eb2be to nil") + } + return nil +} + +// InputReportReasonPersonalDetails represents TL type `inputReportReasonPersonalDetails#9ec7863d`. +// +// See https://core.telegram.org/constructor/inputReportReasonPersonalDetails for reference. +type InputReportReasonPersonalDetails struct { +} + +// InputReportReasonPersonalDetailsTypeID is TL type id of InputReportReasonPersonalDetails. +const InputReportReasonPersonalDetailsTypeID = 0x9ec7863d + +// construct implements constructor of ReportReasonClass. +func (i InputReportReasonPersonalDetails) construct() ReportReasonClass { return &i } + +// Ensuring interfaces in compile-time for InputReportReasonPersonalDetails. +var ( + _ bin.Encoder = &InputReportReasonPersonalDetails{} + _ bin.Decoder = &InputReportReasonPersonalDetails{} + _ bin.BareEncoder = &InputReportReasonPersonalDetails{} + _ bin.BareDecoder = &InputReportReasonPersonalDetails{} + + _ ReportReasonClass = &InputReportReasonPersonalDetails{} +) + +func (i *InputReportReasonPersonalDetails) Zero() bool { + if i == nil { + return true + } + + return true +} + +// String implements fmt.Stringer. +func (i *InputReportReasonPersonalDetails) String() string { + if i == nil { + return "InputReportReasonPersonalDetails(nil)" + } + type Alias InputReportReasonPersonalDetails + return fmt.Sprintf("InputReportReasonPersonalDetails%+v", Alias(*i)) +} + +// TypeID returns type id in TL schema. +// +// See https://core.telegram.org/mtproto/TL-tl#remarks. +func (*InputReportReasonPersonalDetails) TypeID() uint32 { + return InputReportReasonPersonalDetailsTypeID +} + +// TypeName returns name of type in TL schema. +func (*InputReportReasonPersonalDetails) TypeName() string { + return "inputReportReasonPersonalDetails" +} + +// TypeInfo returns info about TL type. +func (i *InputReportReasonPersonalDetails) TypeInfo() tdp.Type { + typ := tdp.Type{ + Name: "inputReportReasonPersonalDetails", + ID: InputReportReasonPersonalDetailsTypeID, + } + if i == nil { + typ.Null = true + return typ + } + typ.Fields = []tdp.Field{} + return typ +} + +// Encode implements bin.Encoder. +func (i *InputReportReasonPersonalDetails) Encode(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't encode inputReportReasonPersonalDetails#9ec7863d as nil") + } + b.PutID(InputReportReasonPersonalDetailsTypeID) + return i.EncodeBare(b) +} + +// EncodeBare implements bin.BareEncoder. +func (i *InputReportReasonPersonalDetails) EncodeBare(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't encode inputReportReasonPersonalDetails#9ec7863d as nil") + } + return nil +} + +// Decode implements bin.Decoder. +func (i *InputReportReasonPersonalDetails) Decode(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't decode inputReportReasonPersonalDetails#9ec7863d to nil") + } + if err := b.ConsumeID(InputReportReasonPersonalDetailsTypeID); err != nil { + return fmt.Errorf("unable to decode inputReportReasonPersonalDetails#9ec7863d: %w", err) + } + return i.DecodeBare(b) +} + +// DecodeBare implements bin.BareDecoder. +func (i *InputReportReasonPersonalDetails) DecodeBare(b *bin.Buffer) error { + if i == nil { + return fmt.Errorf("can't decode inputReportReasonPersonalDetails#9ec7863d to nil") + } + return nil +} + // ReportReasonClassName is schema name of ReportReasonClass. const ReportReasonClassName = "ReportReason" @@ -868,6 +1070,8 @@ const ReportReasonClassName = "ReportReason" // case *tg.InputReportReasonCopyright: // inputReportReasonCopyright#9b89f93a // case *tg.InputReportReasonGeoIrrelevant: // inputReportReasonGeoIrrelevant#dbd4feed // case *tg.InputReportReasonFake: // inputReportReasonFake#f5ddd6e7 +// case *tg.InputReportReasonIllegalDrugs: // inputReportReasonIllegalDrugs#a8eb2be +// case *tg.InputReportReasonPersonalDetails: // inputReportReasonPersonalDetails#9ec7863d // default: panic(v) // } type ReportReasonClass interface { @@ -952,6 +1156,20 @@ func DecodeReportReason(buf *bin.Buffer) (ReportReasonClass, error) { return nil, fmt.Errorf("unable to decode ReportReasonClass: %w", err) } return &v, nil + case InputReportReasonIllegalDrugsTypeID: + // Decoding inputReportReasonIllegalDrugs#a8eb2be. + v := InputReportReasonIllegalDrugs{} + if err := v.Decode(buf); err != nil { + return nil, fmt.Errorf("unable to decode ReportReasonClass: %w", err) + } + return &v, nil + case InputReportReasonPersonalDetailsTypeID: + // Decoding inputReportReasonPersonalDetails#9ec7863d. + v := InputReportReasonPersonalDetails{} + if err := v.Decode(buf); err != nil { + return nil, fmt.Errorf("unable to decode ReportReasonClass: %w", err) + } + return &v, nil default: return nil, fmt.Errorf("unable to decode ReportReasonClass: %w", bin.NewUnexpectedID(id)) } diff --git a/tg/tl_server_gen.go b/tg/tl_server_gen.go index 408c28374c..57a5350536 100644 --- a/tg/tl_server_gen.go +++ b/tg/tl_server_gen.go @@ -2204,6 +2204,23 @@ func (s *ServerDispatcher) OnContactsBlockFromReplies(f func(ctx context.Context s.handlers[ContactsBlockFromRepliesRequestTypeID] = handler } +func (s *ServerDispatcher) OnContactsResolvePhone(f func(ctx context.Context, phone string) (*ContactsResolvedPeer, error)) { + handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { + var request ContactsResolvePhoneRequest + if err := request.Decode(b); err != nil { + return nil, err + } + + response, err := f(ctx, request.Phone) + if err != nil { + return nil, err + } + return response, nil + } + + s.handlers[ContactsResolvePhoneRequestTypeID] = handler +} + func (s *ServerDispatcher) OnMessagesGetMessages(f func(ctx context.Context, id []InputMessageClass) (MessagesMessagesClass, error)) { handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { var request MessagesGetMessagesRequest @@ -5042,6 +5059,23 @@ func (s *ServerDispatcher) OnMessagesReadReactions(f func(ctx context.Context, p s.handlers[MessagesReadReactionsRequestTypeID] = handler } +func (s *ServerDispatcher) OnMessagesSearchSentMedia(f func(ctx context.Context, request *MessagesSearchSentMediaRequest) (MessagesMessagesClass, error)) { + handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { + var request MessagesSearchSentMediaRequest + 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[MessagesSearchSentMediaRequestTypeID] = handler +} + func (s *ServerDispatcher) OnUpdatesGetState(f func(ctx context.Context) (*UpdatesState, error)) { handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { var request UpdatesGetStateRequest @@ -7237,6 +7271,40 @@ func (s *ServerDispatcher) OnPhoneLeaveGroupCallPresentation(f func(ctx context. s.handlers[PhoneLeaveGroupCallPresentationRequestTypeID] = handler } +func (s *ServerDispatcher) OnPhoneGetGroupCallStreamChannels(f func(ctx context.Context, call InputGroupCall) (*PhoneGroupCallStreamChannels, error)) { + handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { + var request PhoneGetGroupCallStreamChannelsRequest + if err := request.Decode(b); err != nil { + return nil, err + } + + response, err := f(ctx, request.Call) + if err != nil { + return nil, err + } + return response, nil + } + + s.handlers[PhoneGetGroupCallStreamChannelsRequestTypeID] = handler +} + +func (s *ServerDispatcher) OnPhoneGetGroupCallStreamRtmpURL(f func(ctx context.Context, request *PhoneGetGroupCallStreamRtmpURLRequest) (*PhoneGroupCallStreamRtmpURL, error)) { + handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { + var request PhoneGetGroupCallStreamRtmpURLRequest + 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[PhoneGetGroupCallStreamRtmpURLRequestTypeID] = handler +} + func (s *ServerDispatcher) OnLangpackGetLangPack(f func(ctx context.Context, request *LangpackGetLangPackRequest) (*LangPackDifference, error)) { handler := func(ctx context.Context, b *bin.Buffer) (bin.Encoder, error) { var request LangpackGetLangPackRequest diff --git a/tg/tl_sticker_set_gen.go b/tg/tl_sticker_set_gen.go index 1363661118..997d20349c 100644 --- a/tg/tl_sticker_set_gen.go +++ b/tg/tl_sticker_set_gen.go @@ -50,8 +50,8 @@ type StickerSet struct { Masks bool // Is this an animated stickerpack Animated bool - // Gifs field of StickerSet. - Gifs bool + // Videos field of StickerSet. + Videos bool // When was this stickerset installed // // Use SetInstalledDate and GetInstalledDate helpers. @@ -112,7 +112,7 @@ func (s *StickerSet) Zero() bool { if !(s.Animated == false) { return false } - if !(s.Gifs == false) { + if !(s.Videos == false) { return false } if !(s.InstalledDate == 0) { @@ -164,7 +164,7 @@ func (s *StickerSet) FillFrom(from interface { GetOfficial() (value bool) GetMasks() (value bool) GetAnimated() (value bool) - GetGifs() (value bool) + GetVideos() (value bool) GetInstalledDate() (value int, ok bool) GetID() (value int64) GetAccessHash() (value int64) @@ -180,7 +180,7 @@ func (s *StickerSet) FillFrom(from interface { s.Official = from.GetOfficial() s.Masks = from.GetMasks() s.Animated = from.GetAnimated() - s.Gifs = from.GetGifs() + s.Videos = from.GetVideos() if val, ok := from.GetInstalledDate(); ok { s.InstalledDate = val } @@ -249,8 +249,8 @@ func (s *StickerSet) TypeInfo() tdp.Type { Null: !s.Flags.Has(5), }, { - Name: "Gifs", - SchemaName: "gifs", + Name: "Videos", + SchemaName: "videos", Null: !s.Flags.Has(6), }, { @@ -315,7 +315,7 @@ func (s *StickerSet) SetFlags() { if !(s.Animated == false) { s.Flags.Set(5) } - if !(s.Gifs == false) { + if !(s.Videos == false) { s.Flags.Set(6) } if !(s.InstalledDate == 0) { @@ -404,7 +404,7 @@ func (s *StickerSet) DecodeBare(b *bin.Buffer) error { s.Official = s.Flags.Has(2) s.Masks = s.Flags.Has(3) s.Animated = s.Flags.Has(5) - s.Gifs = s.Flags.Has(6) + s.Videos = s.Flags.Has(6) if s.Flags.Has(0) { value, err := b.Int() if err != nil { @@ -564,19 +564,19 @@ func (s *StickerSet) GetAnimated() (value bool) { return s.Flags.Has(5) } -// SetGifs sets value of Gifs conditional field. -func (s *StickerSet) SetGifs(value bool) { +// SetVideos sets value of Videos conditional field. +func (s *StickerSet) SetVideos(value bool) { if value { s.Flags.Set(6) - s.Gifs = true + s.Videos = true } else { s.Flags.Unset(6) - s.Gifs = false + s.Videos = false } } -// GetGifs returns value of Gifs conditional field. -func (s *StickerSet) GetGifs() (value bool) { +// GetVideos returns value of Videos conditional field. +func (s *StickerSet) GetVideos() (value bool) { if s == nil { return } diff --git a/tg/tl_stickers_create_sticker_set_gen.go b/tg/tl_stickers_create_sticker_set_gen.go index e169f67fea..f7c1d9dc8f 100644 --- a/tg/tl_stickers_create_sticker_set_gen.go +++ b/tg/tl_stickers_create_sticker_set_gen.go @@ -45,6 +45,8 @@ type StickersCreateStickerSetRequest struct { Masks bool // Whether this is an animated stickerset Animated bool + // Videos field of StickersCreateStickerSetRequest. + Videos bool // Stickerset owner UserID InputUserClass // Stickerset name, 1-64 chars @@ -92,6 +94,9 @@ func (c *StickersCreateStickerSetRequest) Zero() bool { if !(c.Animated == false) { return false } + if !(c.Videos == false) { + return false + } if !(c.UserID == nil) { return false } @@ -127,6 +132,7 @@ func (c *StickersCreateStickerSetRequest) String() string { func (c *StickersCreateStickerSetRequest) FillFrom(from interface { GetMasks() (value bool) GetAnimated() (value bool) + GetVideos() (value bool) GetUserID() (value InputUserClass) GetTitle() (value string) GetShortName() (value string) @@ -136,6 +142,7 @@ func (c *StickersCreateStickerSetRequest) FillFrom(from interface { }) { c.Masks = from.GetMasks() c.Animated = from.GetAnimated() + c.Videos = from.GetVideos() c.UserID = from.GetUserID() c.Title = from.GetTitle() c.ShortName = from.GetShortName() @@ -183,6 +190,11 @@ func (c *StickersCreateStickerSetRequest) TypeInfo() tdp.Type { SchemaName: "animated", Null: !c.Flags.Has(1), }, + { + Name: "Videos", + SchemaName: "videos", + Null: !c.Flags.Has(4), + }, { Name: "UserID", SchemaName: "user_id", @@ -221,6 +233,9 @@ func (c *StickersCreateStickerSetRequest) SetFlags() { if !(c.Animated == false) { c.Flags.Set(1) } + if !(c.Videos == false) { + c.Flags.Set(4) + } if !(c.Thumb == nil) { c.Flags.Set(2) } @@ -298,6 +313,7 @@ func (c *StickersCreateStickerSetRequest) DecodeBare(b *bin.Buffer) error { } c.Masks = c.Flags.Has(0) c.Animated = c.Flags.Has(1) + c.Videos = c.Flags.Has(4) { value, err := DecodeInputUser(b) if err != nil { @@ -391,6 +407,25 @@ func (c *StickersCreateStickerSetRequest) GetAnimated() (value bool) { return c.Flags.Has(1) } +// SetVideos sets value of Videos conditional field. +func (c *StickersCreateStickerSetRequest) SetVideos(value bool) { + if value { + c.Flags.Set(4) + c.Videos = true + } else { + c.Flags.Unset(4) + c.Videos = false + } +} + +// GetVideos returns value of Videos conditional field. +func (c *StickersCreateStickerSetRequest) GetVideos() (value bool) { + if c == nil { + return + } + return c.Flags.Has(4) +} + // GetUserID returns value of UserID field. func (c *StickersCreateStickerSetRequest) GetUserID() (value InputUserClass) { if c == nil {