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
446 lines
10 KiB
Go
446 lines
10 KiB
Go
// 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{}
|
|
)
|
|
|
|
// StoryViews represents TL type `storyViews#8d595cd6`.
|
|
// Aggregated view and reaction information of a story¹.
|
|
//
|
|
// Links:
|
|
// 1. https://core.telegram.org/api/stories
|
|
//
|
|
// See https://core.telegram.org/constructor/storyViews for reference.
|
|
type StoryViews struct {
|
|
// Flags, see TL conditional fields¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
|
|
Flags bin.Fields
|
|
// If set, indicates that the viewers list is currently viewable, and was not yet deleted
|
|
// because the story has expired while the user didn't have a Premium¹ account.
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/premium
|
|
HasViewers bool
|
|
// View counter of the story
|
|
ViewsCount int
|
|
// Forward counter of the story
|
|
//
|
|
// Use SetForwardsCount and GetForwardsCount helpers.
|
|
ForwardsCount int
|
|
// All reactions sent to this story
|
|
//
|
|
// Use SetReactions and GetReactions helpers.
|
|
Reactions []ReactionCount
|
|
// Number of reactions added to the story
|
|
//
|
|
// Use SetReactionsCount and GetReactionsCount helpers.
|
|
ReactionsCount int
|
|
// User IDs of some recent viewers of the story
|
|
//
|
|
// Use SetRecentViewers and GetRecentViewers helpers.
|
|
RecentViewers []int64
|
|
}
|
|
|
|
// StoryViewsTypeID is TL type id of StoryViews.
|
|
const StoryViewsTypeID = 0x8d595cd6
|
|
|
|
// Ensuring interfaces in compile-time for StoryViews.
|
|
var (
|
|
_ bin.Encoder = &StoryViews{}
|
|
_ bin.Decoder = &StoryViews{}
|
|
_ bin.BareEncoder = &StoryViews{}
|
|
_ bin.BareDecoder = &StoryViews{}
|
|
)
|
|
|
|
func (s *StoryViews) Zero() bool {
|
|
if s == nil {
|
|
return true
|
|
}
|
|
if !(s.Flags.Zero()) {
|
|
return false
|
|
}
|
|
if !(s.HasViewers == false) {
|
|
return false
|
|
}
|
|
if !(s.ViewsCount == 0) {
|
|
return false
|
|
}
|
|
if !(s.ForwardsCount == 0) {
|
|
return false
|
|
}
|
|
if !(s.Reactions == nil) {
|
|
return false
|
|
}
|
|
if !(s.ReactionsCount == 0) {
|
|
return false
|
|
}
|
|
if !(s.RecentViewers == nil) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (s *StoryViews) String() string {
|
|
if s == nil {
|
|
return "StoryViews(nil)"
|
|
}
|
|
type Alias StoryViews
|
|
return fmt.Sprintf("StoryViews%+v", Alias(*s))
|
|
}
|
|
|
|
// FillFrom fills StoryViews from given interface.
|
|
func (s *StoryViews) FillFrom(from interface {
|
|
GetHasViewers() (value bool)
|
|
GetViewsCount() (value int)
|
|
GetForwardsCount() (value int, ok bool)
|
|
GetReactions() (value []ReactionCount, ok bool)
|
|
GetReactionsCount() (value int, ok bool)
|
|
GetRecentViewers() (value []int64, ok bool)
|
|
}) {
|
|
s.HasViewers = from.GetHasViewers()
|
|
s.ViewsCount = from.GetViewsCount()
|
|
if val, ok := from.GetForwardsCount(); ok {
|
|
s.ForwardsCount = val
|
|
}
|
|
|
|
if val, ok := from.GetReactions(); ok {
|
|
s.Reactions = val
|
|
}
|
|
|
|
if val, ok := from.GetReactionsCount(); ok {
|
|
s.ReactionsCount = val
|
|
}
|
|
|
|
if val, ok := from.GetRecentViewers(); ok {
|
|
s.RecentViewers = val
|
|
}
|
|
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*StoryViews) TypeID() uint32 {
|
|
return StoryViewsTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*StoryViews) TypeName() string {
|
|
return "storyViews"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (s *StoryViews) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "storyViews",
|
|
ID: StoryViewsTypeID,
|
|
}
|
|
if s == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "HasViewers",
|
|
SchemaName: "has_viewers",
|
|
Null: !s.Flags.Has(1),
|
|
},
|
|
{
|
|
Name: "ViewsCount",
|
|
SchemaName: "views_count",
|
|
},
|
|
{
|
|
Name: "ForwardsCount",
|
|
SchemaName: "forwards_count",
|
|
Null: !s.Flags.Has(2),
|
|
},
|
|
{
|
|
Name: "Reactions",
|
|
SchemaName: "reactions",
|
|
Null: !s.Flags.Has(3),
|
|
},
|
|
{
|
|
Name: "ReactionsCount",
|
|
SchemaName: "reactions_count",
|
|
Null: !s.Flags.Has(4),
|
|
},
|
|
{
|
|
Name: "RecentViewers",
|
|
SchemaName: "recent_viewers",
|
|
Null: !s.Flags.Has(0),
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// SetFlags sets flags for non-zero fields.
|
|
func (s *StoryViews) SetFlags() {
|
|
if !(s.HasViewers == false) {
|
|
s.Flags.Set(1)
|
|
}
|
|
if !(s.ForwardsCount == 0) {
|
|
s.Flags.Set(2)
|
|
}
|
|
if !(s.Reactions == nil) {
|
|
s.Flags.Set(3)
|
|
}
|
|
if !(s.ReactionsCount == 0) {
|
|
s.Flags.Set(4)
|
|
}
|
|
if !(s.RecentViewers == nil) {
|
|
s.Flags.Set(0)
|
|
}
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (s *StoryViews) Encode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode storyViews#8d595cd6 as nil")
|
|
}
|
|
b.PutID(StoryViewsTypeID)
|
|
return s.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (s *StoryViews) EncodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode storyViews#8d595cd6 as nil")
|
|
}
|
|
s.SetFlags()
|
|
if err := s.Flags.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode storyViews#8d595cd6: field flags: %w", err)
|
|
}
|
|
b.PutInt(s.ViewsCount)
|
|
if s.Flags.Has(2) {
|
|
b.PutInt(s.ForwardsCount)
|
|
}
|
|
if s.Flags.Has(3) {
|
|
b.PutVectorHeader(len(s.Reactions))
|
|
for idx, v := range s.Reactions {
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode storyViews#8d595cd6: field reactions element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
}
|
|
if s.Flags.Has(4) {
|
|
b.PutInt(s.ReactionsCount)
|
|
}
|
|
if s.Flags.Has(0) {
|
|
b.PutVectorHeader(len(s.RecentViewers))
|
|
for _, v := range s.RecentViewers {
|
|
b.PutLong(v)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (s *StoryViews) Decode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode storyViews#8d595cd6 to nil")
|
|
}
|
|
if err := b.ConsumeID(StoryViewsTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: %w", err)
|
|
}
|
|
return s.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (s *StoryViews) DecodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode storyViews#8d595cd6 to nil")
|
|
}
|
|
{
|
|
if err := s.Flags.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field flags: %w", err)
|
|
}
|
|
}
|
|
s.HasViewers = s.Flags.Has(1)
|
|
{
|
|
value, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field views_count: %w", err)
|
|
}
|
|
s.ViewsCount = value
|
|
}
|
|
if s.Flags.Has(2) {
|
|
value, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field forwards_count: %w", err)
|
|
}
|
|
s.ForwardsCount = value
|
|
}
|
|
if s.Flags.Has(3) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field reactions: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.Reactions = make([]ReactionCount, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value ReactionCount
|
|
if err := value.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field reactions: %w", err)
|
|
}
|
|
s.Reactions = append(s.Reactions, value)
|
|
}
|
|
}
|
|
if s.Flags.Has(4) {
|
|
value, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field reactions_count: %w", err)
|
|
}
|
|
s.ReactionsCount = value
|
|
}
|
|
if s.Flags.Has(0) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode storyViews#8d595cd6: field recent_viewers: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.RecentViewers = 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 storyViews#8d595cd6: field recent_viewers: %w", err)
|
|
}
|
|
s.RecentViewers = append(s.RecentViewers, value)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetHasViewers sets value of HasViewers conditional field.
|
|
func (s *StoryViews) SetHasViewers(value bool) {
|
|
if value {
|
|
s.Flags.Set(1)
|
|
s.HasViewers = true
|
|
} else {
|
|
s.Flags.Unset(1)
|
|
s.HasViewers = false
|
|
}
|
|
}
|
|
|
|
// GetHasViewers returns value of HasViewers conditional field.
|
|
func (s *StoryViews) GetHasViewers() (value bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Flags.Has(1)
|
|
}
|
|
|
|
// GetViewsCount returns value of ViewsCount field.
|
|
func (s *StoryViews) GetViewsCount() (value int) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.ViewsCount
|
|
}
|
|
|
|
// SetForwardsCount sets value of ForwardsCount conditional field.
|
|
func (s *StoryViews) SetForwardsCount(value int) {
|
|
s.Flags.Set(2)
|
|
s.ForwardsCount = value
|
|
}
|
|
|
|
// GetForwardsCount returns value of ForwardsCount conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *StoryViews) GetForwardsCount() (value int, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(2) {
|
|
return value, false
|
|
}
|
|
return s.ForwardsCount, true
|
|
}
|
|
|
|
// SetReactions sets value of Reactions conditional field.
|
|
func (s *StoryViews) SetReactions(value []ReactionCount) {
|
|
s.Flags.Set(3)
|
|
s.Reactions = value
|
|
}
|
|
|
|
// GetReactions returns value of Reactions conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *StoryViews) GetReactions() (value []ReactionCount, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(3) {
|
|
return value, false
|
|
}
|
|
return s.Reactions, true
|
|
}
|
|
|
|
// SetReactionsCount sets value of ReactionsCount conditional field.
|
|
func (s *StoryViews) SetReactionsCount(value int) {
|
|
s.Flags.Set(4)
|
|
s.ReactionsCount = value
|
|
}
|
|
|
|
// GetReactionsCount returns value of ReactionsCount conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *StoryViews) GetReactionsCount() (value int, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(4) {
|
|
return value, false
|
|
}
|
|
return s.ReactionsCount, true
|
|
}
|
|
|
|
// SetRecentViewers sets value of RecentViewers conditional field.
|
|
func (s *StoryViews) SetRecentViewers(value []int64) {
|
|
s.Flags.Set(0)
|
|
s.RecentViewers = value
|
|
}
|
|
|
|
// GetRecentViewers returns value of RecentViewers conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *StoryViews) GetRecentViewers() (value []int64, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(0) {
|
|
return value, false
|
|
}
|
|
return s.RecentViewers, true
|
|
}
|