Bugfixes and docufixes
This commit is contained in:
parent
a1018576a0
commit
59473ebb31
36
README.md
36
README.md
@ -79,6 +79,15 @@ To install *all of the requirements* on `Ubuntu`, `Debian`, `Devuan`, or any oth
|
||||
curl https://daniil.it/php.sh | sudo bash -e
|
||||
```
|
||||
|
||||
Or you can install PHP 7 from a PPA:
|
||||
|
||||
```
|
||||
sudo apt-get install python-software-properties software-properties-common
|
||||
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
|
||||
sudo apt-get update
|
||||
sudo apt-get install php7.1 php7.1-dev php7.1-fpm php7.1-curl php7.1-xml php7.1-mbstring php7.1-zip -y
|
||||
```
|
||||
|
||||
|
||||
On other platforms, use [Google](https://google.com) to find out how to install the following dependencies.
|
||||
|
||||
@ -155,24 +164,25 @@ You can find examples for nearly every MadelineProto function in
|
||||
|
||||
### Storing sessions
|
||||
|
||||
VERY IMPORTANT: An istance of MadelineProto MUST be serialized every time an update is fetched, and on shutdown. To serialize MadelineProto to a file, do the following:
|
||||
To store information about an account session, serialization must be done.
|
||||
|
||||
When loading an already logged in session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
|
||||
$MadelineProto->serialize();
|
||||
```
|
||||
An istance of MadelineProto is automatically serialized every `$settings['serialization']['serialization_interval']` seconds (by default 30 seconds), and on shutdown.
|
||||
|
||||
When loading a new session:
|
||||
To set the serialization destination file, do the following:
|
||||
|
||||
When creating a new session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API($settings);
|
||||
$MadelineProto->session = 'session.madeline';
|
||||
$MadelineProto->serialize();
|
||||
$MadelineProto->session = 'session.madeline'; // The session will be serialized to session.madeline
|
||||
$MadelineProto->serialize(); // Force first serialization
|
||||
```
|
||||
|
||||
If the scripts shutsdown normally (without ctrl+c or fatal errors/exceptions), the session will be serialized automatically.
|
||||
To load a serialized session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
|
||||
```
|
||||
|
||||
It is **strongly** recommended to serialize the session with `$MadelineProto->serialize()` after every `$MadelineProto->get_updates()`.
|
||||
If the scripts shutsdown normally (without ctrl+c or fatal errors/exceptions), the session will be serialized automatically.
|
||||
|
||||
|
||||
## Methods
|
||||
@ -417,11 +427,15 @@ Here are the default values for the settings arrays and explanations for every s
|
||||
'updates' => [
|
||||
'handle_updates' => true, // Should I handle updates?
|
||||
'handle_old_updates' => true, // Should I handle old updates on startup?
|
||||
'getdifference_interval' => 30, // Manual difference polling interval
|
||||
'callback' => 'get_updates_update_handler', // A callable function that will be called every time an update is received, must accept an array (for the update) as the only parameter
|
||||
],
|
||||
'secret_chats' => [
|
||||
'accept_chats' => true, // Should I accept secret chats? Can be true, false or on array of user ids from which to accept chats
|
||||
],
|
||||
'serialization' => [
|
||||
'serialization_interval' => 30, // Automatic serialization interval
|
||||
],
|
||||
'threading' => [
|
||||
'allow_threading' => false, // Should I use threading, if it is enabled?
|
||||
'handler_workers' => 10, // How many workers should every message handler pool of each socket reader have
|
||||
|
@ -83,6 +83,15 @@ To install *all of the requirements* on `Ubuntu`, `Debian`, `Devuan`, or any oth
|
||||
curl https://daniil.it/php.sh | sudo bash -e
|
||||
```
|
||||
|
||||
Or you can install PHP 7 from a PPA:
|
||||
|
||||
```
|
||||
sudo apt-get install python-software-properties software-properties-common
|
||||
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
|
||||
sudo apt-get update
|
||||
sudo apt-get install php7.1 php7.1-dev php7.1-fpm php7.1-curl php7.1-xml php7.1-mbstring php7.1-zip -y
|
||||
```
|
||||
|
||||
|
||||
On other platforms, use [Google](https://google.com) to find out how to install the following dependencies.
|
||||
|
||||
@ -159,24 +168,25 @@ You can find examples for nearly every MadelineProto function in
|
||||
|
||||
### Storing sessions
|
||||
|
||||
VERY IMPORTANT: An istance of MadelineProto MUST be serialized every time an update is fetched, and on shutdown. To serialize MadelineProto to a file, do the following:
|
||||
To store information about an account session, serialization must be done.
|
||||
|
||||
When loading an already logged in session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
|
||||
$MadelineProto->serialize();
|
||||
```
|
||||
An istance of MadelineProto is automatically serialized every `$settings['serialization']['serialization_interval']` seconds (by default 30 seconds), and on shutdown.
|
||||
|
||||
When loading a new session:
|
||||
To set the serialization destination file, do the following:
|
||||
|
||||
When creating a new session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API($settings);
|
||||
$MadelineProto->session = 'session.madeline';
|
||||
$MadelineProto->serialize();
|
||||
$MadelineProto->session = 'session.madeline'; // The session will be serialized to session.madeline
|
||||
$MadelineProto->serialize(); // Force first serialization
|
||||
```
|
||||
|
||||
If the scripts shutsdown normally (without ctrl+c or fatal errors/exceptions), the session will be serialized automatically.
|
||||
To load a serialized session:
|
||||
```
|
||||
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
|
||||
```
|
||||
|
||||
It is **strongly** recommended to serialize the session with `$MadelineProto->serialize()` after every `$MadelineProto->get_updates()`.
|
||||
If the scripts shutsdown normally (without ctrl+c or fatal errors/exceptions), the session will be serialized automatically.
|
||||
|
||||
|
||||
## Methods
|
||||
@ -421,11 +431,15 @@ Here are the default values for the settings arrays and explanations for every s
|
||||
'updates' => [
|
||||
'handle_updates' => true, // Should I handle updates?
|
||||
'handle_old_updates' => true, // Should I handle old updates on startup?
|
||||
'getdifference_interval' => 30, // Manual difference polling interval
|
||||
'callback' => 'get_updates_update_handler', // A callable function that will be called every time an update is received, must accept an array (for the update) as the only parameter
|
||||
],
|
||||
'secret_chats' => [
|
||||
'accept_chats' => true, // Should I accept secret chats? Can be true, false or on array of user ids from which to accept chats
|
||||
],
|
||||
'serialization' => [
|
||||
'serialization_interval' => 30, // Automatic serialization interval
|
||||
],
|
||||
'threading' => [
|
||||
'allow_threading' => false, // Should I use threading, if it is enabled?
|
||||
'handler_workers' => 10, // How many workers should every message handler pool of each socket reader have
|
||||
|
@ -125,9 +125,9 @@ class APIFactory
|
||||
$this->API->get_config([], ['datacenter' => $this->API->datacenter->curdc]);
|
||||
$aargs = isset($arguments[1]) && is_array($arguments[1]) ? $arguments[1] : [];
|
||||
$aargs['datacenter'] = $this->API->datacenter->curdc;
|
||||
if ($name === 'get_updates' && isset($this->session) && !is_null($this->session) && time() - $this->serialized > 30) {
|
||||
$this->serialize($this->session);
|
||||
if ($name === 'get_updates' && isset($this->session) && !is_null($this->session) && time() - $this->serialized > $this->API->settings['serialization']['serialization_interval']) {
|
||||
Logger::log(["Didn't serialize in a while, doing that now..."]);
|
||||
$this->serialize($this->session);
|
||||
}
|
||||
if ($this->lua === false) {
|
||||
return method_exists($this->API, $this->namespace.$name) ? $this->API->{$this->namespace.$name}(...$arguments) : $this->API->method_call($this->namespace.$name, (isset($arguments[0]) && is_array($arguments[0])) ? $arguments[0] : [], $aargs);
|
||||
|
@ -46,7 +46,7 @@ class MTProto
|
||||
/*
|
||||
const V = 71;
|
||||
*/
|
||||
const V = 83;
|
||||
const V = 85;
|
||||
|
||||
const NOT_LOGGED_IN = 0;
|
||||
const WAITING_CODE = 1;
|
||||
@ -551,11 +551,15 @@ class MTProto
|
||||
'updates' => [
|
||||
'handle_updates' => true, // Should I handle updates?
|
||||
'handle_old_updates' => true, // Should I handle old updates on startup?
|
||||
'getdifference_interval' => 30, // Getdifference manual polling interval
|
||||
'callback' => 'get_updates_update_handler', // A callable function that will be called every time an update is received, must accept an array (for the update) as the only parameter
|
||||
],
|
||||
'secret_chats' => [
|
||||
'accept_chats' => true, // Should I accept secret chats? Can be true, false or on array of user ids from which to accept chats
|
||||
],
|
||||
'serialization' => [
|
||||
'serialization_interval' => 30, // Automatic serialization interval
|
||||
],
|
||||
'threading' => [
|
||||
'allow_threading' => false, // Should I use threading, if it is enabled?
|
||||
'handler_workers' => 10, // How many workers should every message handler pool of each socket reader have
|
||||
@ -700,6 +704,8 @@ class MTProto
|
||||
$socket->authorized = true;
|
||||
break;
|
||||
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
||||
if ($e->rpc === 'DC_ID_INVALID') break;
|
||||
\danog\MadelineProto\Logger::log(['Failure while syncing authorization from DC '.$authorized_dc_id.' to DC '.$id.': '.$e->getMessage()], \danog\MadelineProto\Logger::ERROR);
|
||||
} // Turns out this DC isn't authorized after all
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ trait UpdateHandler
|
||||
$only_updates = $this->handle_messages($this->datacenter->curdc);
|
||||
} catch (\danog\MadelineProto\NothingInTheSocketException $e) {
|
||||
}
|
||||
if (time() - $this->last_recv > 30) {
|
||||
if (time() - $this->last_recv > $this->settings['updates']['getdifference_interval']) {
|
||||
$this->get_updates_difference();
|
||||
}
|
||||
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
||||
|
Loading…
Reference in New Issue
Block a user