execution synchronous methods without a client instance

This commit is contained in:
Aleksandr Zelenin 2022-01-27 08:55:07 +03:00
parent b0f08e7265
commit 035796a549
3 changed files with 307 additions and 91 deletions

View file

@ -3429,8 +3429,8 @@ type GetTextEntitiesRequest struct {
} }
// Returns all entities (mentions, hashtags, cashtags, bot commands, bank card numbers, URLs, and email addresses) contained in the text. Can be called synchronously // Returns all entities (mentions, hashtags, cashtags, bot commands, bank card numbers, URLs, and email addresses) contained in the text. Can be called synchronously
func (client *Client) GetTextEntities(req *GetTextEntitiesRequest) (*TextEntities, error) { func GetTextEntities(req *GetTextEntitiesRequest) (*TextEntities, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getTextEntities", Type: "getTextEntities",
}, },
@ -3449,6 +3449,12 @@ func (client *Client) GetTextEntities(req *GetTextEntitiesRequest) (*TextEntitie
return UnmarshalTextEntities(result.Data) return UnmarshalTextEntities(result.Data)
} }
// deprecated
// Returns all entities (mentions, hashtags, cashtags, bot commands, bank card numbers, URLs, and email addresses) contained in the text. Can be called synchronously
func (client *Client) GetTextEntities(req *GetTextEntitiesRequest) (*TextEntities, error) {
return GetTextEntities(req)
}
type ParseTextEntitiesRequest struct { type ParseTextEntitiesRequest struct {
// The text to parse // The text to parse
Text string `json:"text"` Text string `json:"text"`
@ -3457,8 +3463,8 @@ type ParseTextEntitiesRequest struct {
} }
// Parses Bold, Italic, Underline, Strikethrough, Code, Pre, PreCode, TextUrl and MentionName entities contained in the text. Can be called synchronously // Parses Bold, Italic, Underline, Strikethrough, Code, Pre, PreCode, TextUrl and MentionName entities contained in the text. Can be called synchronously
func (client *Client) ParseTextEntities(req *ParseTextEntitiesRequest) (*FormattedText, error) { func ParseTextEntities(req *ParseTextEntitiesRequest) (*FormattedText, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "parseTextEntities", Type: "parseTextEntities",
}, },
@ -3478,14 +3484,20 @@ func (client *Client) ParseTextEntities(req *ParseTextEntitiesRequest) (*Formatt
return UnmarshalFormattedText(result.Data) return UnmarshalFormattedText(result.Data)
} }
// deprecated
// Parses Bold, Italic, Underline, Strikethrough, Code, Pre, PreCode, TextUrl and MentionName entities contained in the text. Can be called synchronously
func (client *Client) ParseTextEntities(req *ParseTextEntitiesRequest) (*FormattedText, error) {
return ParseTextEntities(req)
}
type ParseMarkdownRequest struct { type ParseMarkdownRequest struct {
// The text to parse. For example, "__italic__ ~~strikethrough~~ **bold** `code` ```pre``` __[italic__ text_url](telegram.org) __italic**bold italic__bold**" // The text to parse. For example, "__italic__ ~~strikethrough~~ **bold** `code` ```pre``` __[italic__ text_url](telegram.org) __italic**bold italic__bold**"
Text *FormattedText `json:"text"` Text *FormattedText `json:"text"`
} }
// Parses Markdown entities in a human-friendly format, ignoring markup errors. Can be called synchronously // Parses Markdown entities in a human-friendly format, ignoring markup errors. Can be called synchronously
func (client *Client) ParseMarkdown(req *ParseMarkdownRequest) (*FormattedText, error) { func ParseMarkdown(req *ParseMarkdownRequest) (*FormattedText, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "parseMarkdown", Type: "parseMarkdown",
}, },
@ -3504,14 +3516,20 @@ func (client *Client) ParseMarkdown(req *ParseMarkdownRequest) (*FormattedText,
return UnmarshalFormattedText(result.Data) return UnmarshalFormattedText(result.Data)
} }
// deprecated
// Parses Markdown entities in a human-friendly format, ignoring markup errors. Can be called synchronously
func (client *Client) ParseMarkdown(req *ParseMarkdownRequest) (*FormattedText, error) {
return ParseMarkdown(req)
}
type GetMarkdownTextRequest struct { type GetMarkdownTextRequest struct {
// The text // The text
Text *FormattedText `json:"text"` Text *FormattedText `json:"text"`
} }
// Replaces text entities with Markdown formatting in a human-friendly format. Entities that can't be represented in Markdown unambiguously are kept as is. Can be called synchronously // Replaces text entities with Markdown formatting in a human-friendly format. Entities that can't be represented in Markdown unambiguously are kept as is. Can be called synchronously
func (client *Client) GetMarkdownText(req *GetMarkdownTextRequest) (*FormattedText, error) { func GetMarkdownText(req *GetMarkdownTextRequest) (*FormattedText, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getMarkdownText", Type: "getMarkdownText",
}, },
@ -3530,14 +3548,20 @@ func (client *Client) GetMarkdownText(req *GetMarkdownTextRequest) (*FormattedTe
return UnmarshalFormattedText(result.Data) return UnmarshalFormattedText(result.Data)
} }
// deprecated
// Replaces text entities with Markdown formatting in a human-friendly format. Entities that can't be represented in Markdown unambiguously are kept as is. Can be called synchronously
func (client *Client) GetMarkdownText(req *GetMarkdownTextRequest) (*FormattedText, error) {
return GetMarkdownText(req)
}
type GetFileMimeTypeRequest struct { type GetFileMimeTypeRequest struct {
// The name of the file or path to the file // The name of the file or path to the file
FileName string `json:"file_name"` FileName string `json:"file_name"`
} }
// Returns the MIME type of a file, guessed by its extension. Returns an empty string on failure. Can be called synchronously // Returns the MIME type of a file, guessed by its extension. Returns an empty string on failure. Can be called synchronously
func (client *Client) GetFileMimeType(req *GetFileMimeTypeRequest) (*Text, error) { func GetFileMimeType(req *GetFileMimeTypeRequest) (*Text, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getFileMimeType", Type: "getFileMimeType",
}, },
@ -3556,14 +3580,20 @@ func (client *Client) GetFileMimeType(req *GetFileMimeTypeRequest) (*Text, error
return UnmarshalText(result.Data) return UnmarshalText(result.Data)
} }
// deprecated
// Returns the MIME type of a file, guessed by its extension. Returns an empty string on failure. Can be called synchronously
func (client *Client) GetFileMimeType(req *GetFileMimeTypeRequest) (*Text, error) {
return GetFileMimeType(req)
}
type GetFileExtensionRequest struct { type GetFileExtensionRequest struct {
// The MIME type of the file // The MIME type of the file
MimeType string `json:"mime_type"` MimeType string `json:"mime_type"`
} }
// Returns the extension of a file, guessed by its MIME type. Returns an empty string on failure. Can be called synchronously // Returns the extension of a file, guessed by its MIME type. Returns an empty string on failure. Can be called synchronously
func (client *Client) GetFileExtension(req *GetFileExtensionRequest) (*Text, error) { func GetFileExtension(req *GetFileExtensionRequest) (*Text, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getFileExtension", Type: "getFileExtension",
}, },
@ -3582,14 +3612,20 @@ func (client *Client) GetFileExtension(req *GetFileExtensionRequest) (*Text, err
return UnmarshalText(result.Data) return UnmarshalText(result.Data)
} }
// deprecated
// Returns the extension of a file, guessed by its MIME type. Returns an empty string on failure. Can be called synchronously
func (client *Client) GetFileExtension(req *GetFileExtensionRequest) (*Text, error) {
return GetFileExtension(req)
}
type CleanFileNameRequest struct { type CleanFileNameRequest struct {
// File name or path to the file // File name or path to the file
FileName string `json:"file_name"` FileName string `json:"file_name"`
} }
// Removes potentially dangerous characters from the name of a file. The encoding of the file name is supposed to be UTF-8. Returns an empty string on failure. Can be called synchronously // Removes potentially dangerous characters from the name of a file. The encoding of the file name is supposed to be UTF-8. Returns an empty string on failure. Can be called synchronously
func (client *Client) CleanFileName(req *CleanFileNameRequest) (*Text, error) { func CleanFileName(req *CleanFileNameRequest) (*Text, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "cleanFileName", Type: "cleanFileName",
}, },
@ -3608,6 +3644,12 @@ func (client *Client) CleanFileName(req *CleanFileNameRequest) (*Text, error) {
return UnmarshalText(result.Data) return UnmarshalText(result.Data)
} }
// deprecated
// Removes potentially dangerous characters from the name of a file. The encoding of the file name is supposed to be UTF-8. Returns an empty string on failure. Can be called synchronously
func (client *Client) CleanFileName(req *CleanFileNameRequest) (*Text, error) {
return CleanFileName(req)
}
type GetLanguagePackStringRequest struct { type GetLanguagePackStringRequest struct {
// Path to the language pack database in which strings are stored // Path to the language pack database in which strings are stored
LanguagePackDatabasePath string `json:"language_pack_database_path"` LanguagePackDatabasePath string `json:"language_pack_database_path"`
@ -3620,8 +3662,8 @@ type GetLanguagePackStringRequest struct {
} }
// Returns a string stored in the local database from the specified localization target and language pack by its key. Returns a 404 error if the string is not found. Can be called synchronously // Returns a string stored in the local database from the specified localization target and language pack by its key. Returns a 404 error if the string is not found. Can be called synchronously
func (client *Client) GetLanguagePackString(req *GetLanguagePackStringRequest) (LanguagePackStringValue, error) { func GetLanguagePackString(req *GetLanguagePackStringRequest) (LanguagePackStringValue, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getLanguagePackString", Type: "getLanguagePackString",
}, },
@ -3655,14 +3697,20 @@ func (client *Client) GetLanguagePackString(req *GetLanguagePackStringRequest) (
} }
} }
// deprecated
// Returns a string stored in the local database from the specified localization target and language pack by its key. Returns a 404 error if the string is not found. Can be called synchronously
func (client *Client) GetLanguagePackString(req *GetLanguagePackStringRequest) (LanguagePackStringValue, error) {
return GetLanguagePackString(req)
}
type GetJsonValueRequest struct { type GetJsonValueRequest struct {
// The JSON-serialized string // The JSON-serialized string
Json string `json:"json"` Json string `json:"json"`
} }
// Converts a JSON-serialized string to corresponding JsonValue object. Can be called synchronously // Converts a JSON-serialized string to corresponding JsonValue object. Can be called synchronously
func (client *Client) GetJsonValue(req *GetJsonValueRequest) (JsonValue, error) { func GetJsonValue(req *GetJsonValueRequest) (JsonValue, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getJsonValue", Type: "getJsonValue",
}, },
@ -3702,14 +3750,20 @@ func (client *Client) GetJsonValue(req *GetJsonValueRequest) (JsonValue, error)
} }
} }
// deprecated
// Converts a JSON-serialized string to corresponding JsonValue object. Can be called synchronously
func (client *Client) GetJsonValue(req *GetJsonValueRequest) (JsonValue, error) {
return GetJsonValue(req)
}
type GetJsonStringRequest struct { type GetJsonStringRequest struct {
// The JsonValue object // The JsonValue object
JsonValue JsonValue `json:"json_value"` JsonValue JsonValue `json:"json_value"`
} }
// Converts a JsonValue object to corresponding JSON-serialized string. Can be called synchronously // Converts a JsonValue object to corresponding JSON-serialized string. Can be called synchronously
func (client *Client) GetJsonString(req *GetJsonStringRequest) (*Text, error) { func GetJsonString(req *GetJsonStringRequest) (*Text, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getJsonString", Type: "getJsonString",
}, },
@ -3728,6 +3782,12 @@ func (client *Client) GetJsonString(req *GetJsonStringRequest) (*Text, error) {
return UnmarshalText(result.Data) return UnmarshalText(result.Data)
} }
// deprecated
// Converts a JsonValue object to corresponding JSON-serialized string. Can be called synchronously
func (client *Client) GetJsonString(req *GetJsonStringRequest) (*Text, error) {
return GetJsonString(req)
}
type SetPollAnswerRequest struct { type SetPollAnswerRequest struct {
// Identifier of the chat to which the poll belongs // Identifier of the chat to which the poll belongs
ChatId int64 `json:"chat_id"` ChatId int64 `json:"chat_id"`
@ -5127,8 +5187,8 @@ type GetChatFilterDefaultIconNameRequest struct {
} }
// Returns default icon name for a filter. Can be called synchronously // Returns default icon name for a filter. Can be called synchronously
func (client *Client) GetChatFilterDefaultIconName(req *GetChatFilterDefaultIconNameRequest) (*Text, error) { func GetChatFilterDefaultIconName(req *GetChatFilterDefaultIconNameRequest) (*Text, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getChatFilterDefaultIconName", Type: "getChatFilterDefaultIconName",
}, },
@ -5147,6 +5207,12 @@ func (client *Client) GetChatFilterDefaultIconName(req *GetChatFilterDefaultIcon
return UnmarshalText(result.Data) return UnmarshalText(result.Data)
} }
// deprecated
// Returns default icon name for a filter. Can be called synchronously
func (client *Client) GetChatFilterDefaultIconName(req *GetChatFilterDefaultIconNameRequest) (*Text, error) {
return GetChatFilterDefaultIconName(req)
}
type SetChatTitleRequest struct { type SetChatTitleRequest struct {
// Chat identifier // Chat identifier
ChatId int64 `json:"chat_id"` ChatId int64 `json:"chat_id"`
@ -10796,8 +10862,8 @@ type GetPushReceiverIdRequest struct {
} }
// Returns a globally unique push notification subscription identifier for identification of an account, which has received a push notification. Can be called synchronously // Returns a globally unique push notification subscription identifier for identification of an account, which has received a push notification. Can be called synchronously
func (client *Client) GetPushReceiverId(req *GetPushReceiverIdRequest) (*PushReceiverId, error) { func GetPushReceiverId(req *GetPushReceiverIdRequest) (*PushReceiverId, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getPushReceiverId", Type: "getPushReceiverId",
}, },
@ -10816,6 +10882,12 @@ func (client *Client) GetPushReceiverId(req *GetPushReceiverIdRequest) (*PushRec
return UnmarshalPushReceiverId(result.Data) return UnmarshalPushReceiverId(result.Data)
} }
// deprecated
// Returns a globally unique push notification subscription identifier for identification of an account, which has received a push notification. Can be called synchronously
func (client *Client) GetPushReceiverId(req *GetPushReceiverIdRequest) (*PushReceiverId, error) {
return GetPushReceiverId(req)
}
type GetRecentlyVisitedTMeUrlsRequest struct { type GetRecentlyVisitedTMeUrlsRequest struct {
// Google Play referrer to identify the user // Google Play referrer to identify the user
Referrer string `json:"referrer"` Referrer string `json:"referrer"`
@ -12602,8 +12674,8 @@ type GetPhoneNumberInfoSyncRequest struct {
} }
// Returns information about a phone number by its prefix synchronously. getCountries must be called at least once after changing localization to the specified language if properly localized country information is expected. Can be called synchronously // Returns information about a phone number by its prefix synchronously. getCountries must be called at least once after changing localization to the specified language if properly localized country information is expected. Can be called synchronously
func (client *Client) GetPhoneNumberInfoSync(req *GetPhoneNumberInfoSyncRequest) (*PhoneNumberInfo, error) { func GetPhoneNumberInfoSync(req *GetPhoneNumberInfoSyncRequest) (*PhoneNumberInfo, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getPhoneNumberInfoSync", Type: "getPhoneNumberInfoSync",
}, },
@ -12623,6 +12695,12 @@ func (client *Client) GetPhoneNumberInfoSync(req *GetPhoneNumberInfoSyncRequest)
return UnmarshalPhoneNumberInfo(result.Data) return UnmarshalPhoneNumberInfo(result.Data)
} }
// deprecated
// Returns information about a phone number by its prefix synchronously. getCountries must be called at least once after changing localization to the specified language if properly localized country information is expected. Can be called synchronously
func (client *Client) GetPhoneNumberInfoSync(req *GetPhoneNumberInfoSyncRequest) (*PhoneNumberInfo, error) {
return GetPhoneNumberInfoSync(req)
}
// Returns the link for downloading official Telegram application to be used when the current user invites friends to Telegram // Returns the link for downloading official Telegram application to be used when the current user invites friends to Telegram
func (client *Client) GetApplicationDownloadLink() (*HttpUrl, error) { func (client *Client) GetApplicationDownloadLink() (*HttpUrl, error) {
result, err := client.Send(Request{ result, err := client.Send(Request{
@ -12961,8 +13039,8 @@ type SetLogStreamRequest struct {
} }
// Sets new log stream for internal logging of TDLib. Can be called synchronously // Sets new log stream for internal logging of TDLib. Can be called synchronously
func (client *Client) SetLogStream(req *SetLogStreamRequest) (*Ok, error) { func SetLogStream(req *SetLogStreamRequest) (*Ok, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "setLogStream", Type: "setLogStream",
}, },
@ -12981,9 +13059,15 @@ func (client *Client) SetLogStream(req *SetLogStreamRequest) (*Ok, error) {
return UnmarshalOk(result.Data) return UnmarshalOk(result.Data)
} }
// deprecated
// Sets new log stream for internal logging of TDLib. Can be called synchronously
func (client *Client) SetLogStream(req *SetLogStreamRequest) (*Ok, error) {
return SetLogStream(req)
}
// Returns information about currently used log stream for internal logging of TDLib. Can be called synchronously // Returns information about currently used log stream for internal logging of TDLib. Can be called synchronously
func (client *Client) GetLogStream() (LogStream, error) { func GetLogStream() (LogStream, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getLogStream", Type: "getLogStream",
}, },
@ -13012,14 +13096,20 @@ func (client *Client) GetLogStream() (LogStream, error) {
} }
} }
// deprecated
// Returns information about currently used log stream for internal logging of TDLib. Can be called synchronously
func (client *Client) GetLogStream() (LogStream, error) {
return GetLogStream()
}
type SetLogVerbosityLevelRequest struct { type SetLogVerbosityLevelRequest struct {
// New value of the verbosity level for logging. Value 0 corresponds to fatal errors, value 1 corresponds to errors, value 2 corresponds to warnings and debug warnings, value 3 corresponds to informational, value 4 corresponds to debug, value 5 corresponds to verbose debug, value greater than 5 and up to 1023 can be used to enable even more logging // New value of the verbosity level for logging. Value 0 corresponds to fatal errors, value 1 corresponds to errors, value 2 corresponds to warnings and debug warnings, value 3 corresponds to informational, value 4 corresponds to debug, value 5 corresponds to verbose debug, value greater than 5 and up to 1023 can be used to enable even more logging
NewVerbosityLevel int32 `json:"new_verbosity_level"` NewVerbosityLevel int32 `json:"new_verbosity_level"`
} }
// Sets the verbosity level of the internal logging of TDLib. Can be called synchronously // Sets the verbosity level of the internal logging of TDLib. Can be called synchronously
func (client *Client) SetLogVerbosityLevel(req *SetLogVerbosityLevelRequest) (*Ok, error) { func SetLogVerbosityLevel(req *SetLogVerbosityLevelRequest) (*Ok, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "setLogVerbosityLevel", Type: "setLogVerbosityLevel",
}, },
@ -13038,9 +13128,15 @@ func (client *Client) SetLogVerbosityLevel(req *SetLogVerbosityLevelRequest) (*O
return UnmarshalOk(result.Data) return UnmarshalOk(result.Data)
} }
// deprecated
// Sets the verbosity level of the internal logging of TDLib. Can be called synchronously
func (client *Client) SetLogVerbosityLevel(req *SetLogVerbosityLevelRequest) (*Ok, error) {
return SetLogVerbosityLevel(req)
}
// Returns current verbosity level of the internal logging of TDLib. Can be called synchronously // Returns current verbosity level of the internal logging of TDLib. Can be called synchronously
func (client *Client) GetLogVerbosityLevel() (*LogVerbosityLevel, error) { func GetLogVerbosityLevel() (*LogVerbosityLevel, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getLogVerbosityLevel", Type: "getLogVerbosityLevel",
}, },
@ -13057,9 +13153,15 @@ func (client *Client) GetLogVerbosityLevel() (*LogVerbosityLevel, error) {
return UnmarshalLogVerbosityLevel(result.Data) return UnmarshalLogVerbosityLevel(result.Data)
} }
// deprecated
// Returns current verbosity level of the internal logging of TDLib. Can be called synchronously
func (client *Client) GetLogVerbosityLevel() (*LogVerbosityLevel, error) {
return GetLogVerbosityLevel()
}
// Returns list of available TDLib internal log tags, for example, ["actor", "binlog", "connections", "notifications", "proxy"]. Can be called synchronously // Returns list of available TDLib internal log tags, for example, ["actor", "binlog", "connections", "notifications", "proxy"]. Can be called synchronously
func (client *Client) GetLogTags() (*LogTags, error) { func GetLogTags() (*LogTags, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getLogTags", Type: "getLogTags",
}, },
@ -13076,6 +13178,12 @@ func (client *Client) GetLogTags() (*LogTags, error) {
return UnmarshalLogTags(result.Data) return UnmarshalLogTags(result.Data)
} }
// deprecated
// Returns list of available TDLib internal log tags, for example, ["actor", "binlog", "connections", "notifications", "proxy"]. Can be called synchronously
func (client *Client) GetLogTags() (*LogTags, error) {
return GetLogTags()
}
type SetLogTagVerbosityLevelRequest struct { type SetLogTagVerbosityLevelRequest struct {
// Logging tag to change verbosity level // Logging tag to change verbosity level
Tag string `json:"tag"` Tag string `json:"tag"`
@ -13084,8 +13192,8 @@ type SetLogTagVerbosityLevelRequest struct {
} }
// Sets the verbosity level for a specified TDLib internal log tag. Can be called synchronously // Sets the verbosity level for a specified TDLib internal log tag. Can be called synchronously
func (client *Client) SetLogTagVerbosityLevel(req *SetLogTagVerbosityLevelRequest) (*Ok, error) { func SetLogTagVerbosityLevel(req *SetLogTagVerbosityLevelRequest) (*Ok, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "setLogTagVerbosityLevel", Type: "setLogTagVerbosityLevel",
}, },
@ -13105,14 +13213,20 @@ func (client *Client) SetLogTagVerbosityLevel(req *SetLogTagVerbosityLevelReques
return UnmarshalOk(result.Data) return UnmarshalOk(result.Data)
} }
// deprecated
// Sets the verbosity level for a specified TDLib internal log tag. Can be called synchronously
func (client *Client) SetLogTagVerbosityLevel(req *SetLogTagVerbosityLevelRequest) (*Ok, error) {
return SetLogTagVerbosityLevel(req)
}
type GetLogTagVerbosityLevelRequest struct { type GetLogTagVerbosityLevelRequest struct {
// Logging tag to change verbosity level // Logging tag to change verbosity level
Tag string `json:"tag"` Tag string `json:"tag"`
} }
// Returns current verbosity level for a specified TDLib internal log tag. Can be called synchronously // Returns current verbosity level for a specified TDLib internal log tag. Can be called synchronously
func (client *Client) GetLogTagVerbosityLevel(req *GetLogTagVerbosityLevelRequest) (*LogVerbosityLevel, error) { func GetLogTagVerbosityLevel(req *GetLogTagVerbosityLevelRequest) (*LogVerbosityLevel, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "getLogTagVerbosityLevel", Type: "getLogTagVerbosityLevel",
}, },
@ -13131,6 +13245,12 @@ func (client *Client) GetLogTagVerbosityLevel(req *GetLogTagVerbosityLevelReques
return UnmarshalLogVerbosityLevel(result.Data) return UnmarshalLogVerbosityLevel(result.Data)
} }
// deprecated
// Returns current verbosity level for a specified TDLib internal log tag. Can be called synchronously
func (client *Client) GetLogTagVerbosityLevel(req *GetLogTagVerbosityLevelRequest) (*LogVerbosityLevel, error) {
return GetLogTagVerbosityLevel(req)
}
type AddLogMessageRequest struct { type AddLogMessageRequest struct {
// The minimum verbosity level needed for the message to be logged; 0-1023 // The minimum verbosity level needed for the message to be logged; 0-1023
VerbosityLevel int32 `json:"verbosity_level"` VerbosityLevel int32 `json:"verbosity_level"`
@ -13139,8 +13259,8 @@ type AddLogMessageRequest struct {
} }
// Adds a message to TDLib internal log. Can be called synchronously // Adds a message to TDLib internal log. Can be called synchronously
func (client *Client) AddLogMessage(req *AddLogMessageRequest) (*Ok, error) { func AddLogMessage(req *AddLogMessageRequest) (*Ok, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "addLogMessage", Type: "addLogMessage",
}, },
@ -13160,6 +13280,12 @@ func (client *Client) AddLogMessage(req *AddLogMessageRequest) (*Ok, error) {
return UnmarshalOk(result.Data) return UnmarshalOk(result.Data)
} }
// deprecated
// Adds a message to TDLib internal log. Can be called synchronously
func (client *Client) AddLogMessage(req *AddLogMessageRequest) (*Ok, error) {
return AddLogMessage(req)
}
// Does nothing; for testing only. This is an offline method. Can be called before authorization // Does nothing; for testing only. This is an offline method. Can be called before authorization
func (client *Client) TestCallEmpty() (*Ok, error) { func (client *Client) TestCallEmpty() (*Ok, error) {
result, err := client.Send(Request{ result, err := client.Send(Request{
@ -13741,8 +13867,8 @@ type TestReturnErrorRequest struct {
} }
// Returns the specified error and ensures that the Error object is used; for testing only. Can be called synchronously // Returns the specified error and ensures that the Error object is used; for testing only. Can be called synchronously
func (client *Client) TestReturnError(req *TestReturnErrorRequest) (*Error, error) { func TestReturnError(req *TestReturnErrorRequest) (*Error, error) {
result, err := client.jsonClient.Execute(Request{ result, err := Execute(Request{
meta: meta{ meta: meta{
Type: "testReturnError", Type: "testReturnError",
}, },
@ -13760,3 +13886,9 @@ func (client *Client) TestReturnError(req *TestReturnErrorRequest) (*Error, erro
return UnmarshalError(result.Data) return UnmarshalError(result.Data)
} }
// deprecated
// Returns the specified error and ensures that the Error object is used; for testing only. Can be called synchronously
func (client *Client) TestReturnError(req *TestReturnErrorRequest) (*Error, error) {
return TestReturnError(req)
}

View file

@ -97,6 +97,30 @@ func (instance *tdlib) receive(timeout time.Duration) (*Response, error) {
return &resp, nil return &resp, nil
} }
func Execute(req Request) (*Response, error) {
data, _ := json.Marshal(req)
query := C.CString(string(data))
defer C.free(unsafe.Pointer(query))
result := C.td_execute(query)
if result == nil {
return nil, errors.New("request can't be parsed")
}
data = []byte(C.GoString(result))
var resp Response
err := json.Unmarshal(data, &resp)
if err != nil {
return nil, err
}
resp.Data = data
return &resp, nil
}
type JsonClient struct { type JsonClient struct {
id int id int
} }
@ -122,27 +146,7 @@ func (jsonClient *JsonClient) Send(req Request) {
// Returned pointer will be deallocated by TDLib during next call to td_json_client_receive or td_json_client_execute // Returned pointer will be deallocated by TDLib during next call to td_json_client_receive or td_json_client_execute
// in the same thread, so it can't be used after that. // in the same thread, so it can't be used after that.
func (jsonClient *JsonClient) Execute(req Request) (*Response, error) { func (jsonClient *JsonClient) Execute(req Request) (*Response, error) {
data, _ := json.Marshal(req) return Execute(req)
query := C.CString(string(data))
defer C.free(unsafe.Pointer(query))
result := C.td_execute(query)
if result == nil {
return nil, errors.New("request can't be parsed")
}
data = []byte(C.GoString(result))
var resp Response
err := json.Unmarshal(data, &resp)
if err != nil {
return nil, err
}
resp.Data = data
return &resp, nil
} }
type meta struct { type meta struct {

View file

@ -34,7 +34,84 @@ func GenerateFunctions(schema *tlparser.Schema, packageName string) []byte {
buf.WriteString("}\n") buf.WriteString("}\n")
} }
if function.IsSynchronous {
buf.WriteString("\n")
buf.WriteString("// " + function.Description)
buf.WriteString("\n")
requestArgument := ""
if len(function.Properties) > 0 {
requestArgument = fmt.Sprintf("req *%sRequest", tdlibFunction.ToGoName())
}
buf.WriteString(fmt.Sprintf("func %s(%s) (%s, error) {\n", tdlibFunction.ToGoName(), requestArgument, tdlibFunctionReturn.ToGoReturn()))
if len(function.Properties) > 0 {
buf.WriteString(fmt.Sprintf(` result, err := Execute(Request{
meta: meta{
Type: "%s",
},
Data: map[string]interface{}{
`, function.Name))
for _, property := range function.Properties {
tdlibTypeProperty := TdlibTypeProperty(property.Name, property.Type, schema)
buf.WriteString(fmt.Sprintf(" \"%s\": req.%s,\n", property.Name, tdlibTypeProperty.ToGoName()))
}
buf.WriteString(` },
})
`)
} else {
buf.WriteString(fmt.Sprintf(` result, err := Execute(Request{
meta: meta{
Type: "%s",
},
Data: map[string]interface{}{},
})
`, function.Name))
}
buf.WriteString(` if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
`)
if tdlibFunctionReturn.IsClass() {
buf.WriteString(" switch result.Type {\n")
for _, subType := range tdlibFunctionReturn.GetClass().GetSubTypes() {
buf.WriteString(fmt.Sprintf(` case %s:
return Unmarshal%s(result.Data)
`, subType.ToTypeConst(), subType.ToGoType()))
}
buf.WriteString(` default:
return nil, errors.New("invalid type")
`)
buf.WriteString(" }\n")
} else {
buf.WriteString(fmt.Sprintf(` return Unmarshal%s(result.Data)
`, tdlibFunctionReturn.ToGoType()))
}
buf.WriteString("}\n")
}
buf.WriteString("\n") buf.WriteString("\n")
if function.IsSynchronous {
buf.WriteString("// deprecated")
buf.WriteString("\n")
}
buf.WriteString("// " + function.Description) buf.WriteString("// " + function.Description)
buf.WriteString("\n") buf.WriteString("\n")
@ -45,39 +122,41 @@ func GenerateFunctions(schema *tlparser.Schema, packageName string) []byte {
buf.WriteString(fmt.Sprintf("func (client *Client) %s(%s) (%s, error) {\n", tdlibFunction.ToGoName(), requestArgument, tdlibFunctionReturn.ToGoReturn())) buf.WriteString(fmt.Sprintf("func (client *Client) %s(%s) (%s, error) {\n", tdlibFunction.ToGoName(), requestArgument, tdlibFunctionReturn.ToGoReturn()))
sendMethod := "Send"
if function.IsSynchronous { if function.IsSynchronous {
sendMethod = "jsonClient.Execute" requestArgument = ""
} if len(function.Properties) > 0 {
requestArgument = "req"
if len(function.Properties) > 0 { }
buf.WriteString(fmt.Sprintf(` result, err := client.%s(Request{ buf.WriteString(fmt.Sprintf(` return %s(%s)`, tdlibFunction.ToGoName(), requestArgument))
} else {
if len(function.Properties) > 0 {
buf.WriteString(fmt.Sprintf(` result, err := client.Send(Request{
meta: meta{ meta: meta{
Type: "%s", Type: "%s",
}, },
Data: map[string]interface{}{ Data: map[string]interface{}{
`, sendMethod, function.Name)) `, function.Name))
for _, property := range function.Properties { for _, property := range function.Properties {
tdlibTypeProperty := TdlibTypeProperty(property.Name, property.Type, schema) tdlibTypeProperty := TdlibTypeProperty(property.Name, property.Type, schema)
buf.WriteString(fmt.Sprintf(" \"%s\": req.%s,\n", property.Name, tdlibTypeProperty.ToGoName())) buf.WriteString(fmt.Sprintf(" \"%s\": req.%s,\n", property.Name, tdlibTypeProperty.ToGoName()))
} }
buf.WriteString(` }, buf.WriteString(` },
}) })
`) `)
} else { } else {
buf.WriteString(fmt.Sprintf(` result, err := client.%s(Request{ buf.WriteString(fmt.Sprintf(` result, err := client.Send(Request{
meta: meta{ meta: meta{
Type: "%s", Type: "%s",
}, },
Data: map[string]interface{}{}, Data: map[string]interface{}{},
}) })
`, sendMethod, function.Name)) `, function.Name))
} }
buf.WriteString(` if err != nil { buf.WriteString(` if err != nil {
return nil, err return nil, err
} }
@ -87,25 +166,26 @@ func GenerateFunctions(schema *tlparser.Schema, packageName string) []byte {
`) `)
if tdlibFunctionReturn.IsClass() { if tdlibFunctionReturn.IsClass() {
buf.WriteString(" switch result.Type {\n") buf.WriteString(" switch result.Type {\n")
for _, subType := range tdlibFunctionReturn.GetClass().GetSubTypes() { for _, subType := range tdlibFunctionReturn.GetClass().GetSubTypes() {
buf.WriteString(fmt.Sprintf(` case %s: buf.WriteString(fmt.Sprintf(` case %s:
return Unmarshal%s(result.Data) return Unmarshal%s(result.Data)
`, subType.ToTypeConst(), subType.ToGoType())) `, subType.ToTypeConst(), subType.ToGoType()))
} }
buf.WriteString(` default: buf.WriteString(` default:
return nil, errors.New("invalid type") return nil, errors.New("invalid type")
`) `)
buf.WriteString(" }\n") buf.WriteString(" }\n")
} else { } else {
buf.WriteString(fmt.Sprintf(` return Unmarshal%s(result.Data) buf.WriteString(fmt.Sprintf(` return Unmarshal%s(result.Data)
`, tdlibFunctionReturn.ToGoType())) `, tdlibFunctionReturn.ToGoType()))
}
} }
buf.WriteString("}\n") buf.WriteString("}\n")