Files
mautrix-telegram/pkg/gotd/tg/tl_messages_forward_messages_gen.go
T
2026-03-03 15:13:10 +02:00

1141 lines
32 KiB
Go
Generated

// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// MessagesForwardMessagesRequest represents TL type `messages.forwardMessages#13704a7c`.
// Forwards messages by their IDs.
//
// See https://core.telegram.org/method/messages.forwardMessages for reference.
type MessagesForwardMessagesRequest struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Whether to send messages silently (no notification will be triggered on the
// destination clients)
Silent bool
// Whether to send the message in background
Background bool
// When forwarding games, whether to include your score in the game
WithMyScore bool
// Whether to forward messages without quoting the original author
DropAuthor bool
// Whether to strip captions from media
DropMediaCaptions bool
// Only for bots, disallows further re-forwarding and saving of the messages, even if the
// destination chat doesn't have content protection¹ enabled
//
// Links:
// 1) https://telegram.org/blog/protected-content-delete-by-date-and-more
Noforwards bool
// Bots only: if set, allows sending up to 1000 messages per second, ignoring
// broadcasting limits¹ for a fee of 0.1 Telegram Stars per message. The relevant Stars
// will be withdrawn from the bot's balance.
//
// Links:
// 1) https://core.telegram.org/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once
AllowPaidFloodskip bool
// Source of messages
FromPeer InputPeerClass
// IDs of messages
ID []int
// Random ID to prevent resending of messages
RandomID []int64
// Destination peer
ToPeer InputPeerClass
// Destination forum topic¹
//
// Links:
// 1) https://core.telegram.org/api/forum#forum-topics
//
// Use SetTopMsgID and GetTopMsgID helpers.
TopMsgID int
// Can only contain an inputReplyToMonoForum¹, to forward messages to a monoforum
// topic² (mutually exclusive with top_msg_id).
//
// Links:
// 1) https://core.telegram.org/constructor/inputReplyToMonoForum
// 2) https://core.telegram.org/api/monoforum
//
// Use SetReplyTo and GetReplyTo helpers.
ReplyTo InputReplyToClass
// Scheduled message date for scheduled messages
//
// Use SetScheduleDate and GetScheduleDate helpers.
ScheduleDate int
// ScheduleRepeatPeriod field of MessagesForwardMessagesRequest.
//
// Use SetScheduleRepeatPeriod and GetScheduleRepeatPeriod helpers.
ScheduleRepeatPeriod int
// Forward the messages as the specified peer
//
// Use SetSendAs and GetSendAs helpers.
SendAs InputPeerClass
// Add the messages to the specified quick reply shortcut »¹, instead.
//
// Links:
// 1) https://core.telegram.org/api/business#quick-reply-shortcuts
//
// Use SetQuickReplyShortcut and GetQuickReplyShortcut helpers.
QuickReplyShortcut InputQuickReplyShortcutClass
// Effect field of MessagesForwardMessagesRequest.
//
// Use SetEffect and GetEffect helpers.
Effect int64
// Start playing the video at the specified timestamp (seconds).
//
// Use SetVideoTimestamp and GetVideoTimestamp helpers.
VideoTimestamp int
// For paid messages »¹, specifies the amount of Telegram Stars² the user has agreed
// to pay in order to send the message.
//
// Links:
// 1) https://core.telegram.org/api/paid-messages
// 2) https://core.telegram.org/api/stars
//
// Use SetAllowPaidStars and GetAllowPaidStars helpers.
AllowPaidStars int64
// Used to suggest a post to a channel, see here »¹ for more info on the full flow.
//
// Links:
// 1) https://core.telegram.org/api/suggested-posts
//
// Use SetSuggestedPost and GetSuggestedPost helpers.
SuggestedPost SuggestedPost
}
// MessagesForwardMessagesRequestTypeID is TL type id of MessagesForwardMessagesRequest.
const MessagesForwardMessagesRequestTypeID = 0x13704a7c
// Ensuring interfaces in compile-time for MessagesForwardMessagesRequest.
var (
_ bin.Encoder = &MessagesForwardMessagesRequest{}
_ bin.Decoder = &MessagesForwardMessagesRequest{}
_ bin.BareEncoder = &MessagesForwardMessagesRequest{}
_ bin.BareDecoder = &MessagesForwardMessagesRequest{}
)
func (f *MessagesForwardMessagesRequest) Zero() bool {
if f == nil {
return true
}
if !(f.Flags.Zero()) {
return false
}
if !(f.Silent == false) {
return false
}
if !(f.Background == false) {
return false
}
if !(f.WithMyScore == false) {
return false
}
if !(f.DropAuthor == false) {
return false
}
if !(f.DropMediaCaptions == false) {
return false
}
if !(f.Noforwards == false) {
return false
}
if !(f.AllowPaidFloodskip == false) {
return false
}
if !(f.FromPeer == nil) {
return false
}
if !(f.ID == nil) {
return false
}
if !(f.RandomID == nil) {
return false
}
if !(f.ToPeer == nil) {
return false
}
if !(f.TopMsgID == 0) {
return false
}
if !(f.ReplyTo == nil) {
return false
}
if !(f.ScheduleDate == 0) {
return false
}
if !(f.ScheduleRepeatPeriod == 0) {
return false
}
if !(f.SendAs == nil) {
return false
}
if !(f.QuickReplyShortcut == nil) {
return false
}
if !(f.Effect == 0) {
return false
}
if !(f.VideoTimestamp == 0) {
return false
}
if !(f.AllowPaidStars == 0) {
return false
}
if !(f.SuggestedPost.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (f *MessagesForwardMessagesRequest) String() string {
if f == nil {
return "MessagesForwardMessagesRequest(nil)"
}
type Alias MessagesForwardMessagesRequest
return fmt.Sprintf("MessagesForwardMessagesRequest%+v", Alias(*f))
}
// FillFrom fills MessagesForwardMessagesRequest from given interface.
func (f *MessagesForwardMessagesRequest) FillFrom(from interface {
GetSilent() (value bool)
GetBackground() (value bool)
GetWithMyScore() (value bool)
GetDropAuthor() (value bool)
GetDropMediaCaptions() (value bool)
GetNoforwards() (value bool)
GetAllowPaidFloodskip() (value bool)
GetFromPeer() (value InputPeerClass)
GetID() (value []int)
GetRandomID() (value []int64)
GetToPeer() (value InputPeerClass)
GetTopMsgID() (value int, ok bool)
GetReplyTo() (value InputReplyToClass, ok bool)
GetScheduleDate() (value int, ok bool)
GetScheduleRepeatPeriod() (value int, ok bool)
GetSendAs() (value InputPeerClass, ok bool)
GetQuickReplyShortcut() (value InputQuickReplyShortcutClass, ok bool)
GetEffect() (value int64, ok bool)
GetVideoTimestamp() (value int, ok bool)
GetAllowPaidStars() (value int64, ok bool)
GetSuggestedPost() (value SuggestedPost, ok bool)
}) {
f.Silent = from.GetSilent()
f.Background = from.GetBackground()
f.WithMyScore = from.GetWithMyScore()
f.DropAuthor = from.GetDropAuthor()
f.DropMediaCaptions = from.GetDropMediaCaptions()
f.Noforwards = from.GetNoforwards()
f.AllowPaidFloodskip = from.GetAllowPaidFloodskip()
f.FromPeer = from.GetFromPeer()
f.ID = from.GetID()
f.RandomID = from.GetRandomID()
f.ToPeer = from.GetToPeer()
if val, ok := from.GetTopMsgID(); ok {
f.TopMsgID = val
}
if val, ok := from.GetReplyTo(); ok {
f.ReplyTo = val
}
if val, ok := from.GetScheduleDate(); ok {
f.ScheduleDate = val
}
if val, ok := from.GetScheduleRepeatPeriod(); ok {
f.ScheduleRepeatPeriod = val
}
if val, ok := from.GetSendAs(); ok {
f.SendAs = val
}
if val, ok := from.GetQuickReplyShortcut(); ok {
f.QuickReplyShortcut = val
}
if val, ok := from.GetEffect(); ok {
f.Effect = val
}
if val, ok := from.GetVideoTimestamp(); ok {
f.VideoTimestamp = val
}
if val, ok := from.GetAllowPaidStars(); ok {
f.AllowPaidStars = val
}
if val, ok := from.GetSuggestedPost(); ok {
f.SuggestedPost = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessagesForwardMessagesRequest) TypeID() uint32 {
return MessagesForwardMessagesRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessagesForwardMessagesRequest) TypeName() string {
return "messages.forwardMessages"
}
// TypeInfo returns info about TL type.
func (f *MessagesForwardMessagesRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messages.forwardMessages",
ID: MessagesForwardMessagesRequestTypeID,
}
if f == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Silent",
SchemaName: "silent",
Null: !f.Flags.Has(5),
},
{
Name: "Background",
SchemaName: "background",
Null: !f.Flags.Has(6),
},
{
Name: "WithMyScore",
SchemaName: "with_my_score",
Null: !f.Flags.Has(8),
},
{
Name: "DropAuthor",
SchemaName: "drop_author",
Null: !f.Flags.Has(11),
},
{
Name: "DropMediaCaptions",
SchemaName: "drop_media_captions",
Null: !f.Flags.Has(12),
},
{
Name: "Noforwards",
SchemaName: "noforwards",
Null: !f.Flags.Has(14),
},
{
Name: "AllowPaidFloodskip",
SchemaName: "allow_paid_floodskip",
Null: !f.Flags.Has(19),
},
{
Name: "FromPeer",
SchemaName: "from_peer",
},
{
Name: "ID",
SchemaName: "id",
},
{
Name: "RandomID",
SchemaName: "random_id",
},
{
Name: "ToPeer",
SchemaName: "to_peer",
},
{
Name: "TopMsgID",
SchemaName: "top_msg_id",
Null: !f.Flags.Has(9),
},
{
Name: "ReplyTo",
SchemaName: "reply_to",
Null: !f.Flags.Has(22),
},
{
Name: "ScheduleDate",
SchemaName: "schedule_date",
Null: !f.Flags.Has(10),
},
{
Name: "ScheduleRepeatPeriod",
SchemaName: "schedule_repeat_period",
Null: !f.Flags.Has(24),
},
{
Name: "SendAs",
SchemaName: "send_as",
Null: !f.Flags.Has(13),
},
{
Name: "QuickReplyShortcut",
SchemaName: "quick_reply_shortcut",
Null: !f.Flags.Has(17),
},
{
Name: "Effect",
SchemaName: "effect",
Null: !f.Flags.Has(18),
},
{
Name: "VideoTimestamp",
SchemaName: "video_timestamp",
Null: !f.Flags.Has(20),
},
{
Name: "AllowPaidStars",
SchemaName: "allow_paid_stars",
Null: !f.Flags.Has(21),
},
{
Name: "SuggestedPost",
SchemaName: "suggested_post",
Null: !f.Flags.Has(23),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (f *MessagesForwardMessagesRequest) SetFlags() {
if !(f.Silent == false) {
f.Flags.Set(5)
}
if !(f.Background == false) {
f.Flags.Set(6)
}
if !(f.WithMyScore == false) {
f.Flags.Set(8)
}
if !(f.DropAuthor == false) {
f.Flags.Set(11)
}
if !(f.DropMediaCaptions == false) {
f.Flags.Set(12)
}
if !(f.Noforwards == false) {
f.Flags.Set(14)
}
if !(f.AllowPaidFloodskip == false) {
f.Flags.Set(19)
}
if !(f.TopMsgID == 0) {
f.Flags.Set(9)
}
if !(f.ReplyTo == nil) {
f.Flags.Set(22)
}
if !(f.ScheduleDate == 0) {
f.Flags.Set(10)
}
if !(f.ScheduleRepeatPeriod == 0) {
f.Flags.Set(24)
}
if !(f.SendAs == nil) {
f.Flags.Set(13)
}
if !(f.QuickReplyShortcut == nil) {
f.Flags.Set(17)
}
if !(f.Effect == 0) {
f.Flags.Set(18)
}
if !(f.VideoTimestamp == 0) {
f.Flags.Set(20)
}
if !(f.AllowPaidStars == 0) {
f.Flags.Set(21)
}
if !(f.SuggestedPost.Zero()) {
f.Flags.Set(23)
}
}
// Encode implements bin.Encoder.
func (f *MessagesForwardMessagesRequest) Encode(b *bin.Buffer) error {
if f == nil {
return fmt.Errorf("can't encode messages.forwardMessages#13704a7c as nil")
}
b.PutID(MessagesForwardMessagesRequestTypeID)
return f.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (f *MessagesForwardMessagesRequest) EncodeBare(b *bin.Buffer) error {
if f == nil {
return fmt.Errorf("can't encode messages.forwardMessages#13704a7c as nil")
}
f.SetFlags()
if err := f.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field flags: %w", err)
}
if f.FromPeer == nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field from_peer is nil")
}
if err := f.FromPeer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field from_peer: %w", err)
}
b.PutVectorHeader(len(f.ID))
for _, v := range f.ID {
b.PutInt(v)
}
b.PutVectorHeader(len(f.RandomID))
for _, v := range f.RandomID {
b.PutLong(v)
}
if f.ToPeer == nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field to_peer is nil")
}
if err := f.ToPeer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field to_peer: %w", err)
}
if f.Flags.Has(9) {
b.PutInt(f.TopMsgID)
}
if f.Flags.Has(22) {
if f.ReplyTo == nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field reply_to is nil")
}
if err := f.ReplyTo.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field reply_to: %w", err)
}
}
if f.Flags.Has(10) {
b.PutInt(f.ScheduleDate)
}
if f.Flags.Has(24) {
b.PutInt(f.ScheduleRepeatPeriod)
}
if f.Flags.Has(13) {
if f.SendAs == nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field send_as is nil")
}
if err := f.SendAs.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field send_as: %w", err)
}
}
if f.Flags.Has(17) {
if f.QuickReplyShortcut == nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field quick_reply_shortcut is nil")
}
if err := f.QuickReplyShortcut.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field quick_reply_shortcut: %w", err)
}
}
if f.Flags.Has(18) {
b.PutLong(f.Effect)
}
if f.Flags.Has(20) {
b.PutInt(f.VideoTimestamp)
}
if f.Flags.Has(21) {
b.PutLong(f.AllowPaidStars)
}
if f.Flags.Has(23) {
if err := f.SuggestedPost.Encode(b); err != nil {
return fmt.Errorf("unable to encode messages.forwardMessages#13704a7c: field suggested_post: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (f *MessagesForwardMessagesRequest) Decode(b *bin.Buffer) error {
if f == nil {
return fmt.Errorf("can't decode messages.forwardMessages#13704a7c to nil")
}
if err := b.ConsumeID(MessagesForwardMessagesRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: %w", err)
}
return f.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (f *MessagesForwardMessagesRequest) DecodeBare(b *bin.Buffer) error {
if f == nil {
return fmt.Errorf("can't decode messages.forwardMessages#13704a7c to nil")
}
{
if err := f.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field flags: %w", err)
}
}
f.Silent = f.Flags.Has(5)
f.Background = f.Flags.Has(6)
f.WithMyScore = f.Flags.Has(8)
f.DropAuthor = f.Flags.Has(11)
f.DropMediaCaptions = f.Flags.Has(12)
f.Noforwards = f.Flags.Has(14)
f.AllowPaidFloodskip = f.Flags.Has(19)
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field from_peer: %w", err)
}
f.FromPeer = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field id: %w", err)
}
if headerLen > 0 {
f.ID = make([]int, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field id: %w", err)
}
f.ID = append(f.ID, value)
}
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field random_id: %w", err)
}
if headerLen > 0 {
f.RandomID = make([]int64, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field random_id: %w", err)
}
f.RandomID = append(f.RandomID, value)
}
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field to_peer: %w", err)
}
f.ToPeer = value
}
if f.Flags.Has(9) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field top_msg_id: %w", err)
}
f.TopMsgID = value
}
if f.Flags.Has(22) {
value, err := DecodeInputReplyTo(b)
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field reply_to: %w", err)
}
f.ReplyTo = value
}
if f.Flags.Has(10) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field schedule_date: %w", err)
}
f.ScheduleDate = value
}
if f.Flags.Has(24) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field schedule_repeat_period: %w", err)
}
f.ScheduleRepeatPeriod = value
}
if f.Flags.Has(13) {
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field send_as: %w", err)
}
f.SendAs = value
}
if f.Flags.Has(17) {
value, err := DecodeInputQuickReplyShortcut(b)
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field quick_reply_shortcut: %w", err)
}
f.QuickReplyShortcut = value
}
if f.Flags.Has(18) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field effect: %w", err)
}
f.Effect = value
}
if f.Flags.Has(20) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field video_timestamp: %w", err)
}
f.VideoTimestamp = value
}
if f.Flags.Has(21) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field allow_paid_stars: %w", err)
}
f.AllowPaidStars = value
}
if f.Flags.Has(23) {
if err := f.SuggestedPost.Decode(b); err != nil {
return fmt.Errorf("unable to decode messages.forwardMessages#13704a7c: field suggested_post: %w", err)
}
}
return nil
}
// SetSilent sets value of Silent conditional field.
func (f *MessagesForwardMessagesRequest) SetSilent(value bool) {
if value {
f.Flags.Set(5)
f.Silent = true
} else {
f.Flags.Unset(5)
f.Silent = false
}
}
// GetSilent returns value of Silent conditional field.
func (f *MessagesForwardMessagesRequest) GetSilent() (value bool) {
if f == nil {
return
}
return f.Flags.Has(5)
}
// SetBackground sets value of Background conditional field.
func (f *MessagesForwardMessagesRequest) SetBackground(value bool) {
if value {
f.Flags.Set(6)
f.Background = true
} else {
f.Flags.Unset(6)
f.Background = false
}
}
// GetBackground returns value of Background conditional field.
func (f *MessagesForwardMessagesRequest) GetBackground() (value bool) {
if f == nil {
return
}
return f.Flags.Has(6)
}
// SetWithMyScore sets value of WithMyScore conditional field.
func (f *MessagesForwardMessagesRequest) SetWithMyScore(value bool) {
if value {
f.Flags.Set(8)
f.WithMyScore = true
} else {
f.Flags.Unset(8)
f.WithMyScore = false
}
}
// GetWithMyScore returns value of WithMyScore conditional field.
func (f *MessagesForwardMessagesRequest) GetWithMyScore() (value bool) {
if f == nil {
return
}
return f.Flags.Has(8)
}
// SetDropAuthor sets value of DropAuthor conditional field.
func (f *MessagesForwardMessagesRequest) SetDropAuthor(value bool) {
if value {
f.Flags.Set(11)
f.DropAuthor = true
} else {
f.Flags.Unset(11)
f.DropAuthor = false
}
}
// GetDropAuthor returns value of DropAuthor conditional field.
func (f *MessagesForwardMessagesRequest) GetDropAuthor() (value bool) {
if f == nil {
return
}
return f.Flags.Has(11)
}
// SetDropMediaCaptions sets value of DropMediaCaptions conditional field.
func (f *MessagesForwardMessagesRequest) SetDropMediaCaptions(value bool) {
if value {
f.Flags.Set(12)
f.DropMediaCaptions = true
} else {
f.Flags.Unset(12)
f.DropMediaCaptions = false
}
}
// GetDropMediaCaptions returns value of DropMediaCaptions conditional field.
func (f *MessagesForwardMessagesRequest) GetDropMediaCaptions() (value bool) {
if f == nil {
return
}
return f.Flags.Has(12)
}
// SetNoforwards sets value of Noforwards conditional field.
func (f *MessagesForwardMessagesRequest) SetNoforwards(value bool) {
if value {
f.Flags.Set(14)
f.Noforwards = true
} else {
f.Flags.Unset(14)
f.Noforwards = false
}
}
// GetNoforwards returns value of Noforwards conditional field.
func (f *MessagesForwardMessagesRequest) GetNoforwards() (value bool) {
if f == nil {
return
}
return f.Flags.Has(14)
}
// SetAllowPaidFloodskip sets value of AllowPaidFloodskip conditional field.
func (f *MessagesForwardMessagesRequest) SetAllowPaidFloodskip(value bool) {
if value {
f.Flags.Set(19)
f.AllowPaidFloodskip = true
} else {
f.Flags.Unset(19)
f.AllowPaidFloodskip = false
}
}
// GetAllowPaidFloodskip returns value of AllowPaidFloodskip conditional field.
func (f *MessagesForwardMessagesRequest) GetAllowPaidFloodskip() (value bool) {
if f == nil {
return
}
return f.Flags.Has(19)
}
// GetFromPeer returns value of FromPeer field.
func (f *MessagesForwardMessagesRequest) GetFromPeer() (value InputPeerClass) {
if f == nil {
return
}
return f.FromPeer
}
// GetID returns value of ID field.
func (f *MessagesForwardMessagesRequest) GetID() (value []int) {
if f == nil {
return
}
return f.ID
}
// GetRandomID returns value of RandomID field.
func (f *MessagesForwardMessagesRequest) GetRandomID() (value []int64) {
if f == nil {
return
}
return f.RandomID
}
// GetToPeer returns value of ToPeer field.
func (f *MessagesForwardMessagesRequest) GetToPeer() (value InputPeerClass) {
if f == nil {
return
}
return f.ToPeer
}
// SetTopMsgID sets value of TopMsgID conditional field.
func (f *MessagesForwardMessagesRequest) SetTopMsgID(value int) {
f.Flags.Set(9)
f.TopMsgID = value
}
// GetTopMsgID returns value of TopMsgID conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetTopMsgID() (value int, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(9) {
return value, false
}
return f.TopMsgID, true
}
// SetReplyTo sets value of ReplyTo conditional field.
func (f *MessagesForwardMessagesRequest) SetReplyTo(value InputReplyToClass) {
f.Flags.Set(22)
f.ReplyTo = value
}
// GetReplyTo returns value of ReplyTo conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetReplyTo() (value InputReplyToClass, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(22) {
return value, false
}
return f.ReplyTo, true
}
// SetScheduleDate sets value of ScheduleDate conditional field.
func (f *MessagesForwardMessagesRequest) SetScheduleDate(value int) {
f.Flags.Set(10)
f.ScheduleDate = value
}
// GetScheduleDate returns value of ScheduleDate conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetScheduleDate() (value int, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(10) {
return value, false
}
return f.ScheduleDate, true
}
// SetScheduleRepeatPeriod sets value of ScheduleRepeatPeriod conditional field.
func (f *MessagesForwardMessagesRequest) SetScheduleRepeatPeriod(value int) {
f.Flags.Set(24)
f.ScheduleRepeatPeriod = value
}
// GetScheduleRepeatPeriod returns value of ScheduleRepeatPeriod conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetScheduleRepeatPeriod() (value int, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(24) {
return value, false
}
return f.ScheduleRepeatPeriod, true
}
// SetSendAs sets value of SendAs conditional field.
func (f *MessagesForwardMessagesRequest) SetSendAs(value InputPeerClass) {
f.Flags.Set(13)
f.SendAs = value
}
// GetSendAs returns value of SendAs conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetSendAs() (value InputPeerClass, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(13) {
return value, false
}
return f.SendAs, true
}
// SetQuickReplyShortcut sets value of QuickReplyShortcut conditional field.
func (f *MessagesForwardMessagesRequest) SetQuickReplyShortcut(value InputQuickReplyShortcutClass) {
f.Flags.Set(17)
f.QuickReplyShortcut = value
}
// GetQuickReplyShortcut returns value of QuickReplyShortcut conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetQuickReplyShortcut() (value InputQuickReplyShortcutClass, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(17) {
return value, false
}
return f.QuickReplyShortcut, true
}
// SetEffect sets value of Effect conditional field.
func (f *MessagesForwardMessagesRequest) SetEffect(value int64) {
f.Flags.Set(18)
f.Effect = value
}
// GetEffect returns value of Effect conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetEffect() (value int64, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(18) {
return value, false
}
return f.Effect, true
}
// SetVideoTimestamp sets value of VideoTimestamp conditional field.
func (f *MessagesForwardMessagesRequest) SetVideoTimestamp(value int) {
f.Flags.Set(20)
f.VideoTimestamp = value
}
// GetVideoTimestamp returns value of VideoTimestamp conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetVideoTimestamp() (value int, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(20) {
return value, false
}
return f.VideoTimestamp, true
}
// SetAllowPaidStars sets value of AllowPaidStars conditional field.
func (f *MessagesForwardMessagesRequest) SetAllowPaidStars(value int64) {
f.Flags.Set(21)
f.AllowPaidStars = value
}
// GetAllowPaidStars returns value of AllowPaidStars conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetAllowPaidStars() (value int64, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(21) {
return value, false
}
return f.AllowPaidStars, true
}
// SetSuggestedPost sets value of SuggestedPost conditional field.
func (f *MessagesForwardMessagesRequest) SetSuggestedPost(value SuggestedPost) {
f.Flags.Set(23)
f.SuggestedPost = value
}
// GetSuggestedPost returns value of SuggestedPost conditional field and
// boolean which is true if field was set.
func (f *MessagesForwardMessagesRequest) GetSuggestedPost() (value SuggestedPost, ok bool) {
if f == nil {
return
}
if !f.Flags.Has(23) {
return value, false
}
return f.SuggestedPost, true
}
// MessagesForwardMessages invokes method messages.forwardMessages#13704a7c returning error if any.
// Forwards messages by their IDs.
//
// Possible errors:
//
// 406 ALLOW_PAYMENT_REQUIRED: This peer only accepts paid messages »: this error is only emitted for older layers without paid messages support, so the client must be updated in order to use paid messages. .
// 403 ALLOW_PAYMENT_REQUIRED_%d: This peer charges %d Telegram Stars per message, but the allow_paid_stars was not set or its value is smaller than %d.
// 400 BROADCAST_PUBLIC_VOTERS_FORBIDDEN: You can't forward polls with public voters.
// 400 CHANNEL_INVALID: The provided channel is invalid.
// 406 CHANNEL_PRIVATE: You haven't joined this channel/supergroup.
// 403 CHAT_ADMIN_REQUIRED: You must be an admin in this chat to do this.
// 406 CHAT_FORWARDS_RESTRICTED: You can't forward messages from a protected chat.
// 403 CHAT_GUEST_SEND_FORBIDDEN: You join the discussion group before commenting, see here » for more info.
// 400 CHAT_ID_INVALID: The provided chat id is invalid.
// 400 CHAT_RESTRICTED: You can't send messages in this chat, you were restricted.
// 403 CHAT_SEND_AUDIOS_FORBIDDEN: You can't send audio messages in this chat.
// 403 CHAT_SEND_DOCS_FORBIDDEN: You can't send documents in this chat.
// 403 CHAT_SEND_GAME_FORBIDDEN: You can't send a game to this chat.
// 403 CHAT_SEND_GIFS_FORBIDDEN: You can't send gifs in this chat.
// 403 CHAT_SEND_INLINE_FORBIDDEN: You can't send inline messages in this group.
// 403 CHAT_SEND_MEDIA_FORBIDDEN: You can't send media in this chat.
// 403 CHAT_SEND_PHOTOS_FORBIDDEN: You can't send photos in this chat.
// 403 CHAT_SEND_PLAIN_FORBIDDEN: You can't send non-media (text) messages in this chat.
// 403 CHAT_SEND_POLL_FORBIDDEN: You can't send polls in this chat.
// 403 CHAT_SEND_STICKERS_FORBIDDEN: You can't send stickers in this chat.
// 403 CHAT_SEND_VIDEOS_FORBIDDEN: You can't send videos in this chat.
// 403 CHAT_SEND_VOICES_FORBIDDEN: You can't send voice recordings in this chat.
// 403 CHAT_SEND_WEBPAGE_FORBIDDEN: You can't send webpage previews to this chat.
// 403 CHAT_WRITE_FORBIDDEN: You can't write in this chat.
// 400 GROUPED_MEDIA_INVALID: Invalid grouped media.
// 400 INPUT_USER_DEACTIVATED: The specified user was deleted.
// 400 MEDIA_EMPTY: The provided media object is invalid.
// 400 MESSAGE_IDS_EMPTY: No message ids were provided.
// 400 MESSAGE_ID_INVALID: The provided message id is invalid.
// 400 MSG_ID_INVALID: Invalid message ID provided.
// 406 PAYMENT_UNSUPPORTED: A detailed description of the error will be received separately as described here ».
// 406 PEER_ID_INVALID: The provided peer id is invalid.
// 403 PREMIUM_ACCOUNT_REQUIRED: A premium account is required to execute this action.
// 403 PRIVACY_PREMIUM_REQUIRED: You need a Telegram Premium subscription to send a message to this user.
// 400 QUICK_REPLIES_BOT_NOT_ALLOWED: Quick replies cannot be used by bots.
// 400 QUICK_REPLIES_TOO_MUCH: A maximum of appConfig.quick_replies_limit shortcuts may be created, the limit was reached.
// 400 QUIZ_ANSWER_MISSING: You can forward a quiz while hiding the original author only after choosing an option in the quiz.
// 500 RANDOM_ID_DUPLICATE: You provided a random ID that was already used.
// 400 RANDOM_ID_INVALID: A provided random ID is invalid.
// 400 REPLY_MESSAGES_TOO_MUCH: Each shortcut can contain a maximum of appConfig.quick_reply_messages_limit messages, the limit was reached.
// 400 REPLY_TO_MONOFORUM_PEER_INVALID: The specified inputReplyToMonoForum.monoforum_peer_id is invalid.
// 400 SCHEDULE_BOT_NOT_ALLOWED: Bots cannot schedule messages.
// 400 SCHEDULE_DATE_TOO_LATE: You can't schedule a message this far in the future.
// 400 SCHEDULE_TOO_MUCH: There are too many scheduled messages.
// 400 SEND_AS_PEER_INVALID: You can't send messages as the specified peer.
// 400 SLOWMODE_MULTI_MSGS_DISABLED: Slowmode is enabled, you cannot forward multiple messages to this group.
// 420 SLOWMODE_WAIT_%d: Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat.
// 400 SUGGESTED_POST_PEER_INVALID: You cannot send suggested posts to non-monoforum peers.
// 406 TOPIC_CLOSED: This topic was closed, you can't send messages to it anymore.
// 406 TOPIC_DELETED: The specified topic was deleted.
// 400 USER_BANNED_IN_CHANNEL: You're banned from sending messages in supergroups/channels.
// 403 USER_IS_BLOCKED: You were blocked by this user.
// 400 USER_IS_BOT: Bots can't send messages to other bots.
// 403 VOICE_MESSAGES_FORBIDDEN: This user's privacy settings forbid you from sending voice messages.
// 400 YOU_BLOCKED_USER: You blocked this user.
//
// See https://core.telegram.org/method/messages.forwardMessages for reference.
func (c *Client) MessagesForwardMessages(ctx context.Context, request *MessagesForwardMessagesRequest) (UpdatesClass, error) {
var result UpdatesBox
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
return nil, err
}
return result.Updates, nil
}