mirror of
https://github.com/danog/MadelineProto.git
synced 2024-11-27 05:34:42 +01:00
Strictly typed API
This commit is contained in:
parent
a83c40b762
commit
2850c5acfa
2
docs
2
docs
@ -1 +1 @@
|
||||
Subproject commit 1979018e600cdc12750fcc751661090e64a2b695
|
||||
Subproject commit 757d12fbdda97d22a20d565be8e0aea64ed34cad
|
@ -223,6 +223,8 @@ class AnnotationsBuilder
|
||||
}
|
||||
$doc .= $type->getName();
|
||||
$doc .= ' ';
|
||||
} else {
|
||||
Logger::log($name.'.'.$param->getName()." has no type!", Logger::WARNING);
|
||||
}
|
||||
if ($param->isVariadic()) {
|
||||
$doc .= '...';
|
||||
|
@ -4291,17 +4291,6 @@ class InternalDoc extends APIFactory
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$expires_in, $datacenter, $extra]);
|
||||
}
|
||||
/**
|
||||
* Factorize number asynchronously using the wolfram API.
|
||||
*
|
||||
* @param string|integer $what Number to factorize
|
||||
*
|
||||
* @return \Generator<string|bool>
|
||||
*/
|
||||
public function wolframSingle($what, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$what, $extra]);
|
||||
}
|
||||
/**
|
||||
* Asynchronously create, bind and check auth keys for all DCs.
|
||||
*
|
||||
@ -4794,11 +4783,11 @@ class InternalDoc extends APIFactory
|
||||
/**
|
||||
* Rekey secret chat.
|
||||
*
|
||||
* @param mixed $chat Secret chat to rekey
|
||||
* @param int $chat Secret chat to rekey
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function rekey($chat, array $extra = [])
|
||||
public function rekey(int $chat, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$chat, $extra]);
|
||||
}
|
||||
@ -4838,11 +4827,11 @@ class InternalDoc extends APIFactory
|
||||
/**
|
||||
* Discard secret chat.
|
||||
*
|
||||
* @param array|int $chat Secret chat ID
|
||||
* @param int $chat Secret chat ID
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function discardSecretChat($chat, array $extra = [])
|
||||
public function discardSecretChat(int $chat, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$chat, $extra]);
|
||||
}
|
||||
@ -5059,7 +5048,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function randomInt($modulus = false): int
|
||||
public function randomInt(int $modulus = 0): int
|
||||
{
|
||||
return \danog\MadelineProto\MTProto::randomInt($modulus);
|
||||
}
|
||||
@ -5094,7 +5083,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function unpackSignedInt($value): int
|
||||
public function unpackSignedInt(string $value): int
|
||||
{
|
||||
return \danog\MadelineProto\MTProto::unpackSignedInt($value);
|
||||
}
|
||||
@ -5105,7 +5094,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function unpackSignedLong($value): int
|
||||
public function unpackSignedLong(string $value): int
|
||||
{
|
||||
return \danog\MadelineProto\MTProto::unpackSignedLong($value);
|
||||
}
|
||||
@ -5505,8 +5494,8 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function discardCall($call, $reason, $rating = [
|
||||
], $need_debug = true, array $extra = [])
|
||||
public function discardCall(array $call, string $reason, array $rating = [
|
||||
], bool $need_debug = true, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$call, $reason, $rating, $need_debug, $extra]);
|
||||
}
|
||||
@ -5528,7 +5517,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function acceptCall($call, array $extra = [])
|
||||
public function acceptCall(array $call, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$call, $extra]);
|
||||
}
|
||||
@ -5539,7 +5528,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function confirmCall($params, array $extra = [])
|
||||
public function confirmCall(array $params, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$params, $extra]);
|
||||
}
|
||||
@ -5550,29 +5539,29 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function completeCall($params, array $extra = [])
|
||||
public function completeCall(array $params, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$params, $extra]);
|
||||
}
|
||||
/**
|
||||
* Get call status.
|
||||
*
|
||||
* @param array $id Call ID
|
||||
* @param int $id Call ID
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function callStatus($id, array $extra = []): int
|
||||
public function callStatus(int $id, array $extra = []): int
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$id, $extra]);
|
||||
}
|
||||
/**
|
||||
* Get call info.
|
||||
*
|
||||
* @param mixed $call Call ID
|
||||
* @param int $call Call ID
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCall($call, array $extra = []): array
|
||||
public function getCall(int $call, array $extra = []): array
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$call, $extra]);
|
||||
}
|
||||
@ -5592,7 +5581,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator<array<Peer>>
|
||||
*/
|
||||
public function getDialogs($force = true, array $extra = [])
|
||||
public function getDialogs(bool $force = true, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$force, $extra]);
|
||||
}
|
||||
@ -5603,7 +5592,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function getFullDialogs($force = true, array $extra = [])
|
||||
public function getFullDialogs(bool $force = true, array $extra = [])
|
||||
{
|
||||
return $this->__call(__FUNCTION__, [$force, $extra]);
|
||||
}
|
||||
@ -5635,7 +5624,7 @@ class InternalDoc extends APIFactory
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setWebhook($hook_url, $pem_path = null, array $extra = []): void
|
||||
public function setWebhook(string $hook_url, string $pem_path = '', array $extra = []): void
|
||||
{
|
||||
$this->__call(__FUNCTION__, [$hook_url, $pem_path, $extra]);
|
||||
}
|
||||
|
@ -589,7 +589,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator<string|bool>
|
||||
*/
|
||||
public function wolframSingle($what): \Generator
|
||||
private function wolframSingle($what): \Generator
|
||||
{
|
||||
$code = yield $this->datacenter->fileGetContents('http://www.wolframalpha.com/api/v1/code');
|
||||
$query = 'Do prime factorization of '.$what;
|
||||
|
@ -111,7 +111,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
private function completeSecretChat($params): \Generator
|
||||
private function completeSecretChat(array $params): \Generator
|
||||
{
|
||||
if ($this->secretChatStatus($params['id']) !== 1) {
|
||||
//$this->logger->logger($this->secretChatStatus($params['id']));
|
||||
@ -153,11 +153,11 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Rekey secret chat.
|
||||
*
|
||||
* @param mixed $chat Secret chat to rekey
|
||||
* @param int $chat Secret chat to rekey
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function rekey($chat): \Generator
|
||||
public function rekey(int $chat): \Generator
|
||||
{
|
||||
if ($this->secret_chats[$chat]['rekeying'][0] !== 0) {
|
||||
return;
|
||||
@ -181,12 +181,12 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Accept rekeying.
|
||||
*
|
||||
* @param mixed $chat Chat
|
||||
* @param int $chat Chat
|
||||
* @param array $params Parameters
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
private function acceptRekey($chat, array $params): \Generator
|
||||
private function acceptRekey(int $chat, array $params): \Generator
|
||||
{
|
||||
if ($this->secret_chats[$chat]['rekeying'][0] !== 0) {
|
||||
$my_exchange_id = new \tgseclib\Math\BigInteger($this->secret_chats[$chat]['rekeying'][1], -256);
|
||||
@ -222,12 +222,12 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Commit rekeying of secret chat.
|
||||
*
|
||||
* @param mixed $chat Chat
|
||||
* @param int $chat Chat
|
||||
* @param array $params Parameters
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
private function commitRekey($chat, array $params): \Generator
|
||||
private function commitRekey(int $chat, array $params): \Generator
|
||||
{
|
||||
if ($this->secret_chats[$chat]['rekeying'][0] !== 1 || !isset($this->temp_rekeyed_secret_chats[$params['exchange_id']])) {
|
||||
$this->secret_chats[$chat]['rekeying'] = [0];
|
||||
@ -260,12 +260,12 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Complete rekeying.
|
||||
*
|
||||
* @param mixed $chat Chat
|
||||
* @param int $chat Chat
|
||||
* @param array $params Parameters
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
private function completeRekey($chat, array $params): \Generator
|
||||
private function completeRekey(int $chat, array $params): \Generator
|
||||
{
|
||||
if ($this->secret_chats[$chat]['rekeying'][0] !== 2 || !isset($this->temp_rekeyed_secret_chats['fingerprint'])) {
|
||||
return;
|
||||
@ -334,11 +334,11 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Discard secret chat.
|
||||
*
|
||||
* @param array|int $chat Secret chat ID
|
||||
* @param int $chat Secret chat ID
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function discardSecretChat($chat): \Generator
|
||||
public function discardSecretChat(int $chat): \Generator
|
||||
{
|
||||
$this->logger->logger('Discarding secret chat '.$chat.'...', \danog\MadelineProto\Logger::VERBOSE);
|
||||
if (isset($this->secret_chats[$chat])) {
|
||||
|
@ -95,9 +95,9 @@ trait Tools
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function randomInt($modulus = false): int
|
||||
public static function randomInt(int $modulus = 0): int
|
||||
{
|
||||
if ($modulus === false) {
|
||||
if ($modulus === 0) {
|
||||
$modulus = PHP_INT_MAX;
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ trait Tools
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public static function unpackSignedInt($value): int
|
||||
public static function unpackSignedInt(string $value): int
|
||||
{
|
||||
if (\strlen($value) !== 4) {
|
||||
throw new TL\Exception(\danog\MadelineProto\Lang::$current_lang['length_not_4']);
|
||||
@ -174,7 +174,7 @@ trait Tools
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public static function unpackSignedLong($value): int
|
||||
public static function unpackSignedLong(string $value): int
|
||||
{
|
||||
if (\strlen($value) !== 8) {
|
||||
throw new TL\Exception(\danog\MadelineProto\Lang::$current_lang['length_not_8']);
|
||||
|
@ -46,13 +46,13 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Accept call (synchronous).
|
||||
*
|
||||
* @param mixed $user Accept call
|
||||
* @param array $user Accept call
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function acceptCall($user): bool
|
||||
public function acceptCall(array $user): bool
|
||||
{
|
||||
return \danog\MadelineProto\Tools::wait($this->acceptCallAsync($user));
|
||||
}
|
||||
@ -67,7 +67,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function discardCall($call, $reason, $rating = [], $need_debug = true): void
|
||||
public function discardCall(array $call, string $reason, array $rating = [], bool $need_debug = true): void
|
||||
{
|
||||
\danog\MadelineProto\Tools::wait($this->discardCallAsync($call, $reason, $rating, $need_debug));
|
||||
}
|
||||
@ -113,7 +113,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function acceptCallAsync($call): \Generator
|
||||
public function acceptCallAsync(array $call): \Generator
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw new \danog\MadelineProto\Exception();
|
||||
@ -160,7 +160,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function confirmCall($params): \Generator
|
||||
public function confirmCall(array $params): \Generator
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw \danog\MadelineProto\Exception::extension('libtgvoip');
|
||||
@ -216,7 +216,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function completeCall($params): \Generator
|
||||
public function completeCall(array $params): \Generator
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw \danog\MadelineProto\Exception::extension('libtgvoip');
|
||||
@ -254,11 +254,11 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Get call status.
|
||||
*
|
||||
* @param array $id Call ID
|
||||
* @param int $id Call ID
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function callStatus($id): int
|
||||
public function callStatus(int $id): int
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw \danog\MadelineProto\Exception::extension('libtgvoip');
|
||||
@ -273,11 +273,11 @@ trait AuthKeyHandler
|
||||
/**
|
||||
* Get call info.
|
||||
*
|
||||
* @param mixed $call Call ID
|
||||
* @param int $call Call ID
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCall($call): array
|
||||
public function getCall(int $call): array
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw \danog\MadelineProto\Exception::extension('libtgvoip');
|
||||
@ -296,7 +296,7 @@ trait AuthKeyHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function discardCallAsync($call, $reason, $rating = [], $need_debug = true): \Generator
|
||||
public function discardCallAsync(array $call, string $reason, array $rating = [], bool $need_debug = true): \Generator
|
||||
{
|
||||
if (!\class_exists('\\danog\\MadelineProto\\VoIP')) {
|
||||
throw \danog\MadelineProto\Exception::extension('libtgvoip');
|
||||
|
@ -28,7 +28,7 @@ trait DialogHandler
|
||||
*
|
||||
* @return \Generator<array<Peer>>
|
||||
*/
|
||||
public function getDialogs($force = true): \Generator
|
||||
public function getDialogs(bool $force = true): \Generator
|
||||
{
|
||||
if ($this->authorization['user']['bot']) {
|
||||
$res = [];
|
||||
@ -53,7 +53,7 @@ trait DialogHandler
|
||||
*
|
||||
* @return \Generator
|
||||
*/
|
||||
public function getFullDialogs($force = true): \Generator
|
||||
public function getFullDialogs(bool $force = true): \Generator
|
||||
{
|
||||
if ($force || !isset($this->dialog_params['offset_date']) || \is_null($this->dialog_params['offset_date']) || !isset($this->dialog_params['offset_id']) || \is_null($this->dialog_params['offset_id']) || !isset($this->dialog_params['offset_peer']) || \is_null($this->dialog_params['offset_peer']) || !isset($this->dialog_params['count']) || \is_null($this->dialog_params['count'])) {
|
||||
$this->dialog_params = ['limit' => 100, 'offset_date' => 0, 'offset_id' => 0, 'offset_peer' => ['_' => 'inputPeerEmpty'], 'count' => 0, 'hash' => 0];
|
||||
|
@ -32,7 +32,7 @@ trait Webhook
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setWebhook($hook_url, $pem_path = null): void
|
||||
public function setWebhook(string $hook_url, string $pem_path = ''): void
|
||||
{
|
||||
$this->pem_path = $pem_path;
|
||||
$this->hook_url = $hook_url;
|
||||
|
Loading…
Reference in New Issue
Block a user