7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
593 lines
16 KiB
Go
Generated
593 lines
16 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{}
|
|
)
|
|
|
|
// AvailableReaction represents TL type `availableReaction#c077ec01`.
|
|
// Animations associated with a message reaction
|
|
//
|
|
// See https://core.telegram.org/constructor/availableReaction for reference.
|
|
type AvailableReaction struct {
|
|
// Flags, see TL conditional fields¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
|
|
Flags bin.Fields
|
|
// If not set, the reaction can be added to new messages and enabled in chats.
|
|
Inactive bool
|
|
// Whether this reaction can only be used by Telegram Premium users
|
|
Premium bool
|
|
// Reaction emoji
|
|
Reaction string
|
|
// Reaction description
|
|
Title string
|
|
// Static icon for the reaction
|
|
StaticIcon DocumentClass
|
|
// The animated sticker to show when the user opens the reaction dropdown
|
|
AppearAnimation DocumentClass
|
|
// The animated sticker to show when the user hovers over the reaction
|
|
SelectAnimation DocumentClass
|
|
// The animated sticker to show when the reaction is chosen and activated
|
|
ActivateAnimation DocumentClass
|
|
// The background effect (still an animated sticker) to play under the activate_animation
|
|
// when the reaction is chosen and activated
|
|
EffectAnimation DocumentClass
|
|
// The animation that plays around the button when you press an existing reaction (played
|
|
// together with center_icon).
|
|
//
|
|
// Use SetAroundAnimation and GetAroundAnimation helpers.
|
|
AroundAnimation DocumentClass
|
|
// The animation of the emoji inside the button when you press an existing reaction
|
|
// (played together with around_animation).
|
|
//
|
|
// Use SetCenterIcon and GetCenterIcon helpers.
|
|
CenterIcon DocumentClass
|
|
}
|
|
|
|
// AvailableReactionTypeID is TL type id of AvailableReaction.
|
|
const AvailableReactionTypeID = 0xc077ec01
|
|
|
|
// Ensuring interfaces in compile-time for AvailableReaction.
|
|
var (
|
|
_ bin.Encoder = &AvailableReaction{}
|
|
_ bin.Decoder = &AvailableReaction{}
|
|
_ bin.BareEncoder = &AvailableReaction{}
|
|
_ bin.BareDecoder = &AvailableReaction{}
|
|
)
|
|
|
|
func (a *AvailableReaction) Zero() bool {
|
|
if a == nil {
|
|
return true
|
|
}
|
|
if !(a.Flags.Zero()) {
|
|
return false
|
|
}
|
|
if !(a.Inactive == false) {
|
|
return false
|
|
}
|
|
if !(a.Premium == false) {
|
|
return false
|
|
}
|
|
if !(a.Reaction == "") {
|
|
return false
|
|
}
|
|
if !(a.Title == "") {
|
|
return false
|
|
}
|
|
if !(a.StaticIcon == nil) {
|
|
return false
|
|
}
|
|
if !(a.AppearAnimation == nil) {
|
|
return false
|
|
}
|
|
if !(a.SelectAnimation == nil) {
|
|
return false
|
|
}
|
|
if !(a.ActivateAnimation == nil) {
|
|
return false
|
|
}
|
|
if !(a.EffectAnimation == nil) {
|
|
return false
|
|
}
|
|
if !(a.AroundAnimation == nil) {
|
|
return false
|
|
}
|
|
if !(a.CenterIcon == nil) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (a *AvailableReaction) String() string {
|
|
if a == nil {
|
|
return "AvailableReaction(nil)"
|
|
}
|
|
type Alias AvailableReaction
|
|
return fmt.Sprintf("AvailableReaction%+v", Alias(*a))
|
|
}
|
|
|
|
// FillFrom fills AvailableReaction from given interface.
|
|
func (a *AvailableReaction) FillFrom(from interface {
|
|
GetInactive() (value bool)
|
|
GetPremium() (value bool)
|
|
GetReaction() (value string)
|
|
GetTitle() (value string)
|
|
GetStaticIcon() (value DocumentClass)
|
|
GetAppearAnimation() (value DocumentClass)
|
|
GetSelectAnimation() (value DocumentClass)
|
|
GetActivateAnimation() (value DocumentClass)
|
|
GetEffectAnimation() (value DocumentClass)
|
|
GetAroundAnimation() (value DocumentClass, ok bool)
|
|
GetCenterIcon() (value DocumentClass, ok bool)
|
|
}) {
|
|
a.Inactive = from.GetInactive()
|
|
a.Premium = from.GetPremium()
|
|
a.Reaction = from.GetReaction()
|
|
a.Title = from.GetTitle()
|
|
a.StaticIcon = from.GetStaticIcon()
|
|
a.AppearAnimation = from.GetAppearAnimation()
|
|
a.SelectAnimation = from.GetSelectAnimation()
|
|
a.ActivateAnimation = from.GetActivateAnimation()
|
|
a.EffectAnimation = from.GetEffectAnimation()
|
|
if val, ok := from.GetAroundAnimation(); ok {
|
|
a.AroundAnimation = val
|
|
}
|
|
|
|
if val, ok := from.GetCenterIcon(); ok {
|
|
a.CenterIcon = val
|
|
}
|
|
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*AvailableReaction) TypeID() uint32 {
|
|
return AvailableReactionTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*AvailableReaction) TypeName() string {
|
|
return "availableReaction"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (a *AvailableReaction) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "availableReaction",
|
|
ID: AvailableReactionTypeID,
|
|
}
|
|
if a == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "Inactive",
|
|
SchemaName: "inactive",
|
|
Null: !a.Flags.Has(0),
|
|
},
|
|
{
|
|
Name: "Premium",
|
|
SchemaName: "premium",
|
|
Null: !a.Flags.Has(2),
|
|
},
|
|
{
|
|
Name: "Reaction",
|
|
SchemaName: "reaction",
|
|
},
|
|
{
|
|
Name: "Title",
|
|
SchemaName: "title",
|
|
},
|
|
{
|
|
Name: "StaticIcon",
|
|
SchemaName: "static_icon",
|
|
},
|
|
{
|
|
Name: "AppearAnimation",
|
|
SchemaName: "appear_animation",
|
|
},
|
|
{
|
|
Name: "SelectAnimation",
|
|
SchemaName: "select_animation",
|
|
},
|
|
{
|
|
Name: "ActivateAnimation",
|
|
SchemaName: "activate_animation",
|
|
},
|
|
{
|
|
Name: "EffectAnimation",
|
|
SchemaName: "effect_animation",
|
|
},
|
|
{
|
|
Name: "AroundAnimation",
|
|
SchemaName: "around_animation",
|
|
Null: !a.Flags.Has(1),
|
|
},
|
|
{
|
|
Name: "CenterIcon",
|
|
SchemaName: "center_icon",
|
|
Null: !a.Flags.Has(1),
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// SetFlags sets flags for non-zero fields.
|
|
func (a *AvailableReaction) SetFlags() {
|
|
if !(a.Inactive == false) {
|
|
a.Flags.Set(0)
|
|
}
|
|
if !(a.Premium == false) {
|
|
a.Flags.Set(2)
|
|
}
|
|
if !(a.AroundAnimation == nil) {
|
|
a.Flags.Set(1)
|
|
}
|
|
if !(a.CenterIcon == nil) {
|
|
a.Flags.Set(1)
|
|
}
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (a *AvailableReaction) Encode(b *bin.Buffer) error {
|
|
if a == nil {
|
|
return fmt.Errorf("can't encode availableReaction#c077ec01 as nil")
|
|
}
|
|
b.PutID(AvailableReactionTypeID)
|
|
return a.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (a *AvailableReaction) EncodeBare(b *bin.Buffer) error {
|
|
if a == nil {
|
|
return fmt.Errorf("can't encode availableReaction#c077ec01 as nil")
|
|
}
|
|
a.SetFlags()
|
|
if err := a.Flags.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field flags: %w", err)
|
|
}
|
|
b.PutString(a.Reaction)
|
|
b.PutString(a.Title)
|
|
if a.StaticIcon == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field static_icon is nil")
|
|
}
|
|
if err := a.StaticIcon.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field static_icon: %w", err)
|
|
}
|
|
if a.AppearAnimation == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field appear_animation is nil")
|
|
}
|
|
if err := a.AppearAnimation.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field appear_animation: %w", err)
|
|
}
|
|
if a.SelectAnimation == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field select_animation is nil")
|
|
}
|
|
if err := a.SelectAnimation.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field select_animation: %w", err)
|
|
}
|
|
if a.ActivateAnimation == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field activate_animation is nil")
|
|
}
|
|
if err := a.ActivateAnimation.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field activate_animation: %w", err)
|
|
}
|
|
if a.EffectAnimation == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field effect_animation is nil")
|
|
}
|
|
if err := a.EffectAnimation.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field effect_animation: %w", err)
|
|
}
|
|
if a.Flags.Has(1) {
|
|
if a.AroundAnimation == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field around_animation is nil")
|
|
}
|
|
if err := a.AroundAnimation.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field around_animation: %w", err)
|
|
}
|
|
}
|
|
if a.Flags.Has(1) {
|
|
if a.CenterIcon == nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field center_icon is nil")
|
|
}
|
|
if err := a.CenterIcon.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode availableReaction#c077ec01: field center_icon: %w", err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (a *AvailableReaction) Decode(b *bin.Buffer) error {
|
|
if a == nil {
|
|
return fmt.Errorf("can't decode availableReaction#c077ec01 to nil")
|
|
}
|
|
if err := b.ConsumeID(AvailableReactionTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: %w", err)
|
|
}
|
|
return a.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (a *AvailableReaction) DecodeBare(b *bin.Buffer) error {
|
|
if a == nil {
|
|
return fmt.Errorf("can't decode availableReaction#c077ec01 to nil")
|
|
}
|
|
{
|
|
if err := a.Flags.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field flags: %w", err)
|
|
}
|
|
}
|
|
a.Inactive = a.Flags.Has(0)
|
|
a.Premium = a.Flags.Has(2)
|
|
{
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field reaction: %w", err)
|
|
}
|
|
a.Reaction = value
|
|
}
|
|
{
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field title: %w", err)
|
|
}
|
|
a.Title = value
|
|
}
|
|
{
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field static_icon: %w", err)
|
|
}
|
|
a.StaticIcon = value
|
|
}
|
|
{
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field appear_animation: %w", err)
|
|
}
|
|
a.AppearAnimation = value
|
|
}
|
|
{
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field select_animation: %w", err)
|
|
}
|
|
a.SelectAnimation = value
|
|
}
|
|
{
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field activate_animation: %w", err)
|
|
}
|
|
a.ActivateAnimation = value
|
|
}
|
|
{
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field effect_animation: %w", err)
|
|
}
|
|
a.EffectAnimation = value
|
|
}
|
|
if a.Flags.Has(1) {
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field around_animation: %w", err)
|
|
}
|
|
a.AroundAnimation = value
|
|
}
|
|
if a.Flags.Has(1) {
|
|
value, err := DecodeDocument(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode availableReaction#c077ec01: field center_icon: %w", err)
|
|
}
|
|
a.CenterIcon = value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetInactive sets value of Inactive conditional field.
|
|
func (a *AvailableReaction) SetInactive(value bool) {
|
|
if value {
|
|
a.Flags.Set(0)
|
|
a.Inactive = true
|
|
} else {
|
|
a.Flags.Unset(0)
|
|
a.Inactive = false
|
|
}
|
|
}
|
|
|
|
// GetInactive returns value of Inactive conditional field.
|
|
func (a *AvailableReaction) GetInactive() (value bool) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.Flags.Has(0)
|
|
}
|
|
|
|
// SetPremium sets value of Premium conditional field.
|
|
func (a *AvailableReaction) SetPremium(value bool) {
|
|
if value {
|
|
a.Flags.Set(2)
|
|
a.Premium = true
|
|
} else {
|
|
a.Flags.Unset(2)
|
|
a.Premium = false
|
|
}
|
|
}
|
|
|
|
// GetPremium returns value of Premium conditional field.
|
|
func (a *AvailableReaction) GetPremium() (value bool) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.Flags.Has(2)
|
|
}
|
|
|
|
// GetReaction returns value of Reaction field.
|
|
func (a *AvailableReaction) GetReaction() (value string) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.Reaction
|
|
}
|
|
|
|
// GetTitle returns value of Title field.
|
|
func (a *AvailableReaction) GetTitle() (value string) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.Title
|
|
}
|
|
|
|
// GetStaticIcon returns value of StaticIcon field.
|
|
func (a *AvailableReaction) GetStaticIcon() (value DocumentClass) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.StaticIcon
|
|
}
|
|
|
|
// GetAppearAnimation returns value of AppearAnimation field.
|
|
func (a *AvailableReaction) GetAppearAnimation() (value DocumentClass) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.AppearAnimation
|
|
}
|
|
|
|
// GetSelectAnimation returns value of SelectAnimation field.
|
|
func (a *AvailableReaction) GetSelectAnimation() (value DocumentClass) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.SelectAnimation
|
|
}
|
|
|
|
// GetActivateAnimation returns value of ActivateAnimation field.
|
|
func (a *AvailableReaction) GetActivateAnimation() (value DocumentClass) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.ActivateAnimation
|
|
}
|
|
|
|
// GetEffectAnimation returns value of EffectAnimation field.
|
|
func (a *AvailableReaction) GetEffectAnimation() (value DocumentClass) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
return a.EffectAnimation
|
|
}
|
|
|
|
// SetAroundAnimation sets value of AroundAnimation conditional field.
|
|
func (a *AvailableReaction) SetAroundAnimation(value DocumentClass) {
|
|
a.Flags.Set(1)
|
|
a.AroundAnimation = value
|
|
}
|
|
|
|
// GetAroundAnimation returns value of AroundAnimation conditional field and
|
|
// boolean which is true if field was set.
|
|
func (a *AvailableReaction) GetAroundAnimation() (value DocumentClass, ok bool) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
if !a.Flags.Has(1) {
|
|
return value, false
|
|
}
|
|
return a.AroundAnimation, true
|
|
}
|
|
|
|
// SetCenterIcon sets value of CenterIcon conditional field.
|
|
func (a *AvailableReaction) SetCenterIcon(value DocumentClass) {
|
|
a.Flags.Set(1)
|
|
a.CenterIcon = value
|
|
}
|
|
|
|
// GetCenterIcon returns value of CenterIcon conditional field and
|
|
// boolean which is true if field was set.
|
|
func (a *AvailableReaction) GetCenterIcon() (value DocumentClass, ok bool) {
|
|
if a == nil {
|
|
return
|
|
}
|
|
if !a.Flags.Has(1) {
|
|
return value, false
|
|
}
|
|
return a.CenterIcon, true
|
|
}
|
|
|
|
// GetStaticIconAsNotEmpty returns mapped value of StaticIcon field.
|
|
func (a *AvailableReaction) GetStaticIconAsNotEmpty() (*Document, bool) {
|
|
return a.StaticIcon.AsNotEmpty()
|
|
}
|
|
|
|
// GetAppearAnimationAsNotEmpty returns mapped value of AppearAnimation field.
|
|
func (a *AvailableReaction) GetAppearAnimationAsNotEmpty() (*Document, bool) {
|
|
return a.AppearAnimation.AsNotEmpty()
|
|
}
|
|
|
|
// GetSelectAnimationAsNotEmpty returns mapped value of SelectAnimation field.
|
|
func (a *AvailableReaction) GetSelectAnimationAsNotEmpty() (*Document, bool) {
|
|
return a.SelectAnimation.AsNotEmpty()
|
|
}
|
|
|
|
// GetActivateAnimationAsNotEmpty returns mapped value of ActivateAnimation field.
|
|
func (a *AvailableReaction) GetActivateAnimationAsNotEmpty() (*Document, bool) {
|
|
return a.ActivateAnimation.AsNotEmpty()
|
|
}
|
|
|
|
// GetEffectAnimationAsNotEmpty returns mapped value of EffectAnimation field.
|
|
func (a *AvailableReaction) GetEffectAnimationAsNotEmpty() (*Document, bool) {
|
|
return a.EffectAnimation.AsNotEmpty()
|
|
}
|
|
|
|
// GetAroundAnimationAsNotEmpty returns mapped value of AroundAnimation conditional field and
|
|
// boolean which is true if field was set.
|
|
func (a *AvailableReaction) GetAroundAnimationAsNotEmpty() (*Document, bool) {
|
|
if value, ok := a.GetAroundAnimation(); ok {
|
|
return value.AsNotEmpty()
|
|
}
|
|
return nil, false
|
|
}
|
|
|
|
// GetCenterIconAsNotEmpty returns mapped value of CenterIcon conditional field and
|
|
// boolean which is true if field was set.
|
|
func (a *AvailableReaction) GetCenterIconAsNotEmpty() (*Document, bool) {
|
|
if value, ok := a.GetCenterIcon(); ok {
|
|
return value.AsNotEmpty()
|
|
}
|
|
return nil, false
|
|
}
|