Телеграм бот для весенней школы Goto, написанный на Python и PHP
ТРЕБОВАНИЯ: Windows 7 и новее
- Скачайте Python v3.4 (это ОЧЕНЬ ВАЖНО, Python v3.5/3.6 не будет работать)
- Скачайте и установите с официального сайта MySQL mysql-connector-python-2.1.5-py3.4 для архитектуры вашего процесора (32 или 64)
- Скачайте и установите XAMPP 5.6 в папку C:\xampp (далее - ~)
- скопируйте файл camp.sql в папку (далее - path)
- В командной строке перейдите в папку ~/mysql/bin
- наберите mysql -u root
- наберите source path/camp.sql
- В любую удобную вам папку скопируйте папку CampBot
- В папку ~/htdocs/dashboard скопируйте файл 404.html
- В папку ~/htdocs скопируйте все оставшиеся папки и файлы (папку images и файлы .htaccess, index.html, panel1.php, panel2.php, panel3.php, panel4.php, panel5.php, styles.css, menu.css
- Запустите программу XAMPP Control Panel и запустите Apache и MySQL. Поставьте Apache на порты 80, 443 и MySQL на 3306.
- Запустите в терминале все программы из папки CampBot
- Откройте в браузере localhost
Если вас не устраивает название моего бота (GotoBot с username @goto_msk_bot), вы можете в каждом файле найти токен моего бота и заменить его на свой.
На сайте (localhost, если вы скачали XAMPP, и c8183c6d.ngrok.io, если нет) размещена панель управления GotoBotом с функциями отправки мнгновенного сообщения, добавления участника, ачивки и расписания и создания квеста.
Бот отправит текст, переданный в форму, всем участникам GotoCamp.
Бот добавит в базу данных информацию о пользователе. В начале смены сообщите всем участникам их пароль, по которому они смогут войти в бота с помощью команды /start <пароль>
- Бот добавит в базу данных ачивку, присвоенную пользователю
- Бот отправит сообщение о полученной ачивке всем пользователям (Вася Пупкин получил ачивку "Неспящий")
С помощью кнопки "Добавить" вы сможете добавить новые поля для заполнения расписания. Старое расписание удаляется, но в подсказках к вводу данных оно сохранится. Новое расписание автоматически отправится всем участникам.
С помощью кнопки "Добавить" вы сможете добавить новые поля для заполнения квеста.
Бот запоминает последовательность вопросов для каждой команды (при заполнении вопросов нужно писать, для какой команды написан вопрос) и правильные ответы на них.
Авторизация по логину команды начинает квест, при правильном ответе задается следующий вопрос, предыдущий удаляется.
Когда команда закончит квест, каждому администратору придет сообщение "Команда №n закончила квест".
Так как бот с сайтом работают на XAMPP, все вышеуказанные функции можно сделать и через phpMyAdmin, поэтому не рассматривайте мой сайт как единственный инструмент работы с ботом. Я делал его, чтобы упростить процесс управления БД, сделать его удобоваримым для повседневных нужд.
Аутенцифирует пользователя по паролю и запоминает его chatId в БД
Бот присылает список всех ачивок пользователя. Если параметр пустой, пришлет ваши ачивки.
Бот присылает информацию о доме, в котором живет организатор
Аналогично
Бот присылает полное расписание на день
Бот присылает информацию о текущем событии
Выводит помощь по командам
Прочитайте текст про добавление квеста
Помимо панели управления существует и другой способ управления ботом. Если вы пошли на обед и решили отправить всем срочное сообщение или добавить ачивку, вы сможете сделать это с помощью команд администратора.
Вход как администратор
Бот спросит, кому нужно добавить ачивку, после этого он добавит в БД ачивку для пользователя и разошлет информацию всем пользователям
Бот отправит срочное сообщение всем пользователям
Пользователи, попытавшиеся использовать команды администратора, не будут допущены.