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
1015 lines
25 KiB
Go
1015 lines
25 KiB
Go
// Code generated by gotdgen, DO NOT EDIT.
|
|
|
|
package tdapi
|
|
|
|
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{}
|
|
)
|
|
|
|
// GroupCall represents TL type `groupCall#9da75b8b`.
|
|
type GroupCall struct {
|
|
// Group call identifier
|
|
ID int32
|
|
// Group call title; for video chats only
|
|
Title string
|
|
// Invite link for the group call; for group calls that aren't bound to a chat. For video
|
|
// chats call getVideoChatInviteLink to get the link
|
|
InviteLink string
|
|
// Point in time (Unix timestamp) when the group call is expected to be started by an
|
|
// administrator; 0 if it is already active or was ended; for video chats only
|
|
ScheduledStartDate int32
|
|
// True, if the group call is scheduled and the current user will receive a notification
|
|
// when the group call starts; for video chats only
|
|
EnabledStartNotification bool
|
|
// True, if the call is active
|
|
IsActive bool
|
|
// True, if the call is bound to a chat
|
|
IsVideoChat bool
|
|
// True, if the call is an RTMP stream instead of an ordinary video chat; for video chats
|
|
// only
|
|
IsRtmpStream bool
|
|
// True, if the call is joined
|
|
IsJoined bool
|
|
// True, if user was kicked from the call because of network loss and the call needs to
|
|
// be rejoined
|
|
NeedRejoin bool
|
|
// True, if the user is the owner of the call and can end the call, change volume level
|
|
// of other users, or ban users there; for group calls that aren't bound to a chat
|
|
IsOwned bool
|
|
// True, if the current user can manage the group call; for video chats only
|
|
CanBeManaged bool
|
|
// Number of participants in the group call
|
|
ParticipantCount int32
|
|
// True, if group call participants, which are muted, aren't returned in participant
|
|
// list; for video chats only
|
|
HasHiddenListeners bool
|
|
// True, if all group call participants are loaded
|
|
LoadedAllParticipants bool
|
|
// At most 3 recently speaking users in the group call
|
|
RecentSpeakers []GroupCallRecentSpeaker
|
|
// True, if the current user's video is enabled
|
|
IsMyVideoEnabled bool
|
|
// True, if the current user's video is paused
|
|
IsMyVideoPaused bool
|
|
// True, if the current user can broadcast video or share screen
|
|
CanEnableVideo bool
|
|
// True, if only group call administrators can unmute new participants; for video chats
|
|
// only
|
|
MuteNewParticipants bool
|
|
// True, if the current user can enable or disable mute_new_participants setting; for
|
|
// video chats only
|
|
CanToggleMuteNewParticipants bool
|
|
// Duration of the ongoing group call recording, in seconds; 0 if none. An
|
|
// updateGroupCall update is not triggered when value of this field changes, but the same
|
|
// recording goes on
|
|
RecordDuration int32
|
|
// True, if a video file is being recorded for the call
|
|
IsVideoRecorded bool
|
|
// Call duration, in seconds; for ended calls only
|
|
Duration int32
|
|
}
|
|
|
|
// GroupCallTypeID is TL type id of GroupCall.
|
|
const GroupCallTypeID = 0x9da75b8b
|
|
|
|
// Ensuring interfaces in compile-time for GroupCall.
|
|
var (
|
|
_ bin.Encoder = &GroupCall{}
|
|
_ bin.Decoder = &GroupCall{}
|
|
_ bin.BareEncoder = &GroupCall{}
|
|
_ bin.BareDecoder = &GroupCall{}
|
|
)
|
|
|
|
func (g *GroupCall) Zero() bool {
|
|
if g == nil {
|
|
return true
|
|
}
|
|
if !(g.ID == 0) {
|
|
return false
|
|
}
|
|
if !(g.Title == "") {
|
|
return false
|
|
}
|
|
if !(g.InviteLink == "") {
|
|
return false
|
|
}
|
|
if !(g.ScheduledStartDate == 0) {
|
|
return false
|
|
}
|
|
if !(g.EnabledStartNotification == false) {
|
|
return false
|
|
}
|
|
if !(g.IsActive == false) {
|
|
return false
|
|
}
|
|
if !(g.IsVideoChat == false) {
|
|
return false
|
|
}
|
|
if !(g.IsRtmpStream == false) {
|
|
return false
|
|
}
|
|
if !(g.IsJoined == false) {
|
|
return false
|
|
}
|
|
if !(g.NeedRejoin == false) {
|
|
return false
|
|
}
|
|
if !(g.IsOwned == false) {
|
|
return false
|
|
}
|
|
if !(g.CanBeManaged == false) {
|
|
return false
|
|
}
|
|
if !(g.ParticipantCount == 0) {
|
|
return false
|
|
}
|
|
if !(g.HasHiddenListeners == false) {
|
|
return false
|
|
}
|
|
if !(g.LoadedAllParticipants == false) {
|
|
return false
|
|
}
|
|
if !(g.RecentSpeakers == nil) {
|
|
return false
|
|
}
|
|
if !(g.IsMyVideoEnabled == false) {
|
|
return false
|
|
}
|
|
if !(g.IsMyVideoPaused == false) {
|
|
return false
|
|
}
|
|
if !(g.CanEnableVideo == false) {
|
|
return false
|
|
}
|
|
if !(g.MuteNewParticipants == false) {
|
|
return false
|
|
}
|
|
if !(g.CanToggleMuteNewParticipants == false) {
|
|
return false
|
|
}
|
|
if !(g.RecordDuration == 0) {
|
|
return false
|
|
}
|
|
if !(g.IsVideoRecorded == false) {
|
|
return false
|
|
}
|
|
if !(g.Duration == 0) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (g *GroupCall) String() string {
|
|
if g == nil {
|
|
return "GroupCall(nil)"
|
|
}
|
|
type Alias GroupCall
|
|
return fmt.Sprintf("GroupCall%+v", Alias(*g))
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*GroupCall) TypeID() uint32 {
|
|
return GroupCallTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*GroupCall) TypeName() string {
|
|
return "groupCall"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (g *GroupCall) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "groupCall",
|
|
ID: GroupCallTypeID,
|
|
}
|
|
if g == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "ID",
|
|
SchemaName: "id",
|
|
},
|
|
{
|
|
Name: "Title",
|
|
SchemaName: "title",
|
|
},
|
|
{
|
|
Name: "InviteLink",
|
|
SchemaName: "invite_link",
|
|
},
|
|
{
|
|
Name: "ScheduledStartDate",
|
|
SchemaName: "scheduled_start_date",
|
|
},
|
|
{
|
|
Name: "EnabledStartNotification",
|
|
SchemaName: "enabled_start_notification",
|
|
},
|
|
{
|
|
Name: "IsActive",
|
|
SchemaName: "is_active",
|
|
},
|
|
{
|
|
Name: "IsVideoChat",
|
|
SchemaName: "is_video_chat",
|
|
},
|
|
{
|
|
Name: "IsRtmpStream",
|
|
SchemaName: "is_rtmp_stream",
|
|
},
|
|
{
|
|
Name: "IsJoined",
|
|
SchemaName: "is_joined",
|
|
},
|
|
{
|
|
Name: "NeedRejoin",
|
|
SchemaName: "need_rejoin",
|
|
},
|
|
{
|
|
Name: "IsOwned",
|
|
SchemaName: "is_owned",
|
|
},
|
|
{
|
|
Name: "CanBeManaged",
|
|
SchemaName: "can_be_managed",
|
|
},
|
|
{
|
|
Name: "ParticipantCount",
|
|
SchemaName: "participant_count",
|
|
},
|
|
{
|
|
Name: "HasHiddenListeners",
|
|
SchemaName: "has_hidden_listeners",
|
|
},
|
|
{
|
|
Name: "LoadedAllParticipants",
|
|
SchemaName: "loaded_all_participants",
|
|
},
|
|
{
|
|
Name: "RecentSpeakers",
|
|
SchemaName: "recent_speakers",
|
|
},
|
|
{
|
|
Name: "IsMyVideoEnabled",
|
|
SchemaName: "is_my_video_enabled",
|
|
},
|
|
{
|
|
Name: "IsMyVideoPaused",
|
|
SchemaName: "is_my_video_paused",
|
|
},
|
|
{
|
|
Name: "CanEnableVideo",
|
|
SchemaName: "can_enable_video",
|
|
},
|
|
{
|
|
Name: "MuteNewParticipants",
|
|
SchemaName: "mute_new_participants",
|
|
},
|
|
{
|
|
Name: "CanToggleMuteNewParticipants",
|
|
SchemaName: "can_toggle_mute_new_participants",
|
|
},
|
|
{
|
|
Name: "RecordDuration",
|
|
SchemaName: "record_duration",
|
|
},
|
|
{
|
|
Name: "IsVideoRecorded",
|
|
SchemaName: "is_video_recorded",
|
|
},
|
|
{
|
|
Name: "Duration",
|
|
SchemaName: "duration",
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (g *GroupCall) Encode(b *bin.Buffer) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't encode groupCall#9da75b8b as nil")
|
|
}
|
|
b.PutID(GroupCallTypeID)
|
|
return g.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (g *GroupCall) EncodeBare(b *bin.Buffer) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't encode groupCall#9da75b8b as nil")
|
|
}
|
|
b.PutInt32(g.ID)
|
|
b.PutString(g.Title)
|
|
b.PutString(g.InviteLink)
|
|
b.PutInt32(g.ScheduledStartDate)
|
|
b.PutBool(g.EnabledStartNotification)
|
|
b.PutBool(g.IsActive)
|
|
b.PutBool(g.IsVideoChat)
|
|
b.PutBool(g.IsRtmpStream)
|
|
b.PutBool(g.IsJoined)
|
|
b.PutBool(g.NeedRejoin)
|
|
b.PutBool(g.IsOwned)
|
|
b.PutBool(g.CanBeManaged)
|
|
b.PutInt32(g.ParticipantCount)
|
|
b.PutBool(g.HasHiddenListeners)
|
|
b.PutBool(g.LoadedAllParticipants)
|
|
b.PutInt(len(g.RecentSpeakers))
|
|
for idx, v := range g.RecentSpeakers {
|
|
if err := v.EncodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to encode bare groupCall#9da75b8b: field recent_speakers element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
b.PutBool(g.IsMyVideoEnabled)
|
|
b.PutBool(g.IsMyVideoPaused)
|
|
b.PutBool(g.CanEnableVideo)
|
|
b.PutBool(g.MuteNewParticipants)
|
|
b.PutBool(g.CanToggleMuteNewParticipants)
|
|
b.PutInt32(g.RecordDuration)
|
|
b.PutBool(g.IsVideoRecorded)
|
|
b.PutInt32(g.Duration)
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (g *GroupCall) Decode(b *bin.Buffer) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't decode groupCall#9da75b8b to nil")
|
|
}
|
|
if err := b.ConsumeID(GroupCallTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: %w", err)
|
|
}
|
|
return g.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (g *GroupCall) DecodeBare(b *bin.Buffer) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't decode groupCall#9da75b8b to nil")
|
|
}
|
|
{
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field id: %w", err)
|
|
}
|
|
g.ID = value
|
|
}
|
|
{
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field title: %w", err)
|
|
}
|
|
g.Title = value
|
|
}
|
|
{
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field invite_link: %w", err)
|
|
}
|
|
g.InviteLink = value
|
|
}
|
|
{
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field scheduled_start_date: %w", err)
|
|
}
|
|
g.ScheduledStartDate = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field enabled_start_notification: %w", err)
|
|
}
|
|
g.EnabledStartNotification = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_active: %w", err)
|
|
}
|
|
g.IsActive = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_video_chat: %w", err)
|
|
}
|
|
g.IsVideoChat = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_rtmp_stream: %w", err)
|
|
}
|
|
g.IsRtmpStream = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_joined: %w", err)
|
|
}
|
|
g.IsJoined = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field need_rejoin: %w", err)
|
|
}
|
|
g.NeedRejoin = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_owned: %w", err)
|
|
}
|
|
g.IsOwned = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_be_managed: %w", err)
|
|
}
|
|
g.CanBeManaged = value
|
|
}
|
|
{
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field participant_count: %w", err)
|
|
}
|
|
g.ParticipantCount = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field has_hidden_listeners: %w", err)
|
|
}
|
|
g.HasHiddenListeners = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field loaded_all_participants: %w", err)
|
|
}
|
|
g.LoadedAllParticipants = value
|
|
}
|
|
{
|
|
headerLen, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field recent_speakers: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
g.RecentSpeakers = make([]GroupCallRecentSpeaker, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value GroupCallRecentSpeaker
|
|
if err := value.DecodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to decode bare groupCall#9da75b8b: field recent_speakers: %w", err)
|
|
}
|
|
g.RecentSpeakers = append(g.RecentSpeakers, value)
|
|
}
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_my_video_enabled: %w", err)
|
|
}
|
|
g.IsMyVideoEnabled = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_my_video_paused: %w", err)
|
|
}
|
|
g.IsMyVideoPaused = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_enable_video: %w", err)
|
|
}
|
|
g.CanEnableVideo = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field mute_new_participants: %w", err)
|
|
}
|
|
g.MuteNewParticipants = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_toggle_mute_new_participants: %w", err)
|
|
}
|
|
g.CanToggleMuteNewParticipants = value
|
|
}
|
|
{
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field record_duration: %w", err)
|
|
}
|
|
g.RecordDuration = value
|
|
}
|
|
{
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_video_recorded: %w", err)
|
|
}
|
|
g.IsVideoRecorded = value
|
|
}
|
|
{
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field duration: %w", err)
|
|
}
|
|
g.Duration = value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
|
|
func (g *GroupCall) EncodeTDLibJSON(b tdjson.Encoder) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't encode groupCall#9da75b8b as nil")
|
|
}
|
|
b.ObjStart()
|
|
b.PutID("groupCall")
|
|
b.Comma()
|
|
b.FieldStart("id")
|
|
b.PutInt32(g.ID)
|
|
b.Comma()
|
|
b.FieldStart("title")
|
|
b.PutString(g.Title)
|
|
b.Comma()
|
|
b.FieldStart("invite_link")
|
|
b.PutString(g.InviteLink)
|
|
b.Comma()
|
|
b.FieldStart("scheduled_start_date")
|
|
b.PutInt32(g.ScheduledStartDate)
|
|
b.Comma()
|
|
b.FieldStart("enabled_start_notification")
|
|
b.PutBool(g.EnabledStartNotification)
|
|
b.Comma()
|
|
b.FieldStart("is_active")
|
|
b.PutBool(g.IsActive)
|
|
b.Comma()
|
|
b.FieldStart("is_video_chat")
|
|
b.PutBool(g.IsVideoChat)
|
|
b.Comma()
|
|
b.FieldStart("is_rtmp_stream")
|
|
b.PutBool(g.IsRtmpStream)
|
|
b.Comma()
|
|
b.FieldStart("is_joined")
|
|
b.PutBool(g.IsJoined)
|
|
b.Comma()
|
|
b.FieldStart("need_rejoin")
|
|
b.PutBool(g.NeedRejoin)
|
|
b.Comma()
|
|
b.FieldStart("is_owned")
|
|
b.PutBool(g.IsOwned)
|
|
b.Comma()
|
|
b.FieldStart("can_be_managed")
|
|
b.PutBool(g.CanBeManaged)
|
|
b.Comma()
|
|
b.FieldStart("participant_count")
|
|
b.PutInt32(g.ParticipantCount)
|
|
b.Comma()
|
|
b.FieldStart("has_hidden_listeners")
|
|
b.PutBool(g.HasHiddenListeners)
|
|
b.Comma()
|
|
b.FieldStart("loaded_all_participants")
|
|
b.PutBool(g.LoadedAllParticipants)
|
|
b.Comma()
|
|
b.FieldStart("recent_speakers")
|
|
b.ArrStart()
|
|
for idx, v := range g.RecentSpeakers {
|
|
if err := v.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode groupCall#9da75b8b: field recent_speakers element with index %d: %w", idx, err)
|
|
}
|
|
b.Comma()
|
|
}
|
|
b.StripComma()
|
|
b.ArrEnd()
|
|
b.Comma()
|
|
b.FieldStart("is_my_video_enabled")
|
|
b.PutBool(g.IsMyVideoEnabled)
|
|
b.Comma()
|
|
b.FieldStart("is_my_video_paused")
|
|
b.PutBool(g.IsMyVideoPaused)
|
|
b.Comma()
|
|
b.FieldStart("can_enable_video")
|
|
b.PutBool(g.CanEnableVideo)
|
|
b.Comma()
|
|
b.FieldStart("mute_new_participants")
|
|
b.PutBool(g.MuteNewParticipants)
|
|
b.Comma()
|
|
b.FieldStart("can_toggle_mute_new_participants")
|
|
b.PutBool(g.CanToggleMuteNewParticipants)
|
|
b.Comma()
|
|
b.FieldStart("record_duration")
|
|
b.PutInt32(g.RecordDuration)
|
|
b.Comma()
|
|
b.FieldStart("is_video_recorded")
|
|
b.PutBool(g.IsVideoRecorded)
|
|
b.Comma()
|
|
b.FieldStart("duration")
|
|
b.PutInt32(g.Duration)
|
|
b.Comma()
|
|
b.StripComma()
|
|
b.ObjEnd()
|
|
return nil
|
|
}
|
|
|
|
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
|
|
func (g *GroupCall) DecodeTDLibJSON(b tdjson.Decoder) error {
|
|
if g == nil {
|
|
return fmt.Errorf("can't decode groupCall#9da75b8b to nil")
|
|
}
|
|
|
|
return b.Obj(func(b tdjson.Decoder, key []byte) error {
|
|
switch string(key) {
|
|
case tdjson.TypeField:
|
|
if err := b.ConsumeID("groupCall"); err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: %w", err)
|
|
}
|
|
case "id":
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field id: %w", err)
|
|
}
|
|
g.ID = value
|
|
case "title":
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field title: %w", err)
|
|
}
|
|
g.Title = value
|
|
case "invite_link":
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field invite_link: %w", err)
|
|
}
|
|
g.InviteLink = value
|
|
case "scheduled_start_date":
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field scheduled_start_date: %w", err)
|
|
}
|
|
g.ScheduledStartDate = value
|
|
case "enabled_start_notification":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field enabled_start_notification: %w", err)
|
|
}
|
|
g.EnabledStartNotification = value
|
|
case "is_active":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_active: %w", err)
|
|
}
|
|
g.IsActive = value
|
|
case "is_video_chat":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_video_chat: %w", err)
|
|
}
|
|
g.IsVideoChat = value
|
|
case "is_rtmp_stream":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_rtmp_stream: %w", err)
|
|
}
|
|
g.IsRtmpStream = value
|
|
case "is_joined":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_joined: %w", err)
|
|
}
|
|
g.IsJoined = value
|
|
case "need_rejoin":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field need_rejoin: %w", err)
|
|
}
|
|
g.NeedRejoin = value
|
|
case "is_owned":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_owned: %w", err)
|
|
}
|
|
g.IsOwned = value
|
|
case "can_be_managed":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_be_managed: %w", err)
|
|
}
|
|
g.CanBeManaged = value
|
|
case "participant_count":
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field participant_count: %w", err)
|
|
}
|
|
g.ParticipantCount = value
|
|
case "has_hidden_listeners":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field has_hidden_listeners: %w", err)
|
|
}
|
|
g.HasHiddenListeners = value
|
|
case "loaded_all_participants":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field loaded_all_participants: %w", err)
|
|
}
|
|
g.LoadedAllParticipants = value
|
|
case "recent_speakers":
|
|
if err := b.Arr(func(b tdjson.Decoder) error {
|
|
var value GroupCallRecentSpeaker
|
|
if err := value.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field recent_speakers: %w", err)
|
|
}
|
|
g.RecentSpeakers = append(g.RecentSpeakers, value)
|
|
return nil
|
|
}); err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field recent_speakers: %w", err)
|
|
}
|
|
case "is_my_video_enabled":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_my_video_enabled: %w", err)
|
|
}
|
|
g.IsMyVideoEnabled = value
|
|
case "is_my_video_paused":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_my_video_paused: %w", err)
|
|
}
|
|
g.IsMyVideoPaused = value
|
|
case "can_enable_video":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_enable_video: %w", err)
|
|
}
|
|
g.CanEnableVideo = value
|
|
case "mute_new_participants":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field mute_new_participants: %w", err)
|
|
}
|
|
g.MuteNewParticipants = value
|
|
case "can_toggle_mute_new_participants":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field can_toggle_mute_new_participants: %w", err)
|
|
}
|
|
g.CanToggleMuteNewParticipants = value
|
|
case "record_duration":
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field record_duration: %w", err)
|
|
}
|
|
g.RecordDuration = value
|
|
case "is_video_recorded":
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field is_video_recorded: %w", err)
|
|
}
|
|
g.IsVideoRecorded = value
|
|
case "duration":
|
|
value, err := b.Int32()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode groupCall#9da75b8b: field duration: %w", err)
|
|
}
|
|
g.Duration = value
|
|
default:
|
|
return b.Skip()
|
|
}
|
|
return nil
|
|
})
|
|
}
|
|
|
|
// GetID returns value of ID field.
|
|
func (g *GroupCall) GetID() (value int32) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.ID
|
|
}
|
|
|
|
// GetTitle returns value of Title field.
|
|
func (g *GroupCall) GetTitle() (value string) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.Title
|
|
}
|
|
|
|
// GetInviteLink returns value of InviteLink field.
|
|
func (g *GroupCall) GetInviteLink() (value string) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.InviteLink
|
|
}
|
|
|
|
// GetScheduledStartDate returns value of ScheduledStartDate field.
|
|
func (g *GroupCall) GetScheduledStartDate() (value int32) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.ScheduledStartDate
|
|
}
|
|
|
|
// GetEnabledStartNotification returns value of EnabledStartNotification field.
|
|
func (g *GroupCall) GetEnabledStartNotification() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.EnabledStartNotification
|
|
}
|
|
|
|
// GetIsActive returns value of IsActive field.
|
|
func (g *GroupCall) GetIsActive() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsActive
|
|
}
|
|
|
|
// GetIsVideoChat returns value of IsVideoChat field.
|
|
func (g *GroupCall) GetIsVideoChat() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsVideoChat
|
|
}
|
|
|
|
// GetIsRtmpStream returns value of IsRtmpStream field.
|
|
func (g *GroupCall) GetIsRtmpStream() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsRtmpStream
|
|
}
|
|
|
|
// GetIsJoined returns value of IsJoined field.
|
|
func (g *GroupCall) GetIsJoined() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsJoined
|
|
}
|
|
|
|
// GetNeedRejoin returns value of NeedRejoin field.
|
|
func (g *GroupCall) GetNeedRejoin() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.NeedRejoin
|
|
}
|
|
|
|
// GetIsOwned returns value of IsOwned field.
|
|
func (g *GroupCall) GetIsOwned() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsOwned
|
|
}
|
|
|
|
// GetCanBeManaged returns value of CanBeManaged field.
|
|
func (g *GroupCall) GetCanBeManaged() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.CanBeManaged
|
|
}
|
|
|
|
// GetParticipantCount returns value of ParticipantCount field.
|
|
func (g *GroupCall) GetParticipantCount() (value int32) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.ParticipantCount
|
|
}
|
|
|
|
// GetHasHiddenListeners returns value of HasHiddenListeners field.
|
|
func (g *GroupCall) GetHasHiddenListeners() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.HasHiddenListeners
|
|
}
|
|
|
|
// GetLoadedAllParticipants returns value of LoadedAllParticipants field.
|
|
func (g *GroupCall) GetLoadedAllParticipants() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.LoadedAllParticipants
|
|
}
|
|
|
|
// GetRecentSpeakers returns value of RecentSpeakers field.
|
|
func (g *GroupCall) GetRecentSpeakers() (value []GroupCallRecentSpeaker) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.RecentSpeakers
|
|
}
|
|
|
|
// GetIsMyVideoEnabled returns value of IsMyVideoEnabled field.
|
|
func (g *GroupCall) GetIsMyVideoEnabled() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsMyVideoEnabled
|
|
}
|
|
|
|
// GetIsMyVideoPaused returns value of IsMyVideoPaused field.
|
|
func (g *GroupCall) GetIsMyVideoPaused() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsMyVideoPaused
|
|
}
|
|
|
|
// GetCanEnableVideo returns value of CanEnableVideo field.
|
|
func (g *GroupCall) GetCanEnableVideo() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.CanEnableVideo
|
|
}
|
|
|
|
// GetMuteNewParticipants returns value of MuteNewParticipants field.
|
|
func (g *GroupCall) GetMuteNewParticipants() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.MuteNewParticipants
|
|
}
|
|
|
|
// GetCanToggleMuteNewParticipants returns value of CanToggleMuteNewParticipants field.
|
|
func (g *GroupCall) GetCanToggleMuteNewParticipants() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.CanToggleMuteNewParticipants
|
|
}
|
|
|
|
// GetRecordDuration returns value of RecordDuration field.
|
|
func (g *GroupCall) GetRecordDuration() (value int32) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.RecordDuration
|
|
}
|
|
|
|
// GetIsVideoRecorded returns value of IsVideoRecorded field.
|
|
func (g *GroupCall) GetIsVideoRecorded() (value bool) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.IsVideoRecorded
|
|
}
|
|
|
|
// GetDuration returns value of Duration field.
|
|
func (g *GroupCall) GetDuration() (value int32) {
|
|
if g == nil {
|
|
return
|
|
}
|
|
return g.Duration
|
|
}
|