1201 lines
36 KiB
Go
Generated
1201 lines
36 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{}
|
|
)
|
|
|
|
// MessagesSendMediaRequest represents TL type `messages.sendMedia#330e77f`.
|
|
// Send a media
|
|
//
|
|
// See https://core.telegram.org/method/messages.sendMedia for reference.
|
|
type MessagesSendMediaRequest struct {
|
|
// Flags, see TL conditional fields¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
|
|
Flags bin.Fields
|
|
// Send message silently (no notification should be triggered)
|
|
Silent bool
|
|
// Send message in background
|
|
Background bool
|
|
// Clear the draft
|
|
ClearDraft bool
|
|
// Only for bots, disallows 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
|
|
// Whether to move used stickersets to top, see here for more info on this flag »¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/stickers#recent-stickersets
|
|
UpdateStickersetsOrder bool
|
|
// If set, any eventual webpage preview will be shown on top of the message instead of at
|
|
// the bottom.
|
|
InvertMedia 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
|
|
// Destination
|
|
Peer InputPeerClass
|
|
// If set, indicates that the message should be sent in reply to the specified message or
|
|
// story.
|
|
//
|
|
// Use SetReplyTo and GetReplyTo helpers.
|
|
ReplyTo InputReplyToClass
|
|
// Attached media
|
|
Media InputMediaClass
|
|
// Caption
|
|
Message string
|
|
// Random ID to avoid resending the same message
|
|
RandomID int64
|
|
// Reply markup for bot keyboards
|
|
//
|
|
// Use SetReplyMarkup and GetReplyMarkup helpers.
|
|
ReplyMarkup ReplyMarkupClass
|
|
// Message entities¹ for styled text
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/entities
|
|
//
|
|
// Use SetEntities and GetEntities helpers.
|
|
Entities []MessageEntityClass
|
|
// Scheduled message date for scheduled messages¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/scheduled-messages
|
|
//
|
|
// Use SetScheduleDate and GetScheduleDate helpers.
|
|
ScheduleDate int
|
|
// ScheduleRepeatPeriod field of MessagesSendMediaRequest.
|
|
//
|
|
// Use SetScheduleRepeatPeriod and GetScheduleRepeatPeriod helpers.
|
|
ScheduleRepeatPeriod int
|
|
// Send this message as the specified peer
|
|
//
|
|
// Use SetSendAs and GetSendAs helpers.
|
|
SendAs InputPeerClass
|
|
// Add the message 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
|
|
// Specifies a message effect »¹ to use for the message.
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/effects
|
|
//
|
|
// Use SetEffect and GetEffect helpers.
|
|
Effect int64
|
|
// 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
|
|
}
|
|
|
|
// MessagesSendMediaRequestTypeID is TL type id of MessagesSendMediaRequest.
|
|
const MessagesSendMediaRequestTypeID = 0x330e77f
|
|
|
|
// Ensuring interfaces in compile-time for MessagesSendMediaRequest.
|
|
var (
|
|
_ bin.Encoder = &MessagesSendMediaRequest{}
|
|
_ bin.Decoder = &MessagesSendMediaRequest{}
|
|
_ bin.BareEncoder = &MessagesSendMediaRequest{}
|
|
_ bin.BareDecoder = &MessagesSendMediaRequest{}
|
|
)
|
|
|
|
func (s *MessagesSendMediaRequest) Zero() bool {
|
|
if s == nil {
|
|
return true
|
|
}
|
|
if !(s.Flags.Zero()) {
|
|
return false
|
|
}
|
|
if !(s.Silent == false) {
|
|
return false
|
|
}
|
|
if !(s.Background == false) {
|
|
return false
|
|
}
|
|
if !(s.ClearDraft == false) {
|
|
return false
|
|
}
|
|
if !(s.Noforwards == false) {
|
|
return false
|
|
}
|
|
if !(s.UpdateStickersetsOrder == false) {
|
|
return false
|
|
}
|
|
if !(s.InvertMedia == false) {
|
|
return false
|
|
}
|
|
if !(s.AllowPaidFloodskip == false) {
|
|
return false
|
|
}
|
|
if !(s.Peer == nil) {
|
|
return false
|
|
}
|
|
if !(s.ReplyTo == nil) {
|
|
return false
|
|
}
|
|
if !(s.Media == nil) {
|
|
return false
|
|
}
|
|
if !(s.Message == "") {
|
|
return false
|
|
}
|
|
if !(s.RandomID == 0) {
|
|
return false
|
|
}
|
|
if !(s.ReplyMarkup == nil) {
|
|
return false
|
|
}
|
|
if !(s.Entities == nil) {
|
|
return false
|
|
}
|
|
if !(s.ScheduleDate == 0) {
|
|
return false
|
|
}
|
|
if !(s.ScheduleRepeatPeriod == 0) {
|
|
return false
|
|
}
|
|
if !(s.SendAs == nil) {
|
|
return false
|
|
}
|
|
if !(s.QuickReplyShortcut == nil) {
|
|
return false
|
|
}
|
|
if !(s.Effect == 0) {
|
|
return false
|
|
}
|
|
if !(s.AllowPaidStars == 0) {
|
|
return false
|
|
}
|
|
if !(s.SuggestedPost.Zero()) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (s *MessagesSendMediaRequest) String() string {
|
|
if s == nil {
|
|
return "MessagesSendMediaRequest(nil)"
|
|
}
|
|
type Alias MessagesSendMediaRequest
|
|
return fmt.Sprintf("MessagesSendMediaRequest%+v", Alias(*s))
|
|
}
|
|
|
|
// FillFrom fills MessagesSendMediaRequest from given interface.
|
|
func (s *MessagesSendMediaRequest) FillFrom(from interface {
|
|
GetSilent() (value bool)
|
|
GetBackground() (value bool)
|
|
GetClearDraft() (value bool)
|
|
GetNoforwards() (value bool)
|
|
GetUpdateStickersetsOrder() (value bool)
|
|
GetInvertMedia() (value bool)
|
|
GetAllowPaidFloodskip() (value bool)
|
|
GetPeer() (value InputPeerClass)
|
|
GetReplyTo() (value InputReplyToClass, ok bool)
|
|
GetMedia() (value InputMediaClass)
|
|
GetMessage() (value string)
|
|
GetRandomID() (value int64)
|
|
GetReplyMarkup() (value ReplyMarkupClass, ok bool)
|
|
GetEntities() (value []MessageEntityClass, 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)
|
|
GetAllowPaidStars() (value int64, ok bool)
|
|
GetSuggestedPost() (value SuggestedPost, ok bool)
|
|
}) {
|
|
s.Silent = from.GetSilent()
|
|
s.Background = from.GetBackground()
|
|
s.ClearDraft = from.GetClearDraft()
|
|
s.Noforwards = from.GetNoforwards()
|
|
s.UpdateStickersetsOrder = from.GetUpdateStickersetsOrder()
|
|
s.InvertMedia = from.GetInvertMedia()
|
|
s.AllowPaidFloodskip = from.GetAllowPaidFloodskip()
|
|
s.Peer = from.GetPeer()
|
|
if val, ok := from.GetReplyTo(); ok {
|
|
s.ReplyTo = val
|
|
}
|
|
|
|
s.Media = from.GetMedia()
|
|
s.Message = from.GetMessage()
|
|
s.RandomID = from.GetRandomID()
|
|
if val, ok := from.GetReplyMarkup(); ok {
|
|
s.ReplyMarkup = val
|
|
}
|
|
|
|
if val, ok := from.GetEntities(); ok {
|
|
s.Entities = val
|
|
}
|
|
|
|
if val, ok := from.GetScheduleDate(); ok {
|
|
s.ScheduleDate = val
|
|
}
|
|
|
|
if val, ok := from.GetScheduleRepeatPeriod(); ok {
|
|
s.ScheduleRepeatPeriod = val
|
|
}
|
|
|
|
if val, ok := from.GetSendAs(); ok {
|
|
s.SendAs = val
|
|
}
|
|
|
|
if val, ok := from.GetQuickReplyShortcut(); ok {
|
|
s.QuickReplyShortcut = val
|
|
}
|
|
|
|
if val, ok := from.GetEffect(); ok {
|
|
s.Effect = val
|
|
}
|
|
|
|
if val, ok := from.GetAllowPaidStars(); ok {
|
|
s.AllowPaidStars = val
|
|
}
|
|
|
|
if val, ok := from.GetSuggestedPost(); ok {
|
|
s.SuggestedPost = val
|
|
}
|
|
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*MessagesSendMediaRequest) TypeID() uint32 {
|
|
return MessagesSendMediaRequestTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*MessagesSendMediaRequest) TypeName() string {
|
|
return "messages.sendMedia"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (s *MessagesSendMediaRequest) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "messages.sendMedia",
|
|
ID: MessagesSendMediaRequestTypeID,
|
|
}
|
|
if s == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "Silent",
|
|
SchemaName: "silent",
|
|
Null: !s.Flags.Has(5),
|
|
},
|
|
{
|
|
Name: "Background",
|
|
SchemaName: "background",
|
|
Null: !s.Flags.Has(6),
|
|
},
|
|
{
|
|
Name: "ClearDraft",
|
|
SchemaName: "clear_draft",
|
|
Null: !s.Flags.Has(7),
|
|
},
|
|
{
|
|
Name: "Noforwards",
|
|
SchemaName: "noforwards",
|
|
Null: !s.Flags.Has(14),
|
|
},
|
|
{
|
|
Name: "UpdateStickersetsOrder",
|
|
SchemaName: "update_stickersets_order",
|
|
Null: !s.Flags.Has(15),
|
|
},
|
|
{
|
|
Name: "InvertMedia",
|
|
SchemaName: "invert_media",
|
|
Null: !s.Flags.Has(16),
|
|
},
|
|
{
|
|
Name: "AllowPaidFloodskip",
|
|
SchemaName: "allow_paid_floodskip",
|
|
Null: !s.Flags.Has(19),
|
|
},
|
|
{
|
|
Name: "Peer",
|
|
SchemaName: "peer",
|
|
},
|
|
{
|
|
Name: "ReplyTo",
|
|
SchemaName: "reply_to",
|
|
Null: !s.Flags.Has(0),
|
|
},
|
|
{
|
|
Name: "Media",
|
|
SchemaName: "media",
|
|
},
|
|
{
|
|
Name: "Message",
|
|
SchemaName: "message",
|
|
},
|
|
{
|
|
Name: "RandomID",
|
|
SchemaName: "random_id",
|
|
},
|
|
{
|
|
Name: "ReplyMarkup",
|
|
SchemaName: "reply_markup",
|
|
Null: !s.Flags.Has(2),
|
|
},
|
|
{
|
|
Name: "Entities",
|
|
SchemaName: "entities",
|
|
Null: !s.Flags.Has(3),
|
|
},
|
|
{
|
|
Name: "ScheduleDate",
|
|
SchemaName: "schedule_date",
|
|
Null: !s.Flags.Has(10),
|
|
},
|
|
{
|
|
Name: "ScheduleRepeatPeriod",
|
|
SchemaName: "schedule_repeat_period",
|
|
Null: !s.Flags.Has(24),
|
|
},
|
|
{
|
|
Name: "SendAs",
|
|
SchemaName: "send_as",
|
|
Null: !s.Flags.Has(13),
|
|
},
|
|
{
|
|
Name: "QuickReplyShortcut",
|
|
SchemaName: "quick_reply_shortcut",
|
|
Null: !s.Flags.Has(17),
|
|
},
|
|
{
|
|
Name: "Effect",
|
|
SchemaName: "effect",
|
|
Null: !s.Flags.Has(18),
|
|
},
|
|
{
|
|
Name: "AllowPaidStars",
|
|
SchemaName: "allow_paid_stars",
|
|
Null: !s.Flags.Has(21),
|
|
},
|
|
{
|
|
Name: "SuggestedPost",
|
|
SchemaName: "suggested_post",
|
|
Null: !s.Flags.Has(22),
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// SetFlags sets flags for non-zero fields.
|
|
func (s *MessagesSendMediaRequest) SetFlags() {
|
|
if !(s.Silent == false) {
|
|
s.Flags.Set(5)
|
|
}
|
|
if !(s.Background == false) {
|
|
s.Flags.Set(6)
|
|
}
|
|
if !(s.ClearDraft == false) {
|
|
s.Flags.Set(7)
|
|
}
|
|
if !(s.Noforwards == false) {
|
|
s.Flags.Set(14)
|
|
}
|
|
if !(s.UpdateStickersetsOrder == false) {
|
|
s.Flags.Set(15)
|
|
}
|
|
if !(s.InvertMedia == false) {
|
|
s.Flags.Set(16)
|
|
}
|
|
if !(s.AllowPaidFloodskip == false) {
|
|
s.Flags.Set(19)
|
|
}
|
|
if !(s.ReplyTo == nil) {
|
|
s.Flags.Set(0)
|
|
}
|
|
if !(s.ReplyMarkup == nil) {
|
|
s.Flags.Set(2)
|
|
}
|
|
if !(s.Entities == nil) {
|
|
s.Flags.Set(3)
|
|
}
|
|
if !(s.ScheduleDate == 0) {
|
|
s.Flags.Set(10)
|
|
}
|
|
if !(s.ScheduleRepeatPeriod == 0) {
|
|
s.Flags.Set(24)
|
|
}
|
|
if !(s.SendAs == nil) {
|
|
s.Flags.Set(13)
|
|
}
|
|
if !(s.QuickReplyShortcut == nil) {
|
|
s.Flags.Set(17)
|
|
}
|
|
if !(s.Effect == 0) {
|
|
s.Flags.Set(18)
|
|
}
|
|
if !(s.AllowPaidStars == 0) {
|
|
s.Flags.Set(21)
|
|
}
|
|
if !(s.SuggestedPost.Zero()) {
|
|
s.Flags.Set(22)
|
|
}
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (s *MessagesSendMediaRequest) Encode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode messages.sendMedia#330e77f as nil")
|
|
}
|
|
b.PutID(MessagesSendMediaRequestTypeID)
|
|
return s.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (s *MessagesSendMediaRequest) EncodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode messages.sendMedia#330e77f as nil")
|
|
}
|
|
s.SetFlags()
|
|
if err := s.Flags.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field flags: %w", err)
|
|
}
|
|
if s.Peer == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field peer is nil")
|
|
}
|
|
if err := s.Peer.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field peer: %w", err)
|
|
}
|
|
if s.Flags.Has(0) {
|
|
if s.ReplyTo == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field reply_to is nil")
|
|
}
|
|
if err := s.ReplyTo.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field reply_to: %w", err)
|
|
}
|
|
}
|
|
if s.Media == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field media is nil")
|
|
}
|
|
if err := s.Media.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field media: %w", err)
|
|
}
|
|
b.PutString(s.Message)
|
|
b.PutLong(s.RandomID)
|
|
if s.Flags.Has(2) {
|
|
if s.ReplyMarkup == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field reply_markup is nil")
|
|
}
|
|
if err := s.ReplyMarkup.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field reply_markup: %w", err)
|
|
}
|
|
}
|
|
if s.Flags.Has(3) {
|
|
b.PutVectorHeader(len(s.Entities))
|
|
for idx, v := range s.Entities {
|
|
if v == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field entities element with index %d is nil", idx)
|
|
}
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field entities element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
}
|
|
if s.Flags.Has(10) {
|
|
b.PutInt(s.ScheduleDate)
|
|
}
|
|
if s.Flags.Has(24) {
|
|
b.PutInt(s.ScheduleRepeatPeriod)
|
|
}
|
|
if s.Flags.Has(13) {
|
|
if s.SendAs == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field send_as is nil")
|
|
}
|
|
if err := s.SendAs.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field send_as: %w", err)
|
|
}
|
|
}
|
|
if s.Flags.Has(17) {
|
|
if s.QuickReplyShortcut == nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field quick_reply_shortcut is nil")
|
|
}
|
|
if err := s.QuickReplyShortcut.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field quick_reply_shortcut: %w", err)
|
|
}
|
|
}
|
|
if s.Flags.Has(18) {
|
|
b.PutLong(s.Effect)
|
|
}
|
|
if s.Flags.Has(21) {
|
|
b.PutLong(s.AllowPaidStars)
|
|
}
|
|
if s.Flags.Has(22) {
|
|
if err := s.SuggestedPost.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode messages.sendMedia#330e77f: field suggested_post: %w", err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (s *MessagesSendMediaRequest) Decode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode messages.sendMedia#330e77f to nil")
|
|
}
|
|
if err := b.ConsumeID(MessagesSendMediaRequestTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: %w", err)
|
|
}
|
|
return s.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (s *MessagesSendMediaRequest) DecodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode messages.sendMedia#330e77f to nil")
|
|
}
|
|
{
|
|
if err := s.Flags.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field flags: %w", err)
|
|
}
|
|
}
|
|
s.Silent = s.Flags.Has(5)
|
|
s.Background = s.Flags.Has(6)
|
|
s.ClearDraft = s.Flags.Has(7)
|
|
s.Noforwards = s.Flags.Has(14)
|
|
s.UpdateStickersetsOrder = s.Flags.Has(15)
|
|
s.InvertMedia = s.Flags.Has(16)
|
|
s.AllowPaidFloodskip = s.Flags.Has(19)
|
|
{
|
|
value, err := DecodeInputPeer(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field peer: %w", err)
|
|
}
|
|
s.Peer = value
|
|
}
|
|
if s.Flags.Has(0) {
|
|
value, err := DecodeInputReplyTo(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field reply_to: %w", err)
|
|
}
|
|
s.ReplyTo = value
|
|
}
|
|
{
|
|
value, err := DecodeInputMedia(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field media: %w", err)
|
|
}
|
|
s.Media = value
|
|
}
|
|
{
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field message: %w", err)
|
|
}
|
|
s.Message = value
|
|
}
|
|
{
|
|
value, err := b.Long()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field random_id: %w", err)
|
|
}
|
|
s.RandomID = value
|
|
}
|
|
if s.Flags.Has(2) {
|
|
value, err := DecodeReplyMarkup(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field reply_markup: %w", err)
|
|
}
|
|
s.ReplyMarkup = value
|
|
}
|
|
if s.Flags.Has(3) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field entities: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.Entities = make([]MessageEntityClass, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
value, err := DecodeMessageEntity(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field entities: %w", err)
|
|
}
|
|
s.Entities = append(s.Entities, value)
|
|
}
|
|
}
|
|
if s.Flags.Has(10) {
|
|
value, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field schedule_date: %w", err)
|
|
}
|
|
s.ScheduleDate = value
|
|
}
|
|
if s.Flags.Has(24) {
|
|
value, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field schedule_repeat_period: %w", err)
|
|
}
|
|
s.ScheduleRepeatPeriod = value
|
|
}
|
|
if s.Flags.Has(13) {
|
|
value, err := DecodeInputPeer(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field send_as: %w", err)
|
|
}
|
|
s.SendAs = value
|
|
}
|
|
if s.Flags.Has(17) {
|
|
value, err := DecodeInputQuickReplyShortcut(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field quick_reply_shortcut: %w", err)
|
|
}
|
|
s.QuickReplyShortcut = value
|
|
}
|
|
if s.Flags.Has(18) {
|
|
value, err := b.Long()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field effect: %w", err)
|
|
}
|
|
s.Effect = value
|
|
}
|
|
if s.Flags.Has(21) {
|
|
value, err := b.Long()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field allow_paid_stars: %w", err)
|
|
}
|
|
s.AllowPaidStars = value
|
|
}
|
|
if s.Flags.Has(22) {
|
|
if err := s.SuggestedPost.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode messages.sendMedia#330e77f: field suggested_post: %w", err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetSilent sets value of Silent conditional field.
|
|
func (s *MessagesSendMediaRequest) SetSilent(value bool) {
|
|
if value {
|
|
s.Flags.Set(5)
|
|
s.Silent = true
|
|
} else {
|
|
s.Flags.Unset(5)
|
|
s.Silent = false
|
|
}
|
|
}
|
|
|
|
// GetSilent returns value of Silent conditional field.
|
|
func (s *MessagesSendMediaRequest) GetSilent() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(5)
|
|
}
|
|
|
|
// SetBackground sets value of Background conditional field.
|
|
func (s *MessagesSendMediaRequest) SetBackground(value bool) {
|
|
if value {
|
|
s.Flags.Set(6)
|
|
s.Background = true
|
|
} else {
|
|
s.Flags.Unset(6)
|
|
s.Background = false
|
|
}
|
|
}
|
|
|
|
// GetBackground returns value of Background conditional field.
|
|
func (s *MessagesSendMediaRequest) GetBackground() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(6)
|
|
}
|
|
|
|
// SetClearDraft sets value of ClearDraft conditional field.
|
|
func (s *MessagesSendMediaRequest) SetClearDraft(value bool) {
|
|
if value {
|
|
s.Flags.Set(7)
|
|
s.ClearDraft = true
|
|
} else {
|
|
s.Flags.Unset(7)
|
|
s.ClearDraft = false
|
|
}
|
|
}
|
|
|
|
// GetClearDraft returns value of ClearDraft conditional field.
|
|
func (s *MessagesSendMediaRequest) GetClearDraft() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(7)
|
|
}
|
|
|
|
// SetNoforwards sets value of Noforwards conditional field.
|
|
func (s *MessagesSendMediaRequest) SetNoforwards(value bool) {
|
|
if value {
|
|
s.Flags.Set(14)
|
|
s.Noforwards = true
|
|
} else {
|
|
s.Flags.Unset(14)
|
|
s.Noforwards = false
|
|
}
|
|
}
|
|
|
|
// GetNoforwards returns value of Noforwards conditional field.
|
|
func (s *MessagesSendMediaRequest) GetNoforwards() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(14)
|
|
}
|
|
|
|
// SetUpdateStickersetsOrder sets value of UpdateStickersetsOrder conditional field.
|
|
func (s *MessagesSendMediaRequest) SetUpdateStickersetsOrder(value bool) {
|
|
if value {
|
|
s.Flags.Set(15)
|
|
s.UpdateStickersetsOrder = true
|
|
} else {
|
|
s.Flags.Unset(15)
|
|
s.UpdateStickersetsOrder = false
|
|
}
|
|
}
|
|
|
|
// GetUpdateStickersetsOrder returns value of UpdateStickersetsOrder conditional field.
|
|
func (s *MessagesSendMediaRequest) GetUpdateStickersetsOrder() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(15)
|
|
}
|
|
|
|
// SetInvertMedia sets value of InvertMedia conditional field.
|
|
func (s *MessagesSendMediaRequest) SetInvertMedia(value bool) {
|
|
if value {
|
|
s.Flags.Set(16)
|
|
s.InvertMedia = true
|
|
} else {
|
|
s.Flags.Unset(16)
|
|
s.InvertMedia = false
|
|
}
|
|
}
|
|
|
|
// GetInvertMedia returns value of InvertMedia conditional field.
|
|
func (s *MessagesSendMediaRequest) GetInvertMedia() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(16)
|
|
}
|
|
|
|
// SetAllowPaidFloodskip sets value of AllowPaidFloodskip conditional field.
|
|
func (s *MessagesSendMediaRequest) SetAllowPaidFloodskip(value bool) {
|
|
if value {
|
|
s.Flags.Set(19)
|
|
s.AllowPaidFloodskip = true
|
|
} else {
|
|
s.Flags.Unset(19)
|
|
s.AllowPaidFloodskip = false
|
|
}
|
|
}
|
|
|
|
// GetAllowPaidFloodskip returns value of AllowPaidFloodskip conditional field.
|
|
func (s *MessagesSendMediaRequest) GetAllowPaidFloodskip() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(19)
|
|
}
|
|
|
|
// GetPeer returns value of Peer field.
|
|
func (s *MessagesSendMediaRequest) GetPeer() (value InputPeerClass) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Peer
|
|
}
|
|
|
|
// SetReplyTo sets value of ReplyTo conditional field.
|
|
func (s *MessagesSendMediaRequest) SetReplyTo(value InputReplyToClass) {
|
|
s.Flags.Set(0)
|
|
s.ReplyTo = value
|
|
}
|
|
|
|
// GetReplyTo returns value of ReplyTo conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetReplyTo() (value InputReplyToClass, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(0) {
|
|
return value, false
|
|
}
|
|
return s.ReplyTo, true
|
|
}
|
|
|
|
// GetMedia returns value of Media field.
|
|
func (s *MessagesSendMediaRequest) GetMedia() (value InputMediaClass) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Media
|
|
}
|
|
|
|
// GetMessage returns value of Message field.
|
|
func (s *MessagesSendMediaRequest) GetMessage() (value string) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Message
|
|
}
|
|
|
|
// GetRandomID returns value of RandomID field.
|
|
func (s *MessagesSendMediaRequest) GetRandomID() (value int64) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.RandomID
|
|
}
|
|
|
|
// SetReplyMarkup sets value of ReplyMarkup conditional field.
|
|
func (s *MessagesSendMediaRequest) SetReplyMarkup(value ReplyMarkupClass) {
|
|
s.Flags.Set(2)
|
|
s.ReplyMarkup = value
|
|
}
|
|
|
|
// GetReplyMarkup returns value of ReplyMarkup conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetReplyMarkup() (value ReplyMarkupClass, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(2) {
|
|
return value, false
|
|
}
|
|
return s.ReplyMarkup, true
|
|
}
|
|
|
|
// SetEntities sets value of Entities conditional field.
|
|
func (s *MessagesSendMediaRequest) SetEntities(value []MessageEntityClass) {
|
|
s.Flags.Set(3)
|
|
s.Entities = value
|
|
}
|
|
|
|
// GetEntities returns value of Entities conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetEntities() (value []MessageEntityClass, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(3) {
|
|
return value, false
|
|
}
|
|
return s.Entities, true
|
|
}
|
|
|
|
// SetScheduleDate sets value of ScheduleDate conditional field.
|
|
func (s *MessagesSendMediaRequest) SetScheduleDate(value int) {
|
|
s.Flags.Set(10)
|
|
s.ScheduleDate = value
|
|
}
|
|
|
|
// GetScheduleDate returns value of ScheduleDate conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetScheduleDate() (value int, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(10) {
|
|
return value, false
|
|
}
|
|
return s.ScheduleDate, true
|
|
}
|
|
|
|
// SetScheduleRepeatPeriod sets value of ScheduleRepeatPeriod conditional field.
|
|
func (s *MessagesSendMediaRequest) SetScheduleRepeatPeriod(value int) {
|
|
s.Flags.Set(24)
|
|
s.ScheduleRepeatPeriod = value
|
|
}
|
|
|
|
// GetScheduleRepeatPeriod returns value of ScheduleRepeatPeriod conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetScheduleRepeatPeriod() (value int, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(24) {
|
|
return value, false
|
|
}
|
|
return s.ScheduleRepeatPeriod, true
|
|
}
|
|
|
|
// SetSendAs sets value of SendAs conditional field.
|
|
func (s *MessagesSendMediaRequest) SetSendAs(value InputPeerClass) {
|
|
s.Flags.Set(13)
|
|
s.SendAs = value
|
|
}
|
|
|
|
// GetSendAs returns value of SendAs conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetSendAs() (value InputPeerClass, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(13) {
|
|
return value, false
|
|
}
|
|
return s.SendAs, true
|
|
}
|
|
|
|
// SetQuickReplyShortcut sets value of QuickReplyShortcut conditional field.
|
|
func (s *MessagesSendMediaRequest) SetQuickReplyShortcut(value InputQuickReplyShortcutClass) {
|
|
s.Flags.Set(17)
|
|
s.QuickReplyShortcut = value
|
|
}
|
|
|
|
// GetQuickReplyShortcut returns value of QuickReplyShortcut conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetQuickReplyShortcut() (value InputQuickReplyShortcutClass, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(17) {
|
|
return value, false
|
|
}
|
|
return s.QuickReplyShortcut, true
|
|
}
|
|
|
|
// SetEffect sets value of Effect conditional field.
|
|
func (s *MessagesSendMediaRequest) SetEffect(value int64) {
|
|
s.Flags.Set(18)
|
|
s.Effect = value
|
|
}
|
|
|
|
// GetEffect returns value of Effect conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetEffect() (value int64, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(18) {
|
|
return value, false
|
|
}
|
|
return s.Effect, true
|
|
}
|
|
|
|
// SetAllowPaidStars sets value of AllowPaidStars conditional field.
|
|
func (s *MessagesSendMediaRequest) SetAllowPaidStars(value int64) {
|
|
s.Flags.Set(21)
|
|
s.AllowPaidStars = value
|
|
}
|
|
|
|
// GetAllowPaidStars returns value of AllowPaidStars conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetAllowPaidStars() (value int64, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(21) {
|
|
return value, false
|
|
}
|
|
return s.AllowPaidStars, true
|
|
}
|
|
|
|
// SetSuggestedPost sets value of SuggestedPost conditional field.
|
|
func (s *MessagesSendMediaRequest) SetSuggestedPost(value SuggestedPost) {
|
|
s.Flags.Set(22)
|
|
s.SuggestedPost = value
|
|
}
|
|
|
|
// GetSuggestedPost returns value of SuggestedPost conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *MessagesSendMediaRequest) GetSuggestedPost() (value SuggestedPost, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(22) {
|
|
return value, false
|
|
}
|
|
return s.SuggestedPost, true
|
|
}
|
|
|
|
// MapEntities returns field Entities wrapped in MessageEntityClassArray helper.
|
|
func (s *MessagesSendMediaRequest) MapEntities() (value MessageEntityClassArray, ok bool) {
|
|
if !s.Flags.Has(3) {
|
|
return value, false
|
|
}
|
|
return MessageEntityClassArray(s.Entities), true
|
|
}
|
|
|
|
// MessagesSendMedia invokes method messages.sendMedia#330e77f returning error if any.
|
|
// Send a media
|
|
//
|
|
// 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 BOT_GAMES_DISABLED: Games can't be sent to channels.
|
|
// 400 BOT_PAYMENTS_DISABLED: Please enable bot payments in botfather before calling this method.
|
|
// 400 BROADCAST_PUBLIC_VOTERS_FORBIDDEN: You can't forward polls with public voters.
|
|
// 400 BUSINESS_CONNECTION_INVALID: The connection_id passed to the wrapping invokeWithBusinessConnection call is invalid.
|
|
// 400 BUSINESS_PEER_INVALID: Messages can't be set to the specified peer through the current business connection.
|
|
// 400 BUTTON_COPY_TEXT_INVALID: The specified keyboardButtonCopy.copy_text is invalid.
|
|
// 400 BUTTON_DATA_INVALID: The data of one or more of the buttons you provided is invalid.
|
|
// 400 BUTTON_POS_INVALID: The position of one of the keyboard buttons is invalid (i.e. a Game or Pay button not in the first position, and so on...).
|
|
// 400 BUTTON_TYPE_INVALID: The type of one or more of the buttons you provided is invalid.
|
|
// 400 BUTTON_URL_INVALID: Button URL invalid.
|
|
// 400 BUTTON_USER_PRIVACY_RESTRICTED: The privacy setting of the user specified in a inputKeyboardButtonUserProfile button do not allow creating such a button.
|
|
// 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.
|
|
// 400 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_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_GIFS_FORBIDDEN: You can't send gifs in this chat.
|
|
// 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_ROUNDVIDEOS_FORBIDDEN: You can't send round videos to 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_WRITE_FORBIDDEN: You can't write in this chat.
|
|
// 400 CURRENCY_TOTAL_AMOUNT_INVALID: The total amount of all prices is invalid.
|
|
// 400 DOCUMENT_INVALID: The specified document is invalid.
|
|
// 400 EFFECT_ID_INVALID: The specified effect ID is invalid.
|
|
// 400 EMOTICON_INVALID: The specified emoji is invalid.
|
|
// 400 ENTITY_BOUNDS_INVALID: A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length.
|
|
// 400 EXTENDED_MEDIA_AMOUNT_INVALID: The specified stars_amount of the passed inputMediaPaidMedia is invalid.
|
|
// 400 EXTENDED_MEDIA_INVALID: The specified paid media is invalid.
|
|
// 400 EXTERNAL_URL_INVALID: External URL invalid.
|
|
// 400 FILE_PARTS_INVALID: The number of file parts is invalid.
|
|
// 400 FILE_PART_LENGTH_INVALID: The length of a file part is invalid.
|
|
// 400 FILE_REFERENCE_EMPTY: An empty file reference was specified.
|
|
// 400 FILE_REFERENCE_EXPIRED: File reference expired, it must be refetched as described in the documentation.
|
|
// 400 GAME_BOT_INVALID: Bots can't send another bot's game.
|
|
// 400 IMAGE_PROCESS_FAILED: Failure while processing image.
|
|
// 400 INPUT_FILE_INVALID: The specified InputFile is invalid.
|
|
// 400 INPUT_USER_DEACTIVATED: The specified user was deleted.
|
|
// 400 INVOICE_PAYLOAD_INVALID: The specified invoice payload is invalid.
|
|
// 400 MD5_CHECKSUM_INVALID: The MD5 checksums do not match.
|
|
// 400 MEDIA_CAPTION_TOO_LONG: The caption is too long.
|
|
// 400 MEDIA_EMPTY: The provided media object is invalid.
|
|
// 400 MEDIA_INVALID: Media invalid.
|
|
// 400 MESSAGE_EMPTY: The provided message is empty.
|
|
// 400 MSG_ID_INVALID: Invalid message ID provided.
|
|
// 400 PAYMENT_PROVIDER_INVALID: The specified payment provider is invalid.
|
|
// 406 PEER_ID_INVALID: The provided peer id is invalid.
|
|
// 400 PHOTO_EXT_INVALID: The extension of the photo is invalid.
|
|
// 400 PHOTO_INVALID_DIMENSIONS: The photo dimensions are invalid.
|
|
// 400 PHOTO_SAVE_FILE_INVALID: Internal issues, try again later.
|
|
// 400 POLL_ANSWERS_INVALID: Invalid poll answers were provided.
|
|
// 400 POLL_ANSWER_INVALID: One of the poll answers is not acceptable.
|
|
// 400 POLL_OPTION_DUPLICATE: Duplicate poll options provided.
|
|
// 400 POLL_OPTION_INVALID: Invalid poll option provided.
|
|
// 400 POLL_QUESTION_INVALID: One of the poll questions is not acceptable.
|
|
// 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_CORRECT_ANSWERS_EMPTY: No correct quiz answer was specified.
|
|
// 400 QUIZ_CORRECT_ANSWERS_TOO_MUCH: You specified too many correct answers in a quiz, quizzes can only have one right answer!
|
|
// 400 QUIZ_CORRECT_ANSWER_INVALID: An invalid value was provided to the correct_answers field.
|
|
// 400 QUIZ_MULTIPLE_INVALID: Quizzes can't have the multiple_choice flag set!
|
|
// 500 RANDOM_ID_DUPLICATE: You provided a random ID that was already used.
|
|
// 400 REPLY_MARKUP_BUY_EMPTY: Reply markup for buy button empty.
|
|
// 400 REPLY_MARKUP_GAME_EMPTY: A game message is being edited, but the newly provided keyboard doesn't have a keyboardButtonGame button.
|
|
// 400 REPLY_MARKUP_INVALID: The provided reply markup is invalid.
|
|
// 400 REPLY_MARKUP_TOO_LONG: The specified reply_markup is too long.
|
|
// 400 REPLY_MESSAGES_TOO_MUCH: Each shortcut can contain a maximum of appConfig.quick_reply_messages_limit messages, the limit was reached.
|
|
// 400 REPLY_MESSAGE_ID_INVALID: The specified reply-to message 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.
|
|
// 420 SLOWMODE_WAIT_%d: Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat.
|
|
// 400 STARS_INVOICE_INVALID: The specified Telegram Star invoice is invalid.
|
|
// 400 STORY_ID_INVALID: The specified story ID is invalid.
|
|
// 400 SUBSCRIPTION_EXPORT_MISSING: You cannot send a bot subscription invoice directly, you may only create invoice links using payments.exportInvoice.
|
|
// 400 SUGGESTED_POST_PEER_INVALID: You cannot send suggested posts to non-monoforum peers.
|
|
// 400 TERMS_URL_INVALID: The specified invoice.terms_url is invalid.
|
|
// 400 TODO_ITEMS_EMPTY: A checklist was specified, but no checklist items were passed.
|
|
// 400 TODO_ITEM_DUPLICATE: Duplicate checklist items detected.
|
|
// 406 TOPIC_CLOSED: This topic was closed, you can't send messages to it anymore.
|
|
// 406 TOPIC_DELETED: The specified topic was deleted.
|
|
// 400 TTL_MEDIA_INVALID: Invalid media Time To Live was provided.
|
|
// 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.
|
|
// 400 VIDEO_CONTENT_TYPE_INVALID: The video's content type is invalid.
|
|
// 400 VOICE_MESSAGES_FORBIDDEN: This user's privacy settings forbid you from sending voice messages.
|
|
// 400 WEBDOCUMENT_MIME_INVALID: Invalid webdocument mime type provided.
|
|
// 400 WEBPAGE_CURL_FAILED: Failure while fetching the webpage with cURL.
|
|
// 400 WEBPAGE_MEDIA_EMPTY: Webpage media empty.
|
|
// 400 WEBPAGE_NOT_FOUND: A preview for the specified webpage url could not be generated.
|
|
// 400 WEBPAGE_URL_INVALID: The specified webpage url is invalid.
|
|
// 400 YOU_BLOCKED_USER: You blocked this user.
|
|
//
|
|
// See https://core.telegram.org/method/messages.sendMedia for reference.
|
|
func (c *Client) MessagesSendMedia(ctx context.Context, request *MessagesSendMediaRequest) (UpdatesClass, error) {
|
|
var result UpdatesBox
|
|
|
|
if err := c.rpc.Invoke(ctx, request, &result); err != nil {
|
|
return nil, err
|
|
}
|
|
return result.Updates, nil
|
|
}
|