From 80f162a1160614066aaa2fa0470345966fca02f7 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Tue, 3 Mar 2020 00:08:39 +0100 Subject: [PATCH] Bugfix --- README.md | 1 + docs | 2 +- src/danog/MadelineProto/InternalDoc.php | 42 +++++++++---------- .../MTProtoTools/UpdateHandler.php | 2 +- .../MadelineProto/VoIP/AuthKeyHandler.php | 4 ++ src/danog/MadelineProto/Wrappers/Events.php | 2 +- src/danog/MadelineProto/Wrappers/Loop.php | 8 ++-- tests/danog/MadelineProto/FileIdTest.php | 2 +- 8 files changed, 35 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 22bb335d..9a97212b 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ You can find examples for nearly every MadelineProto function in * [SignalLoop](https://docs.madelineproto.xyz/docs/ASYNC.html#signalloop) * [ResumableSignalLoop](https://docs.madelineproto.xyz/docs/ASYNC.html#resumablesignalloop) * [GenericLoop](https://docs.madelineproto.xyz/docs/ASYNC.html#genericloop) + * [PeriodicLoop](https://docs.madelineproto.xyz/docs/ASYNC.html#periodicloop) * [Using methods](https://docs.madelineproto.xyz/docs/USING_METHODS.html) * [FULL API Documentation with descriptions](https://docs.madelineproto.xyz/API_docs/methods/) * [Logout](https://docs.madelineproto.xyz/logout.html) diff --git a/docs b/docs index aba1bf55..37ab5802 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit aba1bf55122500b13163d9589404d4cb7ca49c1b +Subproject commit 37ab58024569319076d063cf37f58b6e22e22418 diff --git a/src/danog/MadelineProto/InternalDoc.php b/src/danog/MadelineProto/InternalDoc.php index 7d5d2be7..71cda16b 100644 --- a/src/danog/MadelineProto/InternalDoc.php +++ b/src/danog/MadelineProto/InternalDoc.php @@ -5419,21 +5419,6 @@ class InternalDoc extends APIFactory { \danog\MadelineProto\MTProto::setVar($obj, $var, $val); } - /** - * Discard call. - * - * @param array $call Call - * @param string $reason Discard reason - * @param array $rating Rating - * @param boolean $need_debug Need debug? - * - * @return \Generator - */ - public function discardCall(array $call, array $reason, array $rating = [ - ], bool $need_debug = true, array $extra = []) - { - return $this->__call(__FUNCTION__, [$call, $reason, $rating, $need_debug, $extra]); - } /** * Request VoIP call. * @@ -5500,6 +5485,21 @@ class InternalDoc extends APIFactory { return $this->API->getCall($call); } + /** + * Discard call. + * + * @param array $call Call + * @param string $reason Discard reason + * @param array $rating Rating + * @param boolean $need_debug Need debug? + * + * @return \Generator + */ + public function discardCall(array $call, array $reason, array $rating = [ + ], bool $need_debug = true, array $extra = []) + { + return $this->__call(__FUNCTION__, [$call, $reason, $rating, $need_debug, $extra]); + } /** * Check state of calls. * @@ -5709,18 +5709,18 @@ class InternalDoc extends APIFactory * * @return void */ - public function stop(): void + public function stop(array $extra = []) { - $this->API->stop(); + return $this->__call(__FUNCTION__, [$extra]); } /** * Restart update loop. * * @return void */ - public function restart(): void + public function restart(array $extra = []) { - $this->API->restart(); + return $this->__call(__FUNCTION__, [$extra]); } /** * Start MadelineProto's update handling loop in background. @@ -5738,9 +5738,9 @@ class InternalDoc extends APIFactory * * @return void */ - public function closeConnection($message = 'OK!'): void + public function closeConnection($message = 'OK!', array $extra = []) { - $this->API->closeConnection($message); + return $this->__call(__FUNCTION__, [$message, $extra]); } /** * Set NOOP update handler, ignoring all updates. diff --git a/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php b/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php index 0619d0f2..5cc201fa 100644 --- a/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php +++ b/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php @@ -372,7 +372,7 @@ trait UpdateHandler if (!isset($this->calls[$update['phone_call']['id']])) { return; } - return $this->calls[$update['phone_call']['id']]->discard($update['phone_call']['reason'], [], $update['phone_call']['need_debug']); + return $this->calls[$update['phone_call']['id']]->discard($update['phone_call']['reason'] ?? '', [], $update['phone_call']['need_debug'] ?? false); } } if ($update['_'] === 'updateNewEncryptedMessage' && !isset($update['message']['decrypted_message'])) { diff --git a/src/danog/MadelineProto/VoIP/AuthKeyHandler.php b/src/danog/MadelineProto/VoIP/AuthKeyHandler.php index e3ae907b..c0bde324 100644 --- a/src/danog/MadelineProto/VoIP/AuthKeyHandler.php +++ b/src/danog/MadelineProto/VoIP/AuthKeyHandler.php @@ -36,6 +36,8 @@ trait AuthKeyHandler * @param \danog\MadelineProto\VoIP $instance Call instance * @param array $user User * + * @internal + * * @return mixed */ public function acceptCallFrom($instance, $user) @@ -61,6 +63,8 @@ trait AuthKeyHandler * @param array $rating Rating * @param boolean $need_debug Needs debug? * + * @internal + * * @return mixed */ public function discardCallFrom($instance, $call, $reason, $rating = [], $need_debug = true) diff --git a/src/danog/MadelineProto/Wrappers/Events.php b/src/danog/MadelineProto/Wrappers/Events.php index 937857b4..a5b2df8b 100644 --- a/src/danog/MadelineProto/Wrappers/Events.php +++ b/src/danog/MadelineProto/Wrappers/Events.php @@ -85,7 +85,7 @@ trait Events $this->settings['updates']['callback'] = [$this, 'eventUpdateHandler']; $this->settings['updates']['handle_updates'] = true; $this->settings['updates']['run_callback'] = true; - if (method_exists($this->event_handler_instance, 'onStart')) { + if (\method_exists($this->event_handler_instance, 'onStart')) { Tools::callFork($this->event_handler_instance->onStart()); } if ($this->inited()) { diff --git a/src/danog/MadelineProto/Wrappers/Loop.php b/src/danog/MadelineProto/Wrappers/Loop.php index 023b15e4..85ddc035 100644 --- a/src/danog/MadelineProto/Wrappers/Loop.php +++ b/src/danog/MadelineProto/Wrappers/Loop.php @@ -16,11 +16,13 @@ * * @link https://docs.madelineproto.xyz MadelineProto documentation */ + namespace danog\MadelineProto\Wrappers; use Amp\Promise; use danog\MadelineProto\Shutdown; use danog\MadelineProto\Tools; + /** * Manages logging in and out. */ @@ -40,7 +42,7 @@ trait Loop * * @return mixed */ - public function loop($callback = null) : \Generator + public function loop($callback = null): \Generator { if (\is_callable($callback)) { $this->logger->logger('Running async callable'); @@ -114,7 +116,7 @@ trait Loop $this->logger->logger("Added unlock callback with id $id!"); if ($needs_restart) { $this->logger->logger("Adding restart callback!"); - $id = Shutdown::addCallback(static function () use(&$logger) { + $id = Shutdown::addCallback(static function () use (&$logger) { $address = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] ? 'tls' : 'tcp') . '://' . $_SERVER['SERVER_NAME']; $port = $_SERVER['SERVER_PORT']; $uri = $_SERVER['REQUEST_URI']; @@ -191,7 +193,7 @@ trait Loop * * @return Promise */ - public function loopFork() : Promise + public function loopFork(): Promise { return Tools::callFork($this->loop()); } diff --git a/tests/danog/MadelineProto/FileIdTest.php b/tests/danog/MadelineProto/FileIdTest.php index d08fbb72..c77db2a3 100644 --- a/tests/danog/MadelineProto/FileIdTest.php +++ b/tests/danog/MadelineProto/FileIdTest.php @@ -42,7 +42,7 @@ class FileIdTest extends TestCase } /** - * Teardown + * Teardown. * * @return void */