Updated to layer 66, added CDN file download logic, added option to send messages longer than 4096 chars, fixed documentation, fixed bugs
This commit is contained in:
parent
227273204a
commit
2bf609d044
2
.gitignore
vendored
2
.gitignore
vendored
@ -92,3 +92,5 @@ telegram-cli*
|
||||
src/danog/MadelineProto/Fuzzer.php
|
||||
fuzzer.php
|
||||
tests/500mb
|
||||
*.save
|
||||
*.save.1
|
||||
|
17
README.md
17
README.md
@ -16,9 +16,9 @@ Also note that MadelineProto will perform better if python and a big math extens
|
||||
|
||||
This project is in beta state.
|
||||
|
||||
The MadelineProto API documentation can be found [here (layer 65)](https://daniil.it/MadelineProto/API_docs/). VERY IMPORTANT READ THIS.
|
||||
The MadelineProto API documentation can be found [here (layer 66)](https://daniil.it/MadelineProto/API_docs/). VERY IMPORTANT READ THIS.
|
||||
|
||||
The TD documentation can be found [here](https://daniil.it/MadelineProto/TD_docs/).
|
||||
The TD documentation can be found [here](https://daniil.it/MadelineProto/TD_docs/). (you cannot use the methods described here in MadelineProto without the lua extension)
|
||||
|
||||
The MadelineProto API documentation (mtproto tl scheme) can be found [here](https://daniil.it/MadelineProto/MTProto_docs/).
|
||||
|
||||
@ -80,14 +80,21 @@ Thanks to the devs that contributed to these projects, MadelineProto is now an e
|
||||
|
||||
### RTFM
|
||||
|
||||
If you have some questions about the usage of the methods of this library, you can join the [support group](https://telegram.me/pwrtelegramgroup) or contact [@danogentili](https://telegram.me/danogentili).
|
||||
If you have some questions about the usage of the methods of this library, you can join the [support group](https://telegram.me/pwrtelegramgroup) or contact [@danogentili](https://telegram.me/danogentili).
|
||||
|
||||
But first, please read this WHOLE page very carefully, follow all links to external documentation, and read all examples in the repo.
|
||||
But first, please read this WHOLE page very carefully, follow all links to external documentation, and read all examples in the repo (bot.php, bots/, tests/testing.php).
|
||||
|
||||
If you don't understand something, read everything again.
|
||||
|
||||
You MUST know OOP programming in order to use this library.
|
||||
|
||||
I will NOT answer to questions that can be answered simply by reading this page; I will instead ask you to read it carefully twice.
|
||||
|
||||
A very important page you must read is the [API documentation](https://daniil.it/MadelineProto/API_docs/): if it's the first time you see a link to that page it means you didn't read the documentation carefully.
|
||||
|
||||
I can offer support, however, when it comes to MadelineProto bugs or problems in the documentation. I will not write code for you for free, however you can hire me to do that if you want (my rate is 50$ per hour); you can also buy an easy to use, customized MadelineProto base for only 30$.
|
||||
|
||||
If you're selling a MadelineProto base too, you really should consider donating at least 20% of the price of the base: [this is my PayPal](https://paypal.me/danog).
|
||||
|
||||
### Installation
|
||||
|
||||
@ -443,6 +450,8 @@ Methods that allow sending message entities (messages.sendMessage for example) a
|
||||
|
||||
To convert the results of methods to bot API objects you must provide a second parameter to method wrappers, containing an array with the `botAPI` key set to true.
|
||||
|
||||
To disable fetching the result of a method, the array that must be provided as second parameter to method wrapper must have the `noResponse` key set to true.
|
||||
|
||||
reply_markup accepts bot API reply markup objects as well as MTProto ones.
|
||||
|
||||
Note that when you login as a bot, MadelineProto also logins using the [PWRTelegram](https://pwrtelegram.xyz) API, to allow persistant storage of peers, even after a logout and another login.
|
||||
|
@ -38,9 +38,9 @@ $docs = [
|
||||
'readme' => false,
|
||||
],
|
||||
[
|
||||
'tl_schema' => ['telegram' => __DIR__.'/src/danog/MadelineProto/TL_telegram_v65.tl', 'calls' => __DIR__.'/src/danog/MadelineProto/TL_calls.tl', 'secret' => __DIR__.'/src/danog/MadelineProto/TL_secret.tl', 'td' => __DIR__.'/src/danog/MadelineProto/TL_td.tl'],
|
||||
'title' => 'MadelineProto API documentation (layer 65)',
|
||||
'description' => 'MadelineProto API documentation (layer 65)',
|
||||
'tl_schema' => ['telegram' => __DIR__.'/src/danog/MadelineProto/TL_telegram_v66.tl', 'calls' => __DIR__.'/src/danog/MadelineProto/TL_calls.tl', 'secret' => __DIR__.'/src/danog/MadelineProto/TL_secret.tl', 'td' => __DIR__.'/src/danog/MadelineProto/TL_td.tl'],
|
||||
'title' => 'MadelineProto API documentation (layer 66)',
|
||||
'description' => 'MadelineProto API documentation (layer 66)',
|
||||
'output_dir' => __DIR__.'/docs/API_docs',
|
||||
'readme' => false,
|
||||
],
|
||||
|
@ -55,7 +55,7 @@ if ($MadelineProto === false) {
|
||||
}
|
||||
if ($authorization['_'] === 'account.needSignup') {
|
||||
\danog\MadelineProto\Logger::log(['Registering new user'], \danog\MadelineProto\Logger::NOTICE);
|
||||
$authorization = $MadelineProto->complete_signup($code, readline('Please enter your first name: '), readline('Please enter your last name (can be empty): '));
|
||||
$authorization = $MadelineProto->complete_signup(readline('Please enter your first name: '), readline('Please enter your last name (can be empty): '));
|
||||
}
|
||||
echo 'Serializing MadelineProto to calls.madeline...'.PHP_EOL;
|
||||
echo 'Wrote '.\danog\MadelineProto\Serialization::serialize('calls.madeline', $MadelineProto).' bytes'.PHP_EOL;
|
||||
|
@ -14,6 +14,7 @@ description: dcOption attributes, type and example
|
||||
|ipv6|[Bool](../types/Bool.md) | Optional|
|
||||
|media\_only|[Bool](../types/Bool.md) | Optional|
|
||||
|tcpo\_only|[Bool](../types/Bool.md) | Optional|
|
||||
|cdn|[Bool](../types/Bool.md) | Optional|
|
||||
|id|[int](../types/int.md) | Yes|
|
||||
|ip\_address|[string](../types/string.md) | Yes|
|
||||
|port|[int](../types/int.md) | Yes|
|
||||
@ -26,14 +27,14 @@ description: dcOption attributes, type and example
|
||||
### Example:
|
||||
|
||||
```
|
||||
$dcOption = ['_' => 'dcOption', 'ipv6' => Bool, 'media_only' => Bool, 'tcpo_only' => Bool, 'id' => int, 'ip_address' => string, 'port' => int, ];
|
||||
$dcOption = ['_' => 'dcOption', 'ipv6' => Bool, 'media_only' => Bool, 'tcpo_only' => Bool, 'cdn' => Bool, 'id' => int, 'ip_address' => string, 'port' => int, ];
|
||||
```
|
||||
|
||||
Or, if you're into Lua:
|
||||
|
||||
|
||||
```
|
||||
dcOption={_='dcOption', ipv6=Bool, media_only=Bool, tcpo_only=Bool, id=int, ip_address=string, port=int, }
|
||||
dcOption={_='dcOption', ipv6=Bool, media_only=Bool, tcpo_only=Bool, cdn=Bool, id=int, ip_address=string, port=int, }
|
||||
|
||||
```
|
||||
|
||||
|
@ -11,6 +11,7 @@ description: documentAttributeVideo attributes, type and example
|
||||
|
||||
| Name | Type | Required |
|
||||
|----------|:-------------:|---------:|
|
||||
|round\_message|[Bool](../types/Bool.md) | Optional|
|
||||
|duration|[int](../types/int.md) | Yes|
|
||||
|w|[int](../types/int.md) | Yes|
|
||||
|h|[int](../types/int.md) | Yes|
|
||||
@ -23,14 +24,14 @@ description: documentAttributeVideo attributes, type and example
|
||||
### Example:
|
||||
|
||||
```
|
||||
$documentAttributeVideo = ['_' => 'documentAttributeVideo', 'duration' => int, 'w' => int, 'h' => int, ];
|
||||
$documentAttributeVideo = ['_' => 'documentAttributeVideo', 'round_message' => Bool, 'duration' => int, 'w' => int, 'h' => int, ];
|
||||
```
|
||||
|
||||
Or, if you're into Lua:
|
||||
|
||||
|
||||
```
|
||||
documentAttributeVideo={_='documentAttributeVideo', duration=int, w=int, h=int, }
|
||||
documentAttributeVideo={_='documentAttributeVideo', round_message=Bool, duration=int, w=int, h=int, }
|
||||
|
||||
```
|
||||
|
||||
|
@ -91,6 +91,12 @@ description: List of constructors
|
||||
***
|
||||
<br><br>[$botInlineResult](../constructors/botInlineResult.md) = \['id' => [string](../types/string.md), 'type' => [string](../types/string.md), 'title' => [string](../types/string.md), 'description' => [string](../types/string.md), 'url' => [string](../types/string.md), 'thumb_url' => [string](../types/string.md), 'content_url' => [string](../types/string.md), 'content_type' => [string](../types/string.md), 'w' => [int](../types/int.md), 'h' => [int](../types/int.md), 'duration' => [int](../types/int.md), 'send_message' => [BotInlineMessage](../types/BotInlineMessage.md), \];<a name="botInlineResult"></a>
|
||||
|
||||
***
|
||||
<br><br>[$cdnConfig](../constructors/cdnConfig.md) = \['public_keys' => \[[CdnPublicKey](../types/CdnPublicKey.md)\], \];<a name="cdnConfig"></a>
|
||||
|
||||
***
|
||||
<br><br>[$cdnPublicKey](../constructors/cdnPublicKey.md) = \['dc_id' => [int](../types/int.md), 'public_key' => [string](../types/string.md), \];<a name="cdnPublicKey"></a>
|
||||
|
||||
***
|
||||
<br><br>[$channel](../constructors/channel.md) = \['creator' => [Bool](../types/Bool.md), 'kicked' => [Bool](../types/Bool.md), 'left' => [Bool](../types/Bool.md), 'editor' => [Bool](../types/Bool.md), 'moderator' => [Bool](../types/Bool.md), 'broadcast' => [Bool](../types/Bool.md), 'verified' => [Bool](../types/Bool.md), 'megagroup' => [Bool](../types/Bool.md), 'restricted' => [Bool](../types/Bool.md), 'democracy' => [Bool](../types/Bool.md), 'signatures' => [Bool](../types/Bool.md), 'min' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'access_hash' => [long](../types/long.md), 'title' => [string](../types/string.md), 'username' => [string](../types/string.md), 'photo' => [ChatPhoto](../types/ChatPhoto.md), 'date' => [int](../types/int.md), 'version' => [int](../types/int.md), 'restriction_reason' => [string](../types/string.md), \];<a name="channel"></a>
|
||||
|
||||
@ -247,7 +253,7 @@ description: List of constructors
|
||||
<br><br>[$dataJSON](../constructors/dataJSON.md) = \['data' => [string](../types/string.md), \];<a name="dataJSON"></a>
|
||||
|
||||
***
|
||||
<br><br>[$dcOption](../constructors/dcOption.md) = \['ipv6' => [Bool](../types/Bool.md), 'media_only' => [Bool](../types/Bool.md), 'tcpo_only' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'ip_address' => [string](../types/string.md), 'port' => [int](../types/int.md), \];<a name="dcOption"></a>
|
||||
<br><br>[$dcOption](../constructors/dcOption.md) = \['ipv6' => [Bool](../types/Bool.md), 'media_only' => [Bool](../types/Bool.md), 'tcpo_only' => [Bool](../types/Bool.md), 'cdn' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'ip_address' => [string](../types/string.md), 'port' => [int](../types/int.md), \];<a name="dcOption"></a>
|
||||
|
||||
***
|
||||
<br><br>[$decryptedDataBlock](../constructors/decryptedDataBlock.md) = \['voice_call_id' => [int128](../types/int128.md), 'in_seq_no' => [int](../types/int.md), 'out_seq_no' => [int](../types/int.md), 'recent_received_mask' => [int](../types/int.md), 'proto' => [int](../types/int.md), 'extra' => [string](../types/string.md), 'raw_data' => [string](../types/string.md), \];<a name="decryptedDataBlock"></a>
|
||||
@ -640,6 +646,12 @@ description: List of constructors
|
||||
***
|
||||
<br><br>[$inputMessagesFilterPhotos](../constructors/inputMessagesFilterPhotos.md) = \[\];<a name="inputMessagesFilterPhotos"></a>
|
||||
|
||||
***
|
||||
<br><br>[$inputMessagesFilterRoundVideo](../constructors/inputMessagesFilterRoundVideo.md) = \[\];<a name="inputMessagesFilterRoundVideo"></a>
|
||||
|
||||
***
|
||||
<br><br>[$inputMessagesFilterRoundVoice](../constructors/inputMessagesFilterRoundVoice.md) = \[\];<a name="inputMessagesFilterRoundVoice"></a>
|
||||
|
||||
***
|
||||
<br><br>[$inputMessagesFilterUrl](../constructors/inputMessagesFilterUrl.md) = \[\];<a name="inputMessagesFilterUrl"></a>
|
||||
|
||||
@ -1300,6 +1312,9 @@ description: List of constructors
|
||||
***
|
||||
<br><br>[$sendMessageRecordAudioAction\_17](../constructors/sendMessageRecordAudioAction_17.md) = \[\];<a name="sendMessageRecordAudioAction_17"></a>
|
||||
|
||||
***
|
||||
<br><br>[$sendMessageRecordRoundAction](../constructors/sendMessageRecordRoundAction.md) = \[\];<a name="sendMessageRecordRoundAction"></a>
|
||||
|
||||
***
|
||||
<br><br>[$sendMessageRecordVideoAction\_17](../constructors/sendMessageRecordVideoAction_17.md) = \[\];<a name="sendMessageRecordVideoAction_17"></a>
|
||||
|
||||
@ -1315,6 +1330,9 @@ description: List of constructors
|
||||
***
|
||||
<br><br>[$sendMessageUploadPhotoAction\_17](../constructors/sendMessageUploadPhotoAction_17.md) = \[\];<a name="sendMessageUploadPhotoAction_17"></a>
|
||||
|
||||
***
|
||||
<br><br>[$sendMessageUploadRoundAction](../constructors/sendMessageUploadRoundAction.md) = \[\];<a name="sendMessageUploadRoundAction"></a>
|
||||
|
||||
***
|
||||
<br><br>[$sendMessageUploadVideoAction\_17](../constructors/sendMessageUploadVideoAction_17.md) = \[\];<a name="sendMessageUploadVideoAction_17"></a>
|
||||
|
||||
@ -1637,12 +1655,18 @@ description: List of constructors
|
||||
[$updates\_state](../constructors/updates_state.md) = \['pts' => [int](../types/int.md), 'qts' => [int](../types/int.md), 'date' => [int](../types/int.md), 'seq' => [int](../types/int.md), 'unread_count' => [int](../types/int.md), \];<a name="updates_state"></a>
|
||||
|
||||
***
|
||||
<br><br>[$upload\_file](../constructors/upload_file.md) = \['type' => [storage\_FileType](../types/storage_FileType.md), 'mtime' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \];<a name="upload_file"></a>
|
||||
<br><br>[$upload\_cdnFile](../constructors/upload_cdnFile.md) = \['bytes' => [bytes](../types/bytes.md), \];<a name="upload_cdnFile"></a>
|
||||
|
||||
[$upload\_cdnFileReuploadNeeded](../constructors/upload_cdnFileReuploadNeeded.md) = \['request_token' => [bytes](../types/bytes.md), \];<a name="upload_cdnFileReuploadNeeded"></a>
|
||||
|
||||
[$upload\_file](../constructors/upload_file.md) = \['type' => [storage\_FileType](../types/storage_FileType.md), 'mtime' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \];<a name="upload_file"></a>
|
||||
|
||||
[$upload\_fileCdnRedirect](../constructors/upload_fileCdnRedirect.md) = \['dc_id' => [int](../types/int.md), 'file_token' => [bytes](../types/bytes.md), 'encryption_key' => [bytes](../types/bytes.md), 'encryption_iv' => [bytes](../types/bytes.md), \];<a name="upload_fileCdnRedirect"></a>
|
||||
|
||||
[$upload\_webFile](../constructors/upload_webFile.md) = \['size' => [int](../types/int.md), 'mime_type' => [string](../types/string.md), 'file_type' => [storage\_FileType](../types/storage_FileType.md), 'mtime' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \];<a name="upload_webFile"></a>
|
||||
|
||||
***
|
||||
<br><br>[$user](../constructors/user.md) = \['self' => [Bool](../types/Bool.md), 'contact' => [Bool](../types/Bool.md), 'mutual_contact' => [Bool](../types/Bool.md), 'deleted' => [Bool](../types/Bool.md), 'bot' => [Bool](../types/Bool.md), 'bot_chat_history' => [Bool](../types/Bool.md), 'bot_nochats' => [Bool](../types/Bool.md), 'verified' => [Bool](../types/Bool.md), 'restricted' => [Bool](../types/Bool.md), 'min' => [Bool](../types/Bool.md), 'bot_inline_geo' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'access_hash' => [long](../types/long.md), 'first_name' => [string](../types/string.md), 'last_name' => [string](../types/string.md), 'username' => [string](../types/string.md), 'phone' => [string](../types/string.md), 'photo' => [UserProfilePhoto](../types/UserProfilePhoto.md), 'status' => [UserStatus](../types/UserStatus.md), 'bot_info_version' => [int](../types/int.md), 'restriction_reason' => [string](../types/string.md), 'bot_inline_placeholder' => [string](../types/string.md), \];<a name="user"></a>
|
||||
<br><br>[$user](../constructors/user.md) = \['self' => [Bool](../types/Bool.md), 'contact' => [Bool](../types/Bool.md), 'mutual_contact' => [Bool](../types/Bool.md), 'deleted' => [Bool](../types/Bool.md), 'bot' => [Bool](../types/Bool.md), 'bot_chat_history' => [Bool](../types/Bool.md), 'bot_nochats' => [Bool](../types/Bool.md), 'verified' => [Bool](../types/Bool.md), 'restricted' => [Bool](../types/Bool.md), 'min' => [Bool](../types/Bool.md), 'bot_inline_geo' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'access_hash' => [long](../types/long.md), 'first_name' => [string](../types/string.md), 'last_name' => [string](../types/string.md), 'username' => [string](../types/string.md), 'phone' => [string](../types/string.md), 'photo' => [UserProfilePhoto](../types/UserProfilePhoto.md), 'status' => [UserStatus](../types/UserStatus.md), 'bot_info_version' => [int](../types/int.md), 'restriction_reason' => [string](../types/string.md), 'bot_inline_placeholder' => [string](../types/string.md), 'lang_code' => [string](../types/string.md), \];<a name="user"></a>
|
||||
|
||||
***
|
||||
<br><br>[$userEmpty](../constructors/userEmpty.md) = \['id' => [int](../types/int.md), \];<a name="userEmpty"></a>
|
||||
|
@ -33,6 +33,7 @@ description: user attributes, type and example
|
||||
|bot\_info\_version|[int](../types/int.md) | Optional|
|
||||
|restriction\_reason|[string](../types/string.md) | Optional|
|
||||
|bot\_inline\_placeholder|[string](../types/string.md) | Optional|
|
||||
|lang\_code|[string](../types/string.md) | Optional|
|
||||
|
||||
|
||||
|
||||
@ -42,14 +43,14 @@ description: user attributes, type and example
|
||||
### Example:
|
||||
|
||||
```
|
||||
$user = ['_' => 'user', 'self' => Bool, 'contact' => Bool, 'mutual_contact' => Bool, 'deleted' => Bool, 'bot' => Bool, 'bot_chat_history' => Bool, 'bot_nochats' => Bool, 'verified' => Bool, 'restricted' => Bool, 'min' => Bool, 'bot_inline_geo' => Bool, 'id' => int, 'access_hash' => long, 'first_name' => string, 'last_name' => string, 'username' => string, 'phone' => string, 'photo' => UserProfilePhoto, 'status' => UserStatus, 'bot_info_version' => int, 'restriction_reason' => string, 'bot_inline_placeholder' => string, ];
|
||||
$user = ['_' => 'user', 'self' => Bool, 'contact' => Bool, 'mutual_contact' => Bool, 'deleted' => Bool, 'bot' => Bool, 'bot_chat_history' => Bool, 'bot_nochats' => Bool, 'verified' => Bool, 'restricted' => Bool, 'min' => Bool, 'bot_inline_geo' => Bool, 'id' => int, 'access_hash' => long, 'first_name' => string, 'last_name' => string, 'username' => string, 'phone' => string, 'photo' => UserProfilePhoto, 'status' => UserStatus, 'bot_info_version' => int, 'restriction_reason' => string, 'bot_inline_placeholder' => string, 'lang_code' => string, ];
|
||||
```
|
||||
|
||||
Or, if you're into Lua:
|
||||
|
||||
|
||||
```
|
||||
user={_='user', self=Bool, contact=Bool, mutual_contact=Bool, deleted=Bool, bot=Bool, bot_chat_history=Bool, bot_nochats=Bool, verified=Bool, restricted=Bool, min=Bool, bot_inline_geo=Bool, id=int, access_hash=long, first_name=string, last_name=string, username=string, phone=string, photo=UserProfilePhoto, status=UserStatus, bot_info_version=int, restriction_reason=string, bot_inline_placeholder=string, }
|
||||
user={_='user', self=Bool, contact=Bool, mutual_contact=Bool, deleted=Bool, bot=Bool, bot_chat_history=Bool, bot_nochats=Bool, verified=Bool, restricted=Bool, min=Bool, bot_inline_geo=Bool, id=int, access_hash=long, first_name=string, last_name=string, username=string, phone=string, photo=UserProfilePhoto, status=UserStatus, bot_info_version=int, restriction_reason=string, bot_inline_placeholder=string, lang_code=string, }
|
||||
|
||||
```
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
title: MadelineProto API documentation (layer 65)
|
||||
description: MadelineProto API documentation (layer 65)
|
||||
title: MadelineProto API documentation (layer 66)
|
||||
description: MadelineProto API documentation (layer 66)
|
||||
---
|
||||
# MadelineProto API documentation (layer 65)
|
||||
# MadelineProto API documentation (layer 66)
|
||||
|
||||
[Methods](methods/)
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = help.setBotUpdatesStatus({pending_updates_count=int, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -202,6 +202,8 @@ $MadelineProto->[destroy_session](destroy_session.md)(\['session_id' => [long](.
|
||||
|
||||
$MadelineProto->[help->getAppUpdate](help_getAppUpdate.md)(\[\]) === [$help\_AppUpdate](../types/help_AppUpdate.md)<a name="help_getAppUpdate"></a>
|
||||
|
||||
$MadelineProto->[help->getCdnConfig](help_getCdnConfig.md)(\[\]) === [$CdnConfig](../types/CdnConfig.md)<a name="help_getCdnConfig"></a>
|
||||
|
||||
$MadelineProto->[help->getConfig](help_getConfig.md)(\[\]) === [$Config](../types/Config.md)<a name="help_getConfig"></a>
|
||||
|
||||
$MadelineProto->[help->getInviteText](help_getInviteText.md)(\[\]) === [$help\_InviteText](../types/help_InviteText.md)<a name="help_getInviteText"></a>
|
||||
@ -465,10 +467,14 @@ $MadelineProto->[updates->getDifference](updates_getDifference.md)(\['pts' => [i
|
||||
$MadelineProto->[updates->getState](updates_getState.md)(\[\]) === [$updates\_State](../types/updates_State.md)<a name="updates_getState"></a>
|
||||
|
||||
***
|
||||
<br><br>$MadelineProto->[upload->getFile](upload_getFile.md)(\['location' => [InputFileLocation](../types/InputFileLocation.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_File](../types/upload_File.md)<a name="upload_getFile"></a>
|
||||
<br><br>$MadelineProto->[upload->getCdnFile](upload_getCdnFile.md)(\['file_token' => [bytes](../types/bytes.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_CdnFile](../types/upload_CdnFile.md)<a name="upload_getCdnFile"></a>
|
||||
|
||||
$MadelineProto->[upload->getFile](upload_getFile.md)(\['location' => [InputFileLocation](../types/InputFileLocation.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_File](../types/upload_File.md)<a name="upload_getFile"></a>
|
||||
|
||||
$MadelineProto->[upload->getWebFile](upload_getWebFile.md)(\['location' => [InputWebFileLocation](../types/InputWebFileLocation.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_WebFile](../types/upload_WebFile.md)<a name="upload_getWebFile"></a>
|
||||
|
||||
$MadelineProto->[upload->reuploadCdnFile](upload_reuploadCdnFile.md)(\['file_token' => [bytes](../types/bytes.md), 'request_token' => [bytes](../types/bytes.md), \]) === [$Bool](../types/Bool.md)<a name="upload_reuploadCdnFile"></a>
|
||||
|
||||
$MadelineProto->[upload->saveBigFilePart](upload_saveBigFilePart.md)(\['file_id' => [long](../types/long.md), 'file_part' => [int](../types/int.md), 'file_total_parts' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \]) === [$Bool](../types/Bool.md)<a name="upload_saveBigFilePart"></a>
|
||||
|
||||
$MadelineProto->[upload->saveFilePart](upload_saveFilePart.md)(\['file_id' => [long](../types/long.md), 'file_part' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \]) === [$Bool](../types/Bool.md)<a name="upload_saveFilePart"></a>
|
||||
|
@ -54,6 +54,12 @@ You can provide bot API reply_markup objects here.
|
||||
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
||||
## Usage of parse_mode:
|
||||
|
||||
Set parse_mode to html to enable HTML parsing of the message.
|
||||
|
@ -55,6 +55,12 @@ You can provide bot API reply_markup objects here.
|
||||
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
||||
## Usage of parse_mode:
|
||||
|
||||
Set parse_mode to html to enable HTML parsing of the message.
|
||||
|
@ -42,3 +42,9 @@ Or, if you're into Lua:
|
||||
MessageMedia = messages.getWebPagePreview({message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [MessageMedia](../types/MessageMedia.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -48,6 +48,12 @@ Bool = messages.saveDraft({no_webpage=Bool, reply_to_msg_id=int, peer=InputPeer,
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
||||
## Usage of parse_mode:
|
||||
|
||||
Set parse_mode to html to enable HTML parsing of the message.
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -58,6 +58,12 @@ You can provide bot API reply_markup objects here.
|
||||
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
||||
## Usage of parse_mode:
|
||||
|
||||
Set parse_mode to html to enable HTML parsing of the message.
|
||||
|
@ -46,3 +46,9 @@ Or, if you're into Lua:
|
||||
Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message=string, url=string, cache_time=int, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -33,6 +33,10 @@ description: constructors and methods of type MessagesFilter
|
||||
|
||||
[inputMessagesFilterPhoneCalls](../constructors/inputMessagesFilterPhoneCalls.md)
|
||||
|
||||
[inputMessagesFilterRoundVoice](../constructors/inputMessagesFilterRoundVoice.md)
|
||||
|
||||
[inputMessagesFilterRoundVideo](../constructors/inputMessagesFilterRoundVideo.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ReceivedNotifyMessage
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[receivedNotifyMessage](../constructors/receivedNotifyMessage.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -33,6 +33,10 @@ Notifies about activity in chat
|
||||
|
||||
[sendMessageGamePlayAction](../constructors/sendMessageGamePlayAction.md)
|
||||
|
||||
[sendMessageRecordRoundAction](../constructors/sendMessageRecordRoundAction.md)
|
||||
|
||||
[sendMessageUploadRoundAction](../constructors/sendMessageUploadRoundAction.md)
|
||||
|
||||
[sendMessageTypingAction\_17](../constructors/sendMessageTypingAction_17.md)
|
||||
|
||||
[sendMessageCancelAction\_17](../constructors/sendMessageCancelAction_17.md)
|
||||
|
@ -9,6 +9,10 @@ description: constructors and methods of type StickerSetCovered
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[stickerSetCovered](../constructors/stickerSetCovered.md)
|
||||
|
||||
[stickerSetMultiCovered](../constructors/stickerSetMultiCovered.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -26,11 +26,23 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[user](../constructors/user.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -22,6 +22,10 @@ description: List of types
|
||||
|
||||
[BotInlineResult](BotInlineResult.md)<a name="BotInlineResult"></a>
|
||||
|
||||
[CdnConfig](CdnConfig.md)<a name="CdnConfig"></a>
|
||||
|
||||
[CdnPublicKey](CdnPublicKey.md)<a name="CdnPublicKey"></a>
|
||||
|
||||
[ChannelMessagesFilter](ChannelMessagesFilter.md)<a name="ChannelMessagesFilter"></a>
|
||||
|
||||
[ChannelParticipant](ChannelParticipant.md)<a name="ChannelParticipant"></a>
|
||||
@ -306,20 +310,6 @@ description: List of types
|
||||
|
||||
[UserStatus](UserStatus.md)<a name="UserStatus"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[ReceivedNotifyMessage](ReceivedNotifyMessage.md)<a name="ReceivedNotifyMessage"></a>
|
||||
|
||||
[StickerSetCovered](StickerSetCovered.md)<a name="StickerSetCovered"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[WebDocument](WebDocument.md)<a name="WebDocument"></a>
|
||||
@ -380,6 +370,10 @@ description: List of types
|
||||
|
||||
[help\_TermsOfService](help_TermsOfService.md)<a name="help_TermsOfService"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AffectedMessages](messages_AffectedMessages.md)<a name="messages_AffectedMessages"></a>
|
||||
@ -448,6 +442,8 @@ description: List of types
|
||||
|
||||
[updates\_State](updates_State.md)<a name="updates_State"></a>
|
||||
|
||||
[upload\_CdnFile](upload_CdnFile.md)<a name="upload_CdnFile"></a>
|
||||
|
||||
[upload\_File](upload_File.md)<a name="upload_File"></a>
|
||||
|
||||
[upload\_WebFile](upload_WebFile.md)<a name="upload_WebFile"></a>
|
||||
|
@ -11,6 +11,8 @@ description: constructors and methods of type upload_File
|
||||
|
||||
[upload\_file](../constructors/upload_file.md)
|
||||
|
||||
[upload\_fileCdnRedirect](../constructors/upload_fileCdnRedirect.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -15,6 +15,7 @@ description: chat attributes, type and example
|
||||
|access\_hash|[long](API_docs/types/long.md) | Yes|access hash of peer|
|
||||
|first\_name|[string](API_docs/types/string.md) | Yes|First name of the user|
|
||||
|last\_name|[string](API_docs/types/string.md) | Optional|Last name of the user|
|
||||
|lang\_code|[string](API_docs/types/string.md) | Optional|Language of the user|
|
||||
|username|[string](API_docs/types/string.md) | Optional|Username|
|
||||
|verified|[Bool](API_docs/types/Bool.md) | Optional|Is the peer official?|
|
||||
|restricted|[Bool](API_docs/types/Bool.md) | Optional|Is the peer restricted to the current user?|
|
||||
|
@ -20,9 +20,9 @@ Also note that MadelineProto will perform better if python and a big math extens
|
||||
|
||||
This project is in beta state.
|
||||
|
||||
The MadelineProto API documentation can be found [here (layer 65)](https://daniil.it/MadelineProto/API_docs/). VERY IMPORTANT READ THIS.
|
||||
The MadelineProto API documentation can be found [here (layer 66)](https://daniil.it/MadelineProto/API_docs/). VERY IMPORTANT READ THIS.
|
||||
|
||||
The TD documentation can be found [here](https://daniil.it/MadelineProto/TD_docs/).
|
||||
The TD documentation can be found [here](https://daniil.it/MadelineProto/TD_docs/). (you cannot use the methods described here in MadelineProto without the lua extension)
|
||||
|
||||
The MadelineProto API documentation (mtproto tl scheme) can be found [here](https://daniil.it/MadelineProto/MTProto_docs/).
|
||||
|
||||
@ -84,14 +84,21 @@ Thanks to the devs that contributed to these projects, MadelineProto is now an e
|
||||
|
||||
### RTFM
|
||||
|
||||
If you have some questions about the usage of the methods of this library, you can join the [support group](https://telegram.me/pwrtelegramgroup) or contact [@danogentili](https://telegram.me/danogentili).
|
||||
If you have some questions about the usage of the methods of this library, you can join the [support group](https://telegram.me/pwrtelegramgroup) or contact [@danogentili](https://telegram.me/danogentili).
|
||||
|
||||
But first, please read this WHOLE page very carefully, follow all links to external documentation, and read all examples in the repo.
|
||||
But first, please read this WHOLE page very carefully, follow all links to external documentation, and read all examples in the repo (bot.php, bots/, tests/testing.php).
|
||||
|
||||
If you don't understand something, read everything again.
|
||||
|
||||
You MUST know OOP programming in order to use this library.
|
||||
|
||||
I will NOT answer to questions that can be answered simply by reading this page; I will instead ask you to read it carefully twice.
|
||||
|
||||
A very important page you must read is the [API documentation](https://daniil.it/MadelineProto/API_docs/): if it's the first time you see a link to that page it means you didn't read the documentation carefully.
|
||||
|
||||
I can offer support, however, when it comes to MadelineProto bugs or problems in the documentation. I will not write code for you for free, however you can hire me to do that if you want (my rate is 50$ per hour); you can also buy an easy to use, customized MadelineProto base for only 30$.
|
||||
|
||||
If you're selling a MadelineProto base too, you really should consider donating at least 20% of the price of the base: [this is my PayPal](https://paypal.me/danog).
|
||||
|
||||
### Installation
|
||||
|
||||
@ -447,6 +454,8 @@ Methods that allow sending message entities (messages.sendMessage for example) a
|
||||
|
||||
To convert the results of methods to bot API objects you must provide a second parameter to method wrappers, containing an array with the `botAPI` key set to true.
|
||||
|
||||
To disable fetching the result of a method, the array that must be provided as second parameter to method wrapper must have the `noResponse` key set to true.
|
||||
|
||||
reply_markup accepts bot API reply markup objects as well as MTProto ones.
|
||||
|
||||
Note that when you login as a bot, MadelineProto also logins using the [PWRTelegram](https://pwrtelegram.xyz) API, to allow persistant storage of peers, even after a logout and another login.
|
||||
|
89
log
89
log
@ -1,89 +0,0 @@
|
||||
Deserializing MadelineProto from session.madeline...
|
||||
MTProto, magnaluna: Resetting session id and seq_no in DC 2...
|
||||
MTProto, magnaluna: Resetting session id and seq_no in DC 1...
|
||||
MTProto, magnaluna: Resetting session id and seq_no in DC 3...
|
||||
MTProto, magnaluna: Resetting session id and seq_no in DC 4...
|
||||
MTProto, magnaluna: Resetting session id and seq_no in DC 5...
|
||||
MTProto, magnaluna: Serialization is out of date, reconstructing object!
|
||||
Exception, magnaluna: file_get_contents(http://ipv6.test-ipv6.com/): failed to open stream: Network is unreachable in MTProto.php:187
|
||||
TL, magnaluna: Loading TL schemes...
|
||||
TL, magnaluna: Parsing TL_mtproto_v1.json...
|
||||
TL, magnaluna: Parsing TL_telegram_v62.tl...
|
||||
TL, magnaluna: Parsing TL_secret.tl...
|
||||
TL, magnaluna: Parsing TL_td.tl...
|
||||
TL, magnaluna: Parsing TL_botAPI.tl...
|
||||
CallHandler, magnaluna: Calling method (try number 1 for help.getNearestDc)...
|
||||
ResponseHandler, magnaluna: Received msg_container.
|
||||
ResponseHandler, magnaluna: Received new_session_created.
|
||||
CallHandler, magnaluna: Calling method (try number 1 for updates.getDifference)...
|
||||
ResponseHandler, magnaluna: Received new_session_created.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 3, is 1, new_session_created)
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 5, is 3, nearestDc)
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 7, is 5, rpc_error)
|
||||
Exception, magnaluna: Received request to switch to DC 1 in ResponseHandler.php:327
|
||||
CallHandler, magnaluna: An error occurred while calling method updates.getDifference: Received request to switch to DC 1 in ResponseHandler on line 327. Recreating connection and retrying to call method...
|
||||
CallHandler, magnaluna: Calling method (try number 2 for updates.getDifference)...
|
||||
ResponseHandler, magnaluna: Received msg_container.
|
||||
ResponseHandler, magnaluna: Received new_session_created.
|
||||
ResponseHandler, magnaluna: Received msgs_ack.
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
UpdateHandler, magnaluna: Got updates.difference
|
||||
MessageHandler, magnaluna: I do not have the secret chat -1302339158 in the database, skipping message...
|
||||
MessageHandler, magnaluna: I do not have the secret chat -1302339158 in the database, skipping message...
|
||||
UpdateHandler, magnaluna: Handling an update of type updateEncryptedMessagesRead...
|
||||
UpdateHandler, magnaluna: Saving an update of type updateEncryptedMessagesRead...
|
||||
ResponseHandler, magnaluna: Received msgs_ack.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 8, is 2, msgs_ack)
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 8, is 2, msg_container)
|
||||
MTProto, magnaluna: We're in NL, current dc is 2, nearest dc is 4.
|
||||
MTProto, magnaluna: Getting updates after deserialization...
|
||||
CallHandler, magnaluna: Calling method (try number 1 for updates.getDifference)...
|
||||
ResponseHandler, magnaluna: Received msg_container.
|
||||
ResponseHandler, magnaluna: Received new_session_created.
|
||||
ResponseHandler, magnaluna: Received msgs_ack.
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
Exception, magnaluna: Received request to switch to DC 1 in ResponseHandler.php:327
|
||||
CallHandler, magnaluna: An error occurred while calling method updates.getDifference: Received request to switch to DC 1 in ResponseHandler on line 327. Recreating connection and retrying to call method...
|
||||
CallHandler, magnaluna: Calling method (try number 2 for updates.getDifference)...
|
||||
ResponseHandler, magnaluna: Received msg_container.
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 5, is 3, updates.difference)
|
||||
ResponseHandler, magnaluna: Received msgs_ack.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 6, is 4, msgs_ack)
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 6, is 4, msg_container)
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 7, is 5, updates.differenceEmpty)
|
||||
UpdateHandler, magnaluna: Got updates.differenceEmpty
|
||||
Loading .env...
|
||||
Loading settings...
|
||||
Serializing MadelineProto to session.madeline...
|
||||
Wrote 643125 bytes
|
||||
Size of MadelineProto instance is 643125 bytes
|
||||
AuthKeyHandler, magnaluna: Creating secret chat with 219474624...
|
||||
CallHandler, magnaluna: Calling method (try number 1 for messages.getDhConfig)...
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 9, is 7, messages.dhConfig)
|
||||
AuthKeyHandler, magnaluna: Executing p/g checks (1/2)...
|
||||
AuthKeyHandler, magnaluna: Executing p/g checks (2/2)...
|
||||
AuthKeyHandler, magnaluna: Executing g check...
|
||||
AuthKeyHandler, magnaluna: Generating a...
|
||||
AuthKeyHandler, magnaluna: Generating g_a...
|
||||
AuthKeyHandler, magnaluna: Executing g_a check (1/2)...
|
||||
AuthKeyHandler, magnaluna: Executing g_a check (2/2)...
|
||||
CallHandler, magnaluna: Calling method (try number 1 for messages.requestEncryption)...
|
||||
ResponseHandler, magnaluna: Received updateShort.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 11, is 9, updateShort)
|
||||
ResponseHandler, magnaluna: Parsing updates received via the socket...
|
||||
UpdateHandler, magnaluna: Handling an update of type updateUserStatus...
|
||||
UpdateHandler, magnaluna: Saving an update of type updateUserStatus...
|
||||
ResponseHandler, magnaluna: Received rpc_result.
|
||||
SeqNoHandler, magnaluna: SECURITY WARNING: Seqno mismatch (should be 13, is 11, rpc_error)
|
||||
PHP Fatal error: Uncaught danog\MadelineProto\RPCErrorException: FLOOD_WAIT_169 in /home/pwrtelegram/repos/repos/BruhhBot-Madeline/MadelineProto/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php:354
|
||||
Stack trace:
|
||||
#0 /home/pwrtelegram/repos/repos/BruhhBot-Madeline/MadelineProto/src/danog/MadelineProto/MTProtoTools/CallHandler.php(93): danog\MadelineProto\MTProto->handle_rpc_error(Array, 1)
|
||||
#1 /home/pwrtelegram/repos/repos/BruhhBot-Madeline/MadelineProto/src/danog/MadelineProto/SecretChats/AuthKeyHandler.php(55): danog\MadelineProto\MTProto->method_call('messages.reques...', Array, Array)
|
||||
#2 /home/pwrtelegram/repos/repos/BruhhBot-Madeline/MadelineProto/tests/testing.php(74): danog\MadelineProto\MTProto->request_secret_chat(Array)
|
||||
#3 {main}
|
||||
thrown in /home/pwrtelegram/repos/repos/BruhhBot-Madeline/MadelineProto/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php on line 354
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_StatedMessages = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_StatedMessages](../types/messages_StatedMessages.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentMessage = messages.sendMessage({peer=InputPeer, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -132,16 +132,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -178,6 +168,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_ChatFull](messages_ChatFull.md)<a name="messages_ChatFull"></a>
|
||||
|
@ -26,11 +26,29 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[userSelf](../constructors/userSelf.md)
|
||||
|
||||
[userContact](../constructors/userContact.md)
|
||||
|
||||
[userRequest](../constructors/userRequest.md)
|
||||
|
||||
[userForeign](../constructors/userForeign.md)
|
||||
|
||||
[userDeleted](../constructors/userDeleted.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_StatedMessages = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_StatedMessages](../types/messages_StatedMessages.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentMessage = messages.sendMessage({peer=InputPeer, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -150,16 +150,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -200,6 +190,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AllStickers](messages_AllStickers.md)<a name="messages_AllStickers"></a>
|
||||
|
@ -26,11 +26,33 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[userSelf](../constructors/userSelf.md)
|
||||
|
||||
[userContact](../constructors/userContact.md)
|
||||
|
||||
[userRequest](../constructors/userRequest.md)
|
||||
|
||||
[userForeign](../constructors/userForeign.md)
|
||||
|
||||
[userDeleted](../constructors/userDeleted.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->contacts->resolveUsername](../methods/contacts_resolveUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
geochats_StatedMessage = geochats.sendMessage({peer=InputGeoChat, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [geochats\_StatedMessage](../types/geochats_StatedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_StatedMessages = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_StatedMessages](../types/messages_StatedMessages.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentMessage = messages.sendMessage({peer=InputPeer, reply_to_msg_id=int, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -154,16 +154,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -208,6 +198,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AffectedMessages](messages_AffectedMessages.md)<a name="messages_AffectedMessages"></a>
|
||||
|
@ -26,11 +26,33 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[userSelf](../constructors/userSelf.md)
|
||||
|
||||
[userContact](../constructors/userContact.md)
|
||||
|
||||
[userRequest](../constructors/userRequest.md)
|
||||
|
||||
[userForeign](../constructors/userForeign.md)
|
||||
|
||||
[userDeleted](../constructors/userDeleted.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->contacts->resolveUsername](../methods/contacts_resolveUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
geochats_StatedMessage = geochats.sendMessage({peer=InputGeoChat, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [geochats\_StatedMessage](../types/geochats_StatedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -42,3 +42,9 @@ Or, if you're into Lua:
|
||||
MessageMedia = messages.getWebPagePreview({message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [MessageMedia](../types/MessageMedia.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
Updates = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentMessage = messages.sendMessage({peer=InputPeer, reply_to_msg_id=int, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -156,16 +156,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -220,6 +210,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AffectedMessages](messages_AffectedMessages.md)<a name="messages_AffectedMessages"></a>
|
||||
|
@ -26,11 +26,33 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[userSelf](../constructors/userSelf.md)
|
||||
|
||||
[userContact](../constructors/userContact.md)
|
||||
|
||||
[userRequest](../constructors/userRequest.md)
|
||||
|
||||
[userForeign](../constructors/userForeign.md)
|
||||
|
||||
[userDeleted](../constructors/userDeleted.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->contacts->resolveUsername](../methods/contacts_resolveUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
geochats_StatedMessage = geochats.sendMessage({peer=InputGeoChat, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [geochats\_StatedMessage](../types/geochats_StatedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -42,3 +42,9 @@ Or, if you're into Lua:
|
||||
MessageMedia = messages.getWebPagePreview({message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [MessageMedia](../types/MessageMedia.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
Updates = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -51,3 +51,9 @@ messages_SentMessage = messages.sendMessage({peer=InputPeer, reply_to_msg_id=int
|
||||
You can provide bot API reply_markup objects here.
|
||||
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -176,18 +176,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[ReceivedNotifyMessage](ReceivedNotifyMessage.md)<a name="ReceivedNotifyMessage"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -244,6 +232,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AffectedMessages](messages_AffectedMessages.md)<a name="messages_AffectedMessages"></a>
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ReceivedNotifyMessage
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[receivedNotifyMessage](../constructors/receivedNotifyMessage.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -26,11 +26,25 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[user](../constructors/user.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->contacts->resolveUsername](../methods/contacts_resolveUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
|
||||
|
||||
|
@ -17,5 +17,7 @@ description: constructors and methods of type WallPaper
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->getWallPapers](../methods/account_getWallPapers.md)
|
||||
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
Bool = auth.sendInvites({phone_numbers={string}, message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -42,3 +42,9 @@ Or, if you're into Lua:
|
||||
MessageMedia = messages.getWebPagePreview({message=string, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [MessageMedia](../types/MessageMedia.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
Updates = messages.sendBroadcast({contacts={InputUser}, message=string, media=InputMedia, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -44,3 +44,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedChat, message=DecryptedMessage, file=InputEncryptedFile, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -43,3 +43,9 @@ Or, if you're into Lua:
|
||||
messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncryptedChat, message=DecryptedMessage, })
|
||||
```
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
|
||||
|
||||
|
||||
|
@ -54,6 +54,12 @@ You can provide bot API reply_markup objects here.
|
||||
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Updates](../types/Updates.md) will be returned instead.
|
||||
|
||||
|
||||
|
||||
## Usage of parse_mode:
|
||||
|
||||
Set parse_mode to html to enable HTML parsing of the message.
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ContactStatus
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[contactStatus](../constructors/contactStatus.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -184,18 +184,6 @@ description: List of types
|
||||
|
||||
[Vector t](Vector t.md)<a name="Vector t"></a>
|
||||
|
||||
[ContactStatus](ContactStatus.md)<a name="ContactStatus"></a>
|
||||
|
||||
[ReceivedNotifyMessage](ReceivedNotifyMessage.md)<a name="ReceivedNotifyMessage"></a>
|
||||
|
||||
[User](User.md)<a name="User"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[Video](Video.md)<a name="Video"></a>
|
||||
|
||||
[WallPaper](WallPaper.md)<a name="WallPaper"></a>
|
||||
@ -252,6 +240,10 @@ description: List of types
|
||||
|
||||
[help\_Support](help_Support.md)<a name="help_Support"></a>
|
||||
|
||||
[int](int.md)<a name="int"></a>
|
||||
|
||||
[long](long.md)<a name="long"></a>
|
||||
|
||||
[messages\_AffectedHistory](messages_AffectedHistory.md)<a name="messages_AffectedHistory"></a>
|
||||
|
||||
[messages\_AffectedMessages](messages_AffectedMessages.md)<a name="messages_AffectedMessages"></a>
|
||||
|
@ -9,6 +9,8 @@ description: constructors and methods of type ReceivedNotifyMessage
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[receivedNotifyMessage](../constructors/receivedNotifyMessage.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
@ -26,11 +26,23 @@ A [Chat](Chat.md), a [User](User.md), an [InputPeer](InputPeer.md), an [InputUse
|
||||
|
||||
### Possible values (constructors):
|
||||
|
||||
[userEmpty](../constructors/userEmpty.md)
|
||||
|
||||
[user](../constructors/user.md)
|
||||
|
||||
|
||||
|
||||
### Methods that return an object of this type (methods):
|
||||
|
||||
[$MadelineProto->account->updateProfile](../methods/account_updateProfile.md)
|
||||
|
||||
[$MadelineProto->users->getUsers](../methods/users_getUsers.md)
|
||||
|
||||
[$MadelineProto->contacts->importCard](../methods/contacts_importCard.md)
|
||||
|
||||
[$MadelineProto->account->updateUsername](../methods/account_updateUsername.md)
|
||||
|
||||
[$MadelineProto->account->changePhone](../methods/account_changePhone.md)
|
||||
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user