Change a few defaults
This commit is contained in:
parent
d4ca5f1d47
commit
a5e18e0afd
@ -1317,7 +1317,7 @@ class MTProto extends AsyncConstruct implements TLCallback
|
|||||||
// Should madeline fetch the full member list of every group it meets?
|
// Should madeline fetch the full member list of every group it meets?
|
||||||
'cache_all_peers_on_startup' => false,
|
'cache_all_peers_on_startup' => false,
|
||||||
], 'requests' => ['gzip_encode_if_gt' => 1024 * 1024], 'updates' => [
|
], 'requests' => ['gzip_encode_if_gt' => 1024 * 1024], 'updates' => [
|
||||||
'handle_updates' => false,
|
'handle_updates' => true,
|
||||||
// Should I handle updates?
|
// Should I handle updates?
|
||||||
'handle_old_updates' => true,
|
'handle_old_updates' => true,
|
||||||
// Should I handle old updates on startup?
|
// Should I handle old updates on startup?
|
||||||
@ -1325,7 +1325,7 @@ class MTProto extends AsyncConstruct implements TLCallback
|
|||||||
// Getdifference manual polling interval
|
// Getdifference manual polling interval
|
||||||
'callback' => 'getUpdatesUpdateHandler',
|
'callback' => 'getUpdatesUpdateHandler',
|
||||||
// Update callback
|
// Update callback
|
||||||
'run_callback' => true,
|
'run_callback' => false,
|
||||||
], 'secret_chats' => ['accept_chats' => true],
|
], 'secret_chats' => ['accept_chats' => true],
|
||||||
'serialization' => ['serialization_interval' => 30, 'cleanup_before_serialization' => false],
|
'serialization' => ['serialization_interval' => 30, 'cleanup_before_serialization' => false],
|
||||||
/**
|
/**
|
||||||
|
@ -268,18 +268,18 @@ trait Files
|
|||||||
$datacenter .= '_media';
|
$datacenter .= '_media';
|
||||||
}
|
}
|
||||||
$part_size = $this->settings['upload']['part_size'];
|
$part_size = $this->settings['upload']['part_size'];
|
||||||
$parallel_chunks = $this->settings['upload']['parallel_chunks'] ? $this->settings['upload']['parallel_chunks'] : 4000;
|
$parallel_chunks = $this->settings['upload']['parallel_chunks'] ?? 4000;
|
||||||
$part_total_num = (int) \ceil($size / $part_size);
|
$part_total_num = (int) \ceil($size / $part_size);
|
||||||
$part_num = 0;
|
$part_num = 0;
|
||||||
$method = $size > 10 * 1024 * 1024 ? 'upload.saveBigFilePart' : 'upload.saveFilePart';
|
$method = $size > 10 * 1024 * 1024 ? 'upload.saveBigFilePart' : 'upload.saveFilePart';
|
||||||
$constructor = 'input'.($encrypted === true ? 'Encrypted' : '').($size > 10 * 1024 * 1024 ? 'FileBig' : 'File').($encrypted === true ? 'Uploaded' : '');
|
$constructor = 'input'.($encrypted === true ? 'Encrypted' : '').($size > 10 * 1024 * 1024 ? 'FileBig' : 'File').($encrypted === true ? 'Uploaded' : '');
|
||||||
$file_id = \danog\MadelineProto\Tools::random(8);
|
$file_id = Tools::random(8);
|
||||||
$ige = null;
|
$ige = null;
|
||||||
if ($encrypted === true) {
|
if ($encrypted === true) {
|
||||||
$key = \danog\MadelineProto\Tools::random(32);
|
$key = Tools::random(32);
|
||||||
$iv = \danog\MadelineProto\Tools::random(32);
|
$iv = Tools::random(32);
|
||||||
$digest = \hash('md5', $key.$iv, true);
|
$digest = \hash('md5', $key.$iv, true);
|
||||||
$fingerprint = \danog\MadelineProto\Tools::unpackSignedInt(\substr($digest, 0, 4) ^ \substr($digest, 4, 4));
|
$fingerprint = Tools::unpackSignedInt(\substr($digest, 0, 4) ^ \substr($digest, 4, 4));
|
||||||
$ige = new \tgseclib\Crypt\AES('ige');
|
$ige = new \tgseclib\Crypt\AES('ige');
|
||||||
$ige->setIV($iv);
|
$ige->setIV($iv);
|
||||||
$ige->setKey($key);
|
$ige->setKey($key);
|
||||||
@ -293,7 +293,7 @@ trait Files
|
|||||||
$cb = function () use ($cb, $part_total_num, &$speed, &$time) {
|
$cb = function () use ($cb, $part_total_num, &$speed, &$time) {
|
||||||
static $cur = 0;
|
static $cur = 0;
|
||||||
$cur++;
|
$cur++;
|
||||||
\danog\MadelineProto\Tools::callFork($cb($cur * 100 / $part_total_num, $speed, $time));
|
Tools::callFork($cb($cur * 100 / $part_total_num, $speed, $time));
|
||||||
};
|
};
|
||||||
$callable = static function (int $part_num) use ($file_id, $part_total_num, $part_size, $callable, $ige): \Generator {
|
$callable = static function (int $part_num) use ($file_id, $part_total_num, $part_size, $callable, $ige): \Generator {
|
||||||
$bytes = yield $callable($part_num * $part_size, $part_size);
|
$bytes = yield $callable($part_num * $part_size, $part_size);
|
||||||
@ -498,7 +498,7 @@ trait Files
|
|||||||
$cb = [$bridge, 'callback'];
|
$cb = [$bridge, 'callback'];
|
||||||
$read = $this->uploadFromCallable($reader, $size, $mime, '', $cb, true, $encrypted);
|
$read = $this->uploadFromCallable($reader, $size, $mime, '', $cb, true, $encrypted);
|
||||||
$write = $this->downloadToCallable($media, $writer, null, true, 0, -1, $chunk_size);
|
$write = $this->downloadToCallable($media, $writer, null, true, 0, -1, $chunk_size);
|
||||||
[$res] = yield \danog\MadelineProto\Tools::all([$read, $write]);
|
[$res] = yield Tools::all([$read, $write]);
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1044,7 +1044,7 @@ trait Files
|
|||||||
$size = (yield statAsync($file))['size'];
|
$size = (yield statAsync($file))['size'];
|
||||||
$stream = yield open($file, 'cb');
|
$stream = yield open($file, 'cb');
|
||||||
$this->logger->logger('Waiting for lock of file to download...');
|
$this->logger->logger('Waiting for lock of file to download...');
|
||||||
$unlock = yield \danog\MadelineProto\Tools::flock($file, LOCK_EX);
|
$unlock = yield Tools::flock($file, LOCK_EX);
|
||||||
$this->logger->logger('Got lock of file to download');
|
$this->logger->logger('Got lock of file to download');
|
||||||
try {
|
try {
|
||||||
yield from $this->downloadToStream($messageMedia, $stream, $cb, $size, -1);
|
yield from $this->downloadToStream($messageMedia, $stream, $cb, $size, -1);
|
||||||
@ -1133,14 +1133,14 @@ trait Files
|
|||||||
$end = $messageMedia['size'];
|
$end = $messageMedia['size'];
|
||||||
}
|
}
|
||||||
$part_size = $part_size ?? $this->settings['download']['part_size'];
|
$part_size = $part_size ?? $this->settings['download']['part_size'];
|
||||||
$parallel_chunks = $this->settings['download']['parallel_chunks'] ? $this->settings['download']['parallel_chunks'] : 4000;
|
$parallel_chunks = $this->settings['download']['parallel_chunks'] ?? 4000;
|
||||||
$datacenter = isset($messageMedia['InputFileLocation']['dc_id']) ? $messageMedia['InputFileLocation']['dc_id'] : $this->settings['connection_settings']['default_dc'];
|
$datacenter = $messageMedia['InputFileLocation']['dc_id'] ?? $this->settings['connection_settings']['default_dc'];
|
||||||
if ($this->datacenter->has($datacenter.'_media')) {
|
if ($this->datacenter->has($datacenter.'_media')) {
|
||||||
$datacenter .= '_media';
|
$datacenter .= '_media';
|
||||||
}
|
}
|
||||||
if (isset($messageMedia['key'])) {
|
if (isset($messageMedia['key'])) {
|
||||||
$digest = \hash('md5', $messageMedia['key'].$messageMedia['iv'], true);
|
$digest = \hash('md5', $messageMedia['key'].$messageMedia['iv'], true);
|
||||||
$fingerprint = \danog\MadelineProto\Tools::unpackSignedInt(\substr($digest, 0, 4) ^ \substr($digest, 4, 4));
|
$fingerprint = Tools::unpackSignedInt(\substr($digest, 0, 4) ^ \substr($digest, 4, 4));
|
||||||
if ($fingerprint !== $messageMedia['key_fingerprint']) {
|
if ($fingerprint !== $messageMedia['key_fingerprint']) {
|
||||||
throw new \danog\MadelineProto\Exception('Fingerprint mismatch!');
|
throw new \danog\MadelineProto\Exception('Fingerprint mismatch!');
|
||||||
}
|
}
|
||||||
@ -1181,7 +1181,7 @@ trait Files
|
|||||||
$cb = static function () use ($cb, $count, &$time, &$speed) {
|
$cb = static function () use ($cb, $count, &$time, &$speed) {
|
||||||
static $cur = 0;
|
static $cur = 0;
|
||||||
$cur++;
|
$cur++;
|
||||||
\danog\MadelineProto\Tools::callFork($cb($cur * 100 / $count, $time, $speed));
|
Tools::callFork($cb($cur * 100 / $count, $time, $speed));
|
||||||
};
|
};
|
||||||
$cdn = false;
|
$cdn = false;
|
||||||
$params[0]['previous_promise'] = new Success(true);
|
$params[0]['previous_promise'] = new Success(true);
|
||||||
@ -1193,13 +1193,13 @@ trait Files
|
|||||||
$origCb(100, 0, 0);
|
$origCb(100, 0, 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$parallel_chunks = 1;
|
$parallel_chunks = $seekable ? $parallel_chunks : 1;
|
||||||
if ($params) {
|
if ($params) {
|
||||||
$previous_promise = new Success(true);
|
$previous_promise = new Success(true);
|
||||||
$promises = [];
|
$promises = [];
|
||||||
foreach ($params as $key => $param) {
|
foreach ($params as $key => $param) {
|
||||||
$param['previous_promise'] = $previous_promise;
|
$param['previous_promise'] = $previous_promise;
|
||||||
$previous_promise = \danog\MadelineProto\Tools::call($this->downloadPart($messageMedia, $cdn, $datacenter, $old_dc, $ige, $cb, $param, $callable, $seekable));
|
$previous_promise = Tools::call($this->downloadPart($messageMedia, $cdn, $datacenter, $old_dc, $ige, $cb, $param, $callable, $seekable));
|
||||||
$previous_promise->onResolve(static function ($e, $res) use (&$size) {
|
$previous_promise->onResolve(static function ($e, $res) use (&$size) {
|
||||||
if ($res) {
|
if ($res) {
|
||||||
$size += $res;
|
$size += $res;
|
||||||
@ -1208,7 +1208,7 @@ trait Files
|
|||||||
$promises[] = $previous_promise;
|
$promises[] = $previous_promise;
|
||||||
if (!($key % $parallel_chunks)) {
|
if (!($key % $parallel_chunks)) {
|
||||||
// 20 mb at a time, for a typical bandwidth of 1gbps
|
// 20 mb at a time, for a typical bandwidth of 1gbps
|
||||||
$res = yield \danog\MadelineProto\Tools::all($promises);
|
$res = yield Tools::all($promises);
|
||||||
$promises = [];
|
$promises = [];
|
||||||
foreach ($res as $r) {
|
foreach ($res as $r) {
|
||||||
if (!$r) {
|
if (!$r) {
|
||||||
@ -1222,7 +1222,7 @@ trait Files
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($promises) {
|
if ($promises) {
|
||||||
yield \danog\MadelineProto\Tools::all($promises);
|
yield Tools::all($promises);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$time = \microtime(true) - $start;
|
$time = \microtime(true) - $start;
|
||||||
|
@ -41,7 +41,7 @@ trait Noop
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function noop(): void
|
public static function noop(): void
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user