diff --git a/mirzaev/spetsresurs/telegram/robot/entry/system/public/robot.php b/mirzaev/spetsresurs/telegram/robot/entry/system/public/robot.php index 259e2a9..af9d732 100644 --- a/mirzaev/spetsresurs/telegram/robot/entry/system/public/robot.php +++ b/mirzaev/spetsresurs/telegram/robot/entry/system/public/robot.php @@ -37,19 +37,22 @@ $bot = new Zanzara(require(__DIR__ . '/../settings/key.php'), $config); $bot->onMessage(function (Context $ctx) { if ($members = $ctx->getMessage()->getNewChatMembers()) { // Новый аккаунт в чате - + echo "Обнаружен новый участник в чате" . PHP_EOL; $ctx->sendMessage('⚠️ Введите ваш табельный номер для авторизации', ['reply_to_message_id' => $ctx->getMessage()->getMessageId()]) ->then(function ($message) use ($ctx, $members) { // Инициализация идентификатора сотрудника $id = $members[0]->getId(); + echo "Отправлено сообщение ({$message->getMessageId()}) с запросом ID у сотрудника ($id)" . PHP_EOL; + $ctx->getGlobalDataItem("member_{$id}_request") ->then( function ($old) use ($ctx, $id, $message) { $timer = function ($ctx, $id, $message) { $ctx->setGlobalDataItem("member_{$id}_request", $message) - ->then(function () use ($ctx, $id) { + ->then(function () use ($ctx, $id, $message) { + echo "Записано сообщение ({$message->getMessageId()}) с запросом ID у сотрудника ($id) в сессионное хранилище" . PHP_EOL; // Инициализация таймера React\Promise\Timer\sleep(180)->then( @@ -62,11 +65,17 @@ $bot->onMessage(function (Context $ctx) { // Изгнание из чата $ctx->kickChatMember($message->getChat()->getId(), $id) ->then(function () use ($ctx, $id, $message) { + echo "Сотрудник ($id) изгнан из чата ({$message->getChat()->getId()})" . PHP_EOL; + // Удаление сообщения из сессионного хранилища $ctx->deleteGlobalDataItem("member_{$id}_request"); + echo "Удалено сообщение ({$message->getMessageId()}?) (member_{$id}_request) с запросом ID у сотрудника ($id) из сессионного хранилища" . PHP_EOL; + // Удаление сообщения $ctx->deleteMessage($message->getChat()->getId(), $message->getMessageId()); + + echo "Удалено сообщение ({$message->getMessageId()}) с запросом ID у сотрудника ($id) из чата ({$message->getChat()->getId()})" . PHP_EOL; }); } }, @@ -75,18 +84,28 @@ $bot->onMessage(function (Context $ctx) { ); } ); + + echo "Инициализирован таймер изгнания сотрудника ($id)" . PHP_EOL; }); }; if ($old) { + echo "Найдено сообщение ({$old->getMessageId()}) с запросом ID у сотрудника ($id) в сессионном хранилище" . PHP_EOL; + $ctx->deleteGlobalDataItem("member_{$id}_request") ->then(function () use ($ctx, $id, $message, $timer, $old) { + echo "Удалено сообщение ({$old->getMessageId()}?) (member_{$id}_request) с запросом ID у сотрудника ($id) из сессионного хранилища" . PHP_EOL; + $ctx->deleteMessage($old->getChat()->getId(), $old->getMessageId()) - ->then(function () use ($ctx, $id, $message, $timer) { + ->then(function () use ($ctx, $id, $message, $timer, $old) { + echo "Удалено сообщение ({$old->getMessageId()}) с запросом ID у сотрудника ($id) из чата ({$old->getChat()->getId()})" . PHP_EOL; $timer($ctx, $id, $message); }); }); - } else $timer($ctx, $id, $message); + } else { + echo "Не найдено сообщение с запросом ID у сотрудника ($id) в сессионном хранилище" . PHP_EOL; + $timer($ctx, $id, $message); + } } ); }); @@ -123,19 +142,27 @@ $bot->onMessage(function (Context $ctx) { if ($worker === $row->toArray()['ID']) { $ctx->sendMessage("✅ Авторизован сотрудник: $worker", ['reply_to_message_id' => $message->getMessageId()]); + echo "Авторизован сотрудник ($id) по идентификатору ($worker)" . PHP_EOL; // Удаление сообщения из сессионного хранилища $ctx->deleteGlobalDataItem("member_{$id}_request"); + echo "Удалено сообщение ({$_message->getMessageId()}) с запросом ID у сотрудника ($id) из сессионного хранилища после успешной авторизации" . PHP_EOL; + // Удаление сообщения $ctx->deleteMessage($_message->getChat()->getId(), $_message->getMessageId()); + echo "Удалено сообщение ({$_message->getMessageId()}) с запросом ID у сотрудника ($id) из чата ({$_message->getChat()->getId()}) после успешной авторизации" . PHP_EOL; + return; } } } - if (!empty($worker)) $ctx->sendMessage("⛔ Не найден сотрудник: $id", ['reply_to_message_id' => $message->getMessageId()]); + if (!empty($worker)) { + echo "Не удалось авторизовать сотрудника ($id) по номеру ($worker)" . PHP_EOL; + $ctx->sendMessage("⛔ Не найден сотрудник: $id", ['reply_to_message_id' => $message->getMessageId()]); + } } } );