From 6320b2ea89eb183906aa42b3cd4d1ae95e5ac4c5 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Mon, 6 May 2019 11:25:38 +0000 Subject: [PATCH] Poll conversion --- bot.php | 8 ++++---- src/danog/MadelineProto/MTProtoTools/Files.php | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/bot.php b/bot.php index cc192c3e..0f2931af 100755 --- a/bot.php +++ b/bot.php @@ -33,10 +33,6 @@ class EventHandler extends \danog\MadelineProto\EventHandler if (isset($update['message']['out']) && $update['message']['out']) { return; } - if (isset($update['message']['media']) && $update['message']['media']['_'] !== 'messageMediaGame') { - //yield $this->download_to_dir($update, '/tmp'); - yield $this->messages->sendMedia(['peer' => $update, 'message' => $update['message']['message'], 'media' => $update]); - } $res = json_encode($update, JSON_PRETTY_PRINT); if ($res == '') { @@ -46,6 +42,10 @@ class EventHandler extends \danog\MadelineProto\EventHandler try { yield $this->messages->sendMessage(['peer' => $update, 'message' => "$res", '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') { + yield $this->messages->sendMedia(['peer' => $update, 'message' => $update['message']['message'], 'media' => $update]); + //yield $this->download_to_dir($update, '/tmp') + } } catch (\danog\MadelineProto\RPCErrorException $e) { \danog\MadelineProto\Logger::log((string) $e, \danog\MadelineProto\Logger::FATAL_ERROR); } catch (\danog\MadelineProto\Exception $e) { diff --git a/src/danog/MadelineProto/MTProtoTools/Files.php b/src/danog/MadelineProto/MTProtoTools/Files.php index 0e31fb90..32683eb4 100644 --- a/src/danog/MadelineProto/MTProtoTools/Files.php +++ b/src/danog/MadelineProto/MTProtoTools/Files.php @@ -147,6 +147,15 @@ trait Files { $res = [$this->constructors->find_by_predicate($media['_'])['type'] => $media]; switch ($media['_']) { + case 'messageMediaPoll': + $res['Poll'] = $media['poll']; + $res['InputMedia'] = ['_' => 'inputMediaPoll', 'poll' => $res['Poll']]; + break; + case 'updateMessagePoll': + $res['Poll'] = $media['poll']; + $res['InputMedia'] = ['_' => 'inputMediaPoll', 'poll' => $res['Poll']]; + $res['MessageMedia'] = ['_' => 'messageMediaPoll', 'poll' => $res['Poll'], 'results' => $media['results']]; + break; case 'messageMediaPhoto': if (!isset($media['photo']['access_hash'])) { throw new \danog\MadelineProto\Exception('No access hash'); @@ -169,6 +178,9 @@ trait Files $res['InputMedia']['ttl_seconds'] = $media['ttl_seconds']; } break; + case 'poll': + $res['InputMedia'] = ['_' => 'inputMediaPoll', 'poll' => $res['Poll']]; + break; case 'document': if (!isset($media['access_hash'])) { throw new \danog\MadelineProto\Exception('No access hash');