Async docs

This commit is contained in:
Daniil Gentili 2019-05-03 21:10:09 +02:00
parent 6d9ffce34a
commit 62a451db2f
1547 changed files with 54016 additions and 10 deletions

View File

@ -55,6 +55,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -43,6 +43,7 @@ CdnConfig = help.getCdnConfig({})
| Error | Description |
|----------|---------------|
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -68,6 +68,7 @@ Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -55,6 +55,7 @@ messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, of
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -117,6 +117,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

169
docs/docs/ASYNC.md Normal file
View File

@ -0,0 +1,169 @@
---
title: Async
description: MadelineProto now features async, for **incredible speed improvements**, and parallel processing **without** buggy and slow threading/multiprocessing.
image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
---
# Async
MadelineProto now features async, for **incredible speed improvements**, and parallel processing **without** buggy and slow threading/multiprocessing.
Powered by [amphp](https://amphp.org), MadelineProto wraps the AMPHP APIs to provide a simpler generator-based async API.
* [Usage](#usage)
* [Loading the latest version of MadelineProto](#loading-the-latest-version-of-madelineproto)
* [Enabling the MadelineProto async API](#enabling-the-madelineproto-async-api)
* [Using the MadelineProto async API](#using-the-madelineproto-async-api)
* [Async in event handler](#async-in-event-handler)
* [Async in callback handler](#async-in-callback-handler)
* [Wrapped async](#wrapped-async)
* [Ignored async](#ignored-async)
* [MadelineProto and AMPHP async APIs](#madelineproto-and-amphp-async-apis)
## Usage
What exactly __is__ **async**, you may ask, and how is it better than **threading** or **multiprocessing**?
Async is a relatively new programming pattern that allows you to easily write **non-blocking** code **as if you were using standard** blocking functions, all without the need for complex message exchange systems and synchronization handling for threaded programs, that only add overhead and complexity to your programs, making everything slower and error-prone.
That's very cool and all, you might think, but how exactly does this __async__ stuff work? Well, as it turns out, it's very easy.
Instead of writing code like this:
```php
$file = $MadelineProto->download_to_dir($bigfile, '/tmp/');
```
Write it like **this**:
```php
$file = yield $MadelineProto->download_to_dir($bigfile, '/tmp/');
```
### That's it.
It's really **that** easy, you just have to add a `yield` before calling MadelineProto methods.
The `yield` will automatically **suspend** the execution of the function, letting the program do other stuff while the file is being downloaded.
Once the file is downloaded, execution is automatically **resumed** from that exact point in the function.
## Loading the latest version of MadelineProto
In order to use the `yield` operator in MadelineProto, you have to load the **latest version** of MadelineProto from the **master** branch (alpha) by loading it through composer (`dev-master`) or with madeline.php:
```php
<?php
if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
define('MADELINE_BRANCH', '');
include 'madeline.php';
```
The `MADELINE_BRANCH` constant you defines which branch of MadelineProto madeline.php should load.
When the constant is not set, the `old` stable branch is loaded; if the value is an empty string, the `master` branch is loaded; otherwise, the selected branch name is loaded.
## Enabling the MadelineProto async API
The `yield` operator can only be used within functions, once MadelineProto's async mode is enabled.
To do that, simply run the `async` function, or pass the async enabler flag separately to each method call, if you want to make only some calls async.
This will enable async mode for **all** MadelineProto functions:
```php
$MadelineProto->async(true);
// ...
yield $MadelineProto->messages->sendMessage(...);
```
This will enable async mode for **only** for one specific call of a MadelineProto function (by adding a **new** array parameter after all the required parameters):
```php
yield $MadelineProto->messages->sendMessage(..., ['async' => true]);
```
## Using the MadelineProto async API
As mentioned earlier, you can only use the `yield` operator within functions, but not just any function, for example:
```php
$sm = function ($chatID, $message) use ($MadelineProto) {
$id = (yield $MadelineProto->get_info($chatID))['bot_api_id'];
$res = yield $MadelineProto->messages->sendMesssage(['peer' => $chatID, 'message' => "Message from: $id\n$message"], ['async' => true]);
return $res;
};
$result = $sm('@danogentili', 'hi');
```
This will **not** work, because the result of a function that uses `yield` is not the `return`ed value, but a [generator](https://www.php.net/manual/en/language.generators.overview.php), which is what the async AMPHP API is based on.
If the generator is not __passed to the AMPHP event loop__, execution of the function will not be resumed: when MadelineProto asynchronously obtains the result of the get_info, execution of the function is never resumed, and the line with sendMessage is never called.
To avoid this problem, only call asynchronous functions in the event/callback update handler, or in functions called by the event/callback update handler, or inside a function passed to loop.
### Async in [event handler](https://docs.madelineproto.xyz/docs/UPDATES.html#event-driven):
```php
$MadelineProto->async(true);
class EventHandler extends \danog\MadelineProto\EventHandler
{
public function onAny($update)
{
if (isset($update['message']['out']) && $update['message']['out']) {
return;
}
if (isset($update['message']['media']) && $update['message']['media']['_'] !== 'messageMediaGame') {
yield $this->download_to_dir($update, '/tmp');
yield $this->messages->sendMedia(['peer' => $update, 'message' => $update['message']['message'], 'media' => $update]);
}
$res = json_encode($update, JSON_PRETTY_PRINT);
yield $this->sleep(3);
try {
yield $this->sm($update, "<code>$res</code>\nAsynchronously, after 3 seconds");
} catch (\danog\MadelineProto\RPCErrorException $e) {
\danog\MadelineProto\Logger::log((string) $e, \danog\MadelineProto\Logger::FATAL_ERROR);
} catch (\danog\MadelineProto\Exception $e) {
\danog\MadelineProto\Logger::log((string) $e, \danog\MadelineProto\Logger::FATAL_ERROR);
}
}
public function sm($peer, $message)
{
yield $this->messages->sendMessage(['peer' => $peer, 'message' => $message, 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']);
}
}
```
### Async in [callback handler](https://docs.madelineproto.xyz/docs/UPDATES.html#callback):
```php
$MadelineProto->async(true);
$MadelineProto->setCallback(function ($update) use ($MadelineProto) {
if (isset($update['message']['out']) && $update['message']['out']) {
return;
}
yield $MadelineProto->sleep(3);
yield $MadelineProto->messages->sendMessage(['peer' => $update, 'message' => 'Hi after 3 seconds']);
});
```
### Wrapped async
```php
$MadelineProto->async(true);
$MadelineProto->loop(function () use ($MadelineProto) {
yield $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => 'hi']);
// You can also have an asynchronous get_updates (deprecated) loop in here, if you want to; just don't forget to use yield for all MadelineProto functions.
});
```
## Ignored async
```php
$MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => 'a'], ['async' => true]);
$MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => 'b'], ['async' => true]);
```
You can use the async version of MadelineProto functions **without** yield if you don't want the request to block, and you don't need the result of the function.
This is allowed, but the order of the function calls will not be guaranteed: you can use [call queues](https://docs.madelineproto.xyz/docs/USING_METHODS.html#queues) if you want to make sure the order of the calls remains the same.
## MadelineProto and AMPHP async APIs
MadelineProto and AMPHP both provide a lot of async functions: all of MadelineProto's functions are async, for example; and AMPHP provides [multiple packages](https://amphp.org/packages) to work asynchronously with HTTP requests, websockets, databases (MySQL, redis, postgres, DNS, sockets and [much more](https://github.com/amphp/)!
When using AMPHP libraries, you just have to use them with yield, no need to start the event loop, as long as you're running the functions inside MadelineProto's update handler/loop.
Also, you should read the AMPHP docs, especially the [event loop docs](https://amphp.org/amp/event-loop/api): AMPHP provides multiple helper methods for executing actions repeatedly every N seconds in a non-blocking manner, or to defer execution of certain actions (aka async cron).
MadelineProto also provides a few generic async helper methods:
```php
$MadelineProto->sleep(3); // Async sleep
```
<a href="https://docs.madelineproto.xyz/docs/CREATING_A_CLIENT.html">Next section</a>

View File

@ -125,4 +125,4 @@ while (true) {
}
```
<a href="https://docs.madelineproto.xyz/docs/FILES.html">Next section</a>
<a href="https://docs.madelineproto.xyz/docs/FILES.html">Next section</a>

View File

@ -22,4 +22,4 @@ MadelineProto provides a unified class for logging messages to the logging desti
By default, `$level` is `\danog\MadelineProto\Logger::NOTICE`.
<a href="https://docs.madelineproto.xyz/docs/CALLS.html">Next section</a>
<a href="https://docs.madelineproto.xyz/docs/CALLS.html">Next section</a>

View File

@ -208,4 +208,4 @@ $MadelineProto->setNoop();
```
When an [Update](https://docs.madelineproto.xyz/API_docs/types/Update.html) is received, nothing is done. This is useful if you need to populate the internal peer database with peers to avoid `This peer is not present in the internal peer database errors`, but don't need to handle updates.
<a href="https://docs.madelineproto.xyz/docs/SETTINGS.html">Next section</a>
<a href="https://docs.madelineproto.xyz/docs/SETTINGS.html">Next section</a>

View File

@ -5,8 +5,9 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
---
# MadelineProto, a PHP MTProto telegram client
Do join the official channel, [@MadelineProto](https://t.me/MadelineProto) and the [support groups](https://t.me/pwrtelegramgroup)!
Created by <a href="https://daniil.it" target="_blank" rel="noopener">Daniil Gentili</a>
Do join the official channel, [@MadelineProto](https://t.me/MadelineProto) and the [support groups](https://t.me/pwrtelegramgroup)!
## What's this?
@ -52,6 +53,16 @@ Tip: if you receive an error (or nothing), [send us](https://t.me/pwrtelegramgro
## Documentation
* [Async](https://docs.madelineproto.xyz/docs/ASYNC.html)
* [Usage](https://docs.madelineproto.xyz/docs/ASYNC.html#usage)
* [Loading the latest version of MadelineProto](https://docs.madelineproto.xyz/docs/ASYNC.html#loading-the-latest-version-of-madelineproto)
* [Enabling the MadelineProto async API](https://docs.madelineproto.xyz/docs/ASYNC.html#enabling-the-madelineproto-async-api)
* [Using the MadelineProto async API](https://docs.madelineproto.xyz/docs/ASYNC.html#using-the-madelineproto-async-api)
* [Async in event handler](https://docs.madelineproto.xyz/docs/ASYNC.html#async-in-event-handler)
* [Async in callback handler](https://docs.madelineproto.xyz/docs/ASYNC.html#async-in-callback-handler)
* [Wrapped async](https://docs.madelineproto.xyz/docs/ASYNC.html#wrapped-async)
* [Ignored async](https://docs.madelineproto.xyz/docs/ASYNC.html#ignored-async)
* [MadelineProto and AMPHP async APIs](https://docs.madelineproto.xyz/docs/ASYNC.html#madelineproto-and-amphp-async-apis)
* [Creating a client](https://docs.madelineproto.xyz/docs/CREATING_A_CLIENT.html)
* [Logging in](https://docs.madelineproto.xyz/docs/LOGIN.html)
* [Automatic](https://docs.madelineproto.xyz/docs/LOGIN.html#automatic)
@ -67,13 +78,8 @@ Tip: if you receive an error (or nothing), [send us](https://t.me/pwrtelegramgro
* [Composer from existing project](https://docs.madelineproto.xyz/docs/INSTALLATION.html#composer-from-existing-project)
* [Handling updates](https://docs.madelineproto.xyz/docs/UPDATES.html)
* [Event driven](https://docs.madelineproto.xyz/docs/UPDATES.html#event-driven)
* [Event driven multithreaded](https://docs.madelineproto.xyz/docs/UPDATES.html#event-driven-multithreaded)
* [Multi-account: Combined Event driven update handling](https://docs.madelineproto.xyz/docs/UPDATES.html#combined-event-driven)
* [Webhook](https://docs.madelineproto.xyz/docs/UPDATES.html#webhook)
* [Webhook multithreaded](https://docs.madelineproto.xyz/docs/UPDATES.html#webhook-multithreaded)
* [Long polling (getupdates)](https://docs.madelineproto.xyz/docs/UPDATES.html#long-polling)
* [Callback](https://docs.madelineproto.xyz/docs/UPDATES.html#callback)
* [Callback multithreaded](https://docs.madelineproto.xyz/docs/UPDATES.html#callback-multithreaded)
* [Noop](https://docs.madelineproto.xyz/docs/UPDATES.html#noop)
* [Settings](https://docs.madelineproto.xyz/docs/SETTINGS.html)
* [Getting info about the current user](https://docs.madelineproto.xyz/docs/SELF.html)

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -52,6 +52,7 @@ messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -72,6 +72,7 @@ If the length of the provided message is bigger than 4096, the message will be s
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -52,6 +52,7 @@ messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -72,6 +72,7 @@ If the length of the provided message is bigger than 4096, the message will be s
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -52,6 +52,7 @@ messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -73,6 +73,7 @@ If the length of the provided message is bigger than 4096, the message will be s
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -52,6 +52,7 @@ messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -73,6 +73,7 @@ If the length of the provided message is bigger than 4096, the message will be s
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -52,6 +52,7 @@ messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -80,6 +80,7 @@ If the length of the provided message is bigger than 4096, the message will be s
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -64,6 +64,7 @@ Updates = messages.forwardMessages({from_peer=InputPeer, id={int}, to_peer=Input
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -51,6 +51,7 @@ messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -113,6 +113,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -63,6 +63,7 @@ Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -51,6 +51,7 @@ messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -113,6 +113,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -65,6 +65,7 @@ Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -51,6 +51,7 @@ messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -115,6 +115,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -65,6 +65,7 @@ Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -53,6 +53,7 @@ messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_p
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -115,6 +115,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -65,6 +65,7 @@ Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -53,6 +53,7 @@ messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_p
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -115,6 +115,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -65,6 +65,7 @@ Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -53,6 +53,7 @@ messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_p
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -115,6 +115,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -65,6 +65,7 @@ Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -53,6 +53,7 @@ messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_p
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -115,6 +115,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

View File

@ -67,6 +67,7 @@ Updates = messages.forwardMessages({broadcast=Bool, silent=Bool, background=Bool
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|PTS_CHANGE_EMPTY|No PTS change|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|

View File

@ -53,6 +53,7 @@ messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_p
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -117,6 +117,7 @@ MadelineProto supports all html entities supported by [html_entity_decode](http:
|USER_IS_BOT|Bots can't send messages to other bots|
|YOU_BLOCKED_USER|You blocked this user|
|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|RANDOM_ID_DUPLICATE|You provided a random ID that was already used|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -55,6 +55,7 @@ Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
|USER_IS_BLOCKED|User is blocked|
|USER_IS_BOT|Bots can't send messages to other bots|
|MSGID_DECREASE_RETRY|IDK TBH|
|CHAT_WRITE_FORBIDDEN|You can't write in this chat|

View File

@ -50,6 +50,7 @@ Vector_of_User = users.getUsers({id={InputUser}, })
|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MEMBER_NO_LOCATION|An internal failure occurred while fetching user info (couldn't find location)|
|MSGID_DECREASE_RETRY|IDK TBH|
|NEED_MEMBER_INVALID|The provided member is invalid|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -54,6 +54,7 @@ channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, f
|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
|MSGID_DECREASE_RETRY|IDK TBH|
|Timeout|A timeout occurred while fetching data from the bot|

View File

@ -38,3 +38,11 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
### Errors this method can return:
| Error | Description |
|----------|---------------|
|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
|MSGID_DECREASE_RETRY|IDK TBH|

Some files were not shown because too many files have changed in this diff Show More