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
546 lines
13 KiB
Go
Generated
546 lines
13 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{}
|
|
)
|
|
|
|
// CodeSettings represents TL type `codeSettings#ad253d78`.
|
|
// Settings used by telegram servers for sending the confirm code.
|
|
// Example implementations: telegram for android¹, tdlib².
|
|
//
|
|
// Links:
|
|
// 1. https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java
|
|
// 2. https://github.com/tdlib/td/tree/master/td/telegram/SendCodeHelper.cpp
|
|
//
|
|
// See https://core.telegram.org/constructor/codeSettings for reference.
|
|
type CodeSettings struct {
|
|
// Flags, see TL conditional fields¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
|
|
Flags bin.Fields
|
|
// Whether to allow phone verification via phone calls¹.
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/auth
|
|
AllowFlashcall bool
|
|
// Pass true if the phone number is used on the current device. Ignored if
|
|
// allow_flashcall is not set.
|
|
CurrentNumber bool
|
|
// If a token that will be included in eventually sent SMSs is required: required in
|
|
// newer versions of android, to use the android SMS receiver APIs¹
|
|
//
|
|
// Links:
|
|
// 1) https://developers.google.com/identity/sms-retriever/overview
|
|
AllowAppHash bool
|
|
// Whether this device supports receiving the code using the auth.codeTypeMissedCall¹
|
|
// method
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/constructor/auth.codeTypeMissedCall
|
|
AllowMissedCall bool
|
|
// Whether Firebase auth is supported
|
|
AllowFirebase bool
|
|
// Set this flag if there is a SIM card in the current device, but it is not possible to
|
|
// check whether the specified phone number matches the SIM's phone number.
|
|
UnknownNumber bool
|
|
// Previously stored future auth tokens, see the documentation for more info »¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/api/auth#future-auth-tokens
|
|
//
|
|
// Use SetLogoutTokens and GetLogoutTokens helpers.
|
|
LogoutTokens [][]byte
|
|
// Used only by official iOS apps for Firebase auth: device token for apple push.
|
|
//
|
|
// Use SetToken and GetToken helpers.
|
|
Token string
|
|
// Used only by official iOS apps for firebase auth: whether a sandbox-certificate will
|
|
// be used during transmission of the push notification.
|
|
//
|
|
// Use SetAppSandbox and GetAppSandbox helpers.
|
|
AppSandbox bool
|
|
}
|
|
|
|
// CodeSettingsTypeID is TL type id of CodeSettings.
|
|
const CodeSettingsTypeID = 0xad253d78
|
|
|
|
// Ensuring interfaces in compile-time for CodeSettings.
|
|
var (
|
|
_ bin.Encoder = &CodeSettings{}
|
|
_ bin.Decoder = &CodeSettings{}
|
|
_ bin.BareEncoder = &CodeSettings{}
|
|
_ bin.BareDecoder = &CodeSettings{}
|
|
)
|
|
|
|
func (c *CodeSettings) Zero() bool {
|
|
if c == nil {
|
|
return true
|
|
}
|
|
if !(c.Flags.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.AllowFlashcall == false) {
|
|
return false
|
|
}
|
|
if !(c.CurrentNumber == false) {
|
|
return false
|
|
}
|
|
if !(c.AllowAppHash == false) {
|
|
return false
|
|
}
|
|
if !(c.AllowMissedCall == false) {
|
|
return false
|
|
}
|
|
if !(c.AllowFirebase == false) {
|
|
return false
|
|
}
|
|
if !(c.UnknownNumber == false) {
|
|
return false
|
|
}
|
|
if !(c.LogoutTokens == nil) {
|
|
return false
|
|
}
|
|
if !(c.Token == "") {
|
|
return false
|
|
}
|
|
if !(c.AppSandbox == false) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (c *CodeSettings) String() string {
|
|
if c == nil {
|
|
return "CodeSettings(nil)"
|
|
}
|
|
type Alias CodeSettings
|
|
return fmt.Sprintf("CodeSettings%+v", Alias(*c))
|
|
}
|
|
|
|
// FillFrom fills CodeSettings from given interface.
|
|
func (c *CodeSettings) FillFrom(from interface {
|
|
GetAllowFlashcall() (value bool)
|
|
GetCurrentNumber() (value bool)
|
|
GetAllowAppHash() (value bool)
|
|
GetAllowMissedCall() (value bool)
|
|
GetAllowFirebase() (value bool)
|
|
GetUnknownNumber() (value bool)
|
|
GetLogoutTokens() (value [][]byte, ok bool)
|
|
GetToken() (value string, ok bool)
|
|
GetAppSandbox() (value bool, ok bool)
|
|
}) {
|
|
c.AllowFlashcall = from.GetAllowFlashcall()
|
|
c.CurrentNumber = from.GetCurrentNumber()
|
|
c.AllowAppHash = from.GetAllowAppHash()
|
|
c.AllowMissedCall = from.GetAllowMissedCall()
|
|
c.AllowFirebase = from.GetAllowFirebase()
|
|
c.UnknownNumber = from.GetUnknownNumber()
|
|
if val, ok := from.GetLogoutTokens(); ok {
|
|
c.LogoutTokens = val
|
|
}
|
|
|
|
if val, ok := from.GetToken(); ok {
|
|
c.Token = val
|
|
}
|
|
|
|
if val, ok := from.GetAppSandbox(); ok {
|
|
c.AppSandbox = val
|
|
}
|
|
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*CodeSettings) TypeID() uint32 {
|
|
return CodeSettingsTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*CodeSettings) TypeName() string {
|
|
return "codeSettings"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (c *CodeSettings) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "codeSettings",
|
|
ID: CodeSettingsTypeID,
|
|
}
|
|
if c == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "AllowFlashcall",
|
|
SchemaName: "allow_flashcall",
|
|
Null: !c.Flags.Has(0),
|
|
},
|
|
{
|
|
Name: "CurrentNumber",
|
|
SchemaName: "current_number",
|
|
Null: !c.Flags.Has(1),
|
|
},
|
|
{
|
|
Name: "AllowAppHash",
|
|
SchemaName: "allow_app_hash",
|
|
Null: !c.Flags.Has(4),
|
|
},
|
|
{
|
|
Name: "AllowMissedCall",
|
|
SchemaName: "allow_missed_call",
|
|
Null: !c.Flags.Has(5),
|
|
},
|
|
{
|
|
Name: "AllowFirebase",
|
|
SchemaName: "allow_firebase",
|
|
Null: !c.Flags.Has(7),
|
|
},
|
|
{
|
|
Name: "UnknownNumber",
|
|
SchemaName: "unknown_number",
|
|
Null: !c.Flags.Has(9),
|
|
},
|
|
{
|
|
Name: "LogoutTokens",
|
|
SchemaName: "logout_tokens",
|
|
Null: !c.Flags.Has(6),
|
|
},
|
|
{
|
|
Name: "Token",
|
|
SchemaName: "token",
|
|
Null: !c.Flags.Has(8),
|
|
},
|
|
{
|
|
Name: "AppSandbox",
|
|
SchemaName: "app_sandbox",
|
|
Null: !c.Flags.Has(8),
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// SetFlags sets flags for non-zero fields.
|
|
func (c *CodeSettings) SetFlags() {
|
|
if !(c.AllowFlashcall == false) {
|
|
c.Flags.Set(0)
|
|
}
|
|
if !(c.CurrentNumber == false) {
|
|
c.Flags.Set(1)
|
|
}
|
|
if !(c.AllowAppHash == false) {
|
|
c.Flags.Set(4)
|
|
}
|
|
if !(c.AllowMissedCall == false) {
|
|
c.Flags.Set(5)
|
|
}
|
|
if !(c.AllowFirebase == false) {
|
|
c.Flags.Set(7)
|
|
}
|
|
if !(c.UnknownNumber == false) {
|
|
c.Flags.Set(9)
|
|
}
|
|
if !(c.LogoutTokens == nil) {
|
|
c.Flags.Set(6)
|
|
}
|
|
if !(c.Token == "") {
|
|
c.Flags.Set(8)
|
|
}
|
|
if !(c.AppSandbox == false) {
|
|
c.Flags.Set(8)
|
|
}
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (c *CodeSettings) Encode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode codeSettings#ad253d78 as nil")
|
|
}
|
|
b.PutID(CodeSettingsTypeID)
|
|
return c.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (c *CodeSettings) EncodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode codeSettings#ad253d78 as nil")
|
|
}
|
|
c.SetFlags()
|
|
if err := c.Flags.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode codeSettings#ad253d78: field flags: %w", err)
|
|
}
|
|
if c.Flags.Has(6) {
|
|
b.PutVectorHeader(len(c.LogoutTokens))
|
|
for _, v := range c.LogoutTokens {
|
|
b.PutBytes(v)
|
|
}
|
|
}
|
|
if c.Flags.Has(8) {
|
|
b.PutString(c.Token)
|
|
}
|
|
if c.Flags.Has(8) {
|
|
b.PutBool(c.AppSandbox)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (c *CodeSettings) Decode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode codeSettings#ad253d78 to nil")
|
|
}
|
|
if err := b.ConsumeID(CodeSettingsTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: %w", err)
|
|
}
|
|
return c.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (c *CodeSettings) DecodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode codeSettings#ad253d78 to nil")
|
|
}
|
|
{
|
|
if err := c.Flags.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: field flags: %w", err)
|
|
}
|
|
}
|
|
c.AllowFlashcall = c.Flags.Has(0)
|
|
c.CurrentNumber = c.Flags.Has(1)
|
|
c.AllowAppHash = c.Flags.Has(4)
|
|
c.AllowMissedCall = c.Flags.Has(5)
|
|
c.AllowFirebase = c.Flags.Has(7)
|
|
c.UnknownNumber = c.Flags.Has(9)
|
|
if c.Flags.Has(6) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: field logout_tokens: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
c.LogoutTokens = make([][]byte, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
value, err := b.Bytes()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: field logout_tokens: %w", err)
|
|
}
|
|
c.LogoutTokens = append(c.LogoutTokens, value)
|
|
}
|
|
}
|
|
if c.Flags.Has(8) {
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: field token: %w", err)
|
|
}
|
|
c.Token = value
|
|
}
|
|
if c.Flags.Has(8) {
|
|
value, err := b.Bool()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode codeSettings#ad253d78: field app_sandbox: %w", err)
|
|
}
|
|
c.AppSandbox = value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetAllowFlashcall sets value of AllowFlashcall conditional field.
|
|
func (c *CodeSettings) SetAllowFlashcall(value bool) {
|
|
if value {
|
|
c.Flags.Set(0)
|
|
c.AllowFlashcall = true
|
|
} else {
|
|
c.Flags.Unset(0)
|
|
c.AllowFlashcall = false
|
|
}
|
|
}
|
|
|
|
// GetAllowFlashcall returns value of AllowFlashcall conditional field.
|
|
func (c *CodeSettings) GetAllowFlashcall() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(0)
|
|
}
|
|
|
|
// SetCurrentNumber sets value of CurrentNumber conditional field.
|
|
func (c *CodeSettings) SetCurrentNumber(value bool) {
|
|
if value {
|
|
c.Flags.Set(1)
|
|
c.CurrentNumber = true
|
|
} else {
|
|
c.Flags.Unset(1)
|
|
c.CurrentNumber = false
|
|
}
|
|
}
|
|
|
|
// GetCurrentNumber returns value of CurrentNumber conditional field.
|
|
func (c *CodeSettings) GetCurrentNumber() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(1)
|
|
}
|
|
|
|
// SetAllowAppHash sets value of AllowAppHash conditional field.
|
|
func (c *CodeSettings) SetAllowAppHash(value bool) {
|
|
if value {
|
|
c.Flags.Set(4)
|
|
c.AllowAppHash = true
|
|
} else {
|
|
c.Flags.Unset(4)
|
|
c.AllowAppHash = false
|
|
}
|
|
}
|
|
|
|
// GetAllowAppHash returns value of AllowAppHash conditional field.
|
|
func (c *CodeSettings) GetAllowAppHash() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(4)
|
|
}
|
|
|
|
// SetAllowMissedCall sets value of AllowMissedCall conditional field.
|
|
func (c *CodeSettings) SetAllowMissedCall(value bool) {
|
|
if value {
|
|
c.Flags.Set(5)
|
|
c.AllowMissedCall = true
|
|
} else {
|
|
c.Flags.Unset(5)
|
|
c.AllowMissedCall = false
|
|
}
|
|
}
|
|
|
|
// GetAllowMissedCall returns value of AllowMissedCall conditional field.
|
|
func (c *CodeSettings) GetAllowMissedCall() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(5)
|
|
}
|
|
|
|
// SetAllowFirebase sets value of AllowFirebase conditional field.
|
|
func (c *CodeSettings) SetAllowFirebase(value bool) {
|
|
if value {
|
|
c.Flags.Set(7)
|
|
c.AllowFirebase = true
|
|
} else {
|
|
c.Flags.Unset(7)
|
|
c.AllowFirebase = false
|
|
}
|
|
}
|
|
|
|
// GetAllowFirebase returns value of AllowFirebase conditional field.
|
|
func (c *CodeSettings) GetAllowFirebase() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(7)
|
|
}
|
|
|
|
// SetUnknownNumber sets value of UnknownNumber conditional field.
|
|
func (c *CodeSettings) SetUnknownNumber(value bool) {
|
|
if value {
|
|
c.Flags.Set(9)
|
|
c.UnknownNumber = true
|
|
} else {
|
|
c.Flags.Unset(9)
|
|
c.UnknownNumber = false
|
|
}
|
|
}
|
|
|
|
// GetUnknownNumber returns value of UnknownNumber conditional field.
|
|
func (c *CodeSettings) GetUnknownNumber() (value bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Flags.Has(9)
|
|
}
|
|
|
|
// SetLogoutTokens sets value of LogoutTokens conditional field.
|
|
func (c *CodeSettings) SetLogoutTokens(value [][]byte) {
|
|
c.Flags.Set(6)
|
|
c.LogoutTokens = value
|
|
}
|
|
|
|
// GetLogoutTokens returns value of LogoutTokens conditional field and
|
|
// boolean which is true if field was set.
|
|
func (c *CodeSettings) GetLogoutTokens() (value [][]byte, ok bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
if !c.Flags.Has(6) {
|
|
return value, false
|
|
}
|
|
return c.LogoutTokens, true
|
|
}
|
|
|
|
// SetToken sets value of Token conditional field.
|
|
func (c *CodeSettings) SetToken(value string) {
|
|
c.Flags.Set(8)
|
|
c.Token = value
|
|
}
|
|
|
|
// GetToken returns value of Token conditional field and
|
|
// boolean which is true if field was set.
|
|
func (c *CodeSettings) GetToken() (value string, ok bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
if !c.Flags.Has(8) {
|
|
return value, false
|
|
}
|
|
return c.Token, true
|
|
}
|
|
|
|
// SetAppSandbox sets value of AppSandbox conditional field.
|
|
func (c *CodeSettings) SetAppSandbox(value bool) {
|
|
c.Flags.Set(8)
|
|
c.AppSandbox = value
|
|
}
|
|
|
|
// GetAppSandbox returns value of AppSandbox conditional field and
|
|
// boolean which is true if field was set.
|
|
func (c *CodeSettings) GetAppSandbox() (value bool, ok bool) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
if !c.Flags.Has(8) {
|
|
return value, false
|
|
}
|
|
return c.AppSandbox, true
|
|
}
|