1
0
mirror of https://github.com/danog/MadelineProto.git synced 2024-11-30 10:19:00 +01:00

Wrap remaining amphp helper methods

This commit is contained in:
Daniil Gentili 2019-06-01 16:22:44 +02:00
parent 692bcbcb1d
commit 660be7ae70
4 changed files with 28 additions and 29 deletions

View File

@ -40,7 +40,7 @@ class EventHandler extends \danog\MadelineProto\EventHandler
if ($res == '') { if ($res == '') {
$res = var_export($update, true); $res = var_export($update, true);
} }
//yield $this->sleep_async(3); //yield $this->sleep(3);
try { try {
yield $this->messages->sendMessage(['peer' => $update, 'message' => "<code>$res</code>", 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']); //'entities' => [['_' => 'messageEntityPre', 'offset' => 0, 'length' => strlen($res), 'language' => 'json']]]); yield $this->messages->sendMessage(['peer' => $update, 'message' => "<code>$res</code>", 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']); //'entities' => [['_' => 'messageEntityPre', 'offset' => 0, 'length' => strlen($res), 'language' => 'json']]]);
if (isset($update['message']['media']) && $update['message']['media']['_'] !== 'messageMediaGame') { if (isset($update['message']['media']) && $update['message']['media']['_'] !== 'messageMediaGame') {

View File

@ -42,7 +42,7 @@ class EventHandler extends \danog\MadelineProto\CombinedEventHandler
if ($res == '') { if ($res == '') {
$res = var_export($update, true); $res = var_export($update, true);
} }
yield $MadelineProto->sleep_async(3); yield $MadelineProto->sleep(3);
try { try {
yield $MadelineProto->messages->sendMessage(['peer' => $update, 'message' => "<code>$res</code>\n\nDopo 3 secondi, in modo asincrono", 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']); //'entities' => [['_' => 'messageEntityPre', 'offset' => 0, 'length' => strlen($res), 'language' => 'json']]]); yield $MadelineProto->messages->sendMessage(['peer' => $update, 'message' => "<code>$res</code>\n\nDopo 3 secondi, in modo asincrono", 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']); //'entities' => [['_' => 'messageEntityPre', 'offset' => 0, 'length' => strlen($res), 'language' => 'json']]]);

View File

@ -78,7 +78,7 @@ trait UpdateHandler
if (!$params['timeout']) { if (!$params['timeout']) {
$params['timeout'] = 0.001; $params['timeout'] = 0.001;
} }
yield $this->any([$this->waitUpdate(), new Delayed($params['timeout'] * 1000)]); yield $this->first([$this->waitUpdate(), $this->sleep($params['timeout'])]);
} }
if (empty($this->updates)) { if (empty($this->updates)) {

View File

@ -25,7 +25,10 @@ use Amp\Promise;
use Amp\Success; use Amp\Success;
use function Amp\Promise\all; use function Amp\Promise\all;
use function Amp\Promise\any; use function Amp\Promise\any;
use function Amp\Promise\some;
use function Amp\Promise\wait; use function Amp\Promise\wait;
use function Amp\Promise\first;
use function Amp\Promise\timeout;
/** /**
* Some tools. * Some tools.
@ -95,23 +98,6 @@ trait Tools
return $resto < 0 ? $resto + abs($b) : $resto; return $resto < 0 ? $resto + abs($b) : $resto;
} }
public function array_cast_recursive($array, $force = false)
{
if (!\danog\MadelineProto\Magic::$has_thread && !$force) {
return $array;
}
if (is_array($array)) {
if (!is_array($array)) {
$array = (array) $array;
}
foreach ($array as $key => $value) {
$array[$key] = $this->array_cast_recursive($value, $force);
}
}
return $array;
}
public function unpack_signed_int($value) public function unpack_signed_int($value)
{ {
if (strlen($value) !== 4) { if (strlen($value) !== 4) {
@ -187,13 +173,6 @@ trait Tools
return unpack('d', \danog\MadelineProto\Magic::$BIG_ENDIAN ? strrev($value) : $value)[1]; return unpack('d', \danog\MadelineProto\Magic::$BIG_ENDIAN ? strrev($value) : $value)[1];
} }
public function infloop()
{
while (true) {
Loop::loop();
}
}
public function wait($promise) public function wait($promise)
{ {
if ($promise instanceof \Generator) { if ($promise instanceof \Generator) {
@ -202,6 +181,8 @@ trait Tools
return $promise; return $promise;
} }
$exception = null;
$value = null;
$resolved = false; $resolved = false;
do { do {
try { try {
@ -238,6 +219,24 @@ trait Tools
} }
return any($promises); return any($promises);
} }
public function some($promises)
{
foreach ($promises as &$promise) {
$promise = $this->call($promise);
}
return some($promises);
}
public function first($promises)
{
foreach ($promises as &$promise) {
$promise = $this->call($promise);
}
return first($promises);
}
public function timeout($promise, $timeout)
{
return timeout($this->call($promise), $timeout);
}
public function call($promise) public function call($promise)
{ {
if ($promise instanceof \Generator) { if ($promise instanceof \Generator) {
@ -296,7 +295,7 @@ trait Tools
return $deferred->promise(); return $deferred->promise();
} }
public function sleep_async($time) public function sleep($time)
{ {
return new \Amp\Delayed($time * 1000); return new \Amp\Delayed($time * 1000);
} }