Skip to content

dzekegor/gotobot2017

Repository files navigation

@goto_msk_bot

Телеграм бот для весенней школы 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, поэтому не рассматривайте мой сайт как единственный инструмент работы с ботом. Я делал его, чтобы упростить процесс управления БД, сделать его удобоваримым для повседневных нужд.

Список команд пользователя

/start <пароль>

Аутенцифирует пользователя по паролю и запоминает его chatId в БД

/ачивки <пользователь>

Бот присылает список всех ачивок пользователя. Если параметр пустой, пришлет ваши ачивки.

/дом <организатор>

Бот присылает информацию о доме, в котором живет организатор

/телефон <организатор>

Аналогично

/расписание

Бот присылает полное расписание на день

/событие

Бот присылает информацию о текущем событии

/help

Выводит помощь по командам

/квест <пароль>

Прочитайте текст про добавление квеста

Список команд администратора

Помимо панели управления существует и другой способ управления ботом. Если вы пошли на обед и решили отправить всем срочное сообщение или добавить ачивку, вы сможете сделать это с помощью команд администратора.

/admin <пароль>

Вход как администратор

/ачивка <текст>

Бот спросит, кому нужно добавить ачивку, после этого он добавит в БД ачивку для пользователя и разошлет информацию всем пользователям

/срочно <текст>

Бот отправит срочное сообщение всем пользователям

Примечание к списку

Пользователи, попытавшиеся использовать команды администратора, не будут допущены.