123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace BotKit;
- // Файл, на который поступают запросы
- require_once __DIR__ . '/src/bootstrap.php';
- use BotKit\Common\Bot;
- use BotKit\Common\Commands;
- use BotKit\Common\Message;
- use BotKit\Common\Database;
- use BotKit\Drivers\TestDriver;
- use BotKit\Events\PlainMessageEvent;
- use BotKit\Events\UnknownEvent;
- use BotKit\Events\MemberJoinedEvent;
- use BotKit\Events\MemberLeftEvent;
- use BotKit\Enums\State;
- use BotKit\Enums\CallbackType;
- use BotKit\Keyboards\SelectGroupNameKeyboard;
- $bot = new Bot();
- $drv = new TestDriver();
- $bot->loadDriver($drv);
- $bot->ensureDriversLoaded();
- // Выбор даты
- $bot->onCallback(CallbackType::SelectDate, "BotKit\Common\Commands::handleDate");
- // Выбор курса для группы
- $bot->onCallback(CallbackType::SelectGroupCourse, function($e, $u, $driver) {
- // Переносим полученные параметры в новую клавиатуру
- // А так же изменяем сообщение
- $params = $e->getParams();
- $driver->editMessage(
- $e->getMessageID(),
- Message::create("Выбери группу")
- ->withKeyboard(new SelectGroupNameKeyboard($params['intent'], $params['course'], 0))
- );
- });
- // Пользователь запросил смену страницы при выборе специальности группы
- $bot->onCallback(CallbackType::SelectGroupNavigation, function($e, $u, $driver) {
- $params = $e->getParams();
- $driver->editMessage(
- $e->getMessageID(),
- Message::create("Выбери группу")
- ->withKeyboard(new SelectGroupNameKeyboard(
- $params['intent'],
- $params['course'],
- $params['offset']
- ))
- );
- });
- // Выбор: вводить или не вводить логин и пароль от АВЕРС при регистрации
- $bot->onCallback(CallbackType::EnterCredentials, 'BotKit\Common\Commands::enterCredentials');
- // Выбор непосредственно группы
- $bot->onCallback(CallbackType::SelectGroup, 'BotKit\Common\Commands::handleGroupSelection');
- // Просмотр условий использования
- $bot->onCallback(CallbackType::TOS, 'BotKit\Common\Commands::showTermsOfService');
- // Заглушка
- $bot->onCallback(CallbackType::None, function($e, $u, $driver) {});
- // Начало диалога
- $bot->onCommand('/start', 'BotKit\Common\Commands::helloWorld');
- $bot->onPlainMessage(State::HelloWorld, "BotKit\Common\Commands::helloWorld");
- // Выбор типа аккаунта
- $bot->onPlainMessage(State::RegSelectType, "BotKit\Common\Commands::handleSelectType");
- // Ввод логина от АВЕРС при регистрации
- $bot->on(
- PlainMessageEvent::class,
- function ($e, $u, $driver) {
- return $u->getState() == State::RegLogin;
- },
- "BotKit\Common\Commands::handleRegLogin"
- );
- // Ввод пароля от АВЕРС при регистрации
- $bot->on(
- PlainMessageEvent::class,
- function ($e, $u, $driver) {
- return $u->getState() == State::RegPassword;
- },
- "BotKit\Common\Commands::handleRegPassword"
- );
- // Обработка главного меню
- $bot->on(
- PlainMessageEvent::class,
- function ($e, $u, $driver) {
- return $u->getState() == State::Hub;
- },
- "BotKit\Common\Commands::handleHUB"
- );
- // Без ответа
- $bot->on(
- PlainMessageEvent::class,
- function ($e, $u, $driver) { return $u->getState() == State::NoResponse; },
- function($e, $u, $driver) {}
- );
- // План "Б"
- $bot->onEvent(UnknownEvent::class, "BotKit\Common\Commands::unknownEvent");
- $bot->fallback("BotKit\Common\Commands::fallback");
|