move gotd fork into repo. (#111)
- 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
This commit is contained in:
@@ -0,0 +1,545 @@
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user