Документация Tbot.
Логин оригинального бота @Riisubot
Инструкция по установке
Требования перед установкой: версия интерпретатора Python не ранее 3.4. Последнюю версию интерпретатора можно скачать здесь: https://www.python.org/downloads/release/python-360 Порядок установки:
• Скачать из дирректории https://github.com/Animatory/Competition файлы; сonfig.ini, Tbot.pyz, requirements.txt;
• Зарегистрировать в телеграмме бота, получив его токен;
• В файле сonfig.ini указать в параметрах токен бота и пароль для регистрации первого админа;
• Запустить Tbot.pyz;
• Если не запускается, то установите для интерпретатора модули pyTelegrambotAPI и configparser;
• В телеграмме начать диалог с ботом;
• Ввести боту команду «/admin <Пароль>».
Добавление новых пользователей и администраторов
Правила при добавлении пользователей в базу банных бота:
• Прежде, чем добавить пользователя или администратора в базу данных бота, у них должна существовать беседа с ботом. Поэтому необходимо отправить добавляемому пользователю username бота, и он должен начать разговор, нажав кнопку /start;
• Быть внимательным при вводе данных участника и выборе сообщения для добавления.
Режим работы
Бот может работать на любом компьютере или сервере, где установлен интерпретатор Python 3.4+.
В процессе работы, он отправляет пользователям сообщения, установленные администраторами. Так же он создаёт две базы данных, удалять или изменять которые нежелательно, иначе в работе бота возникнут ошибки или данные о пользователях могут быть потеряны. В случае возникновения ошибки, необходимо отправить лог ошибки на электронный адрес 1672.1725@mail.ru и перезапустить бота.
Доступный функционал
В режиме ученика:
• Автоматически:
o Уведомление о наступающих событиях: “Через 5 минут: обед, Столовая”;
o Уведомление о получении новой ачивки: “Вы получил достижение: Неспящий”;
o Расписание на день по утрам и его обновления в течение дня: список время – событие, место;
o Срочные сообщения: “Всем срочно на внеплановый второй обед!”;
• По запросу:
o Список ачивок пользователя;
o Полное расписание на день как своей группы, так группы по запросу;
o Информация о текущем событии - “что и где сейчас идет?”;
o Справочная информация:
Номера телефонов вожатых и преподавателей;
Команда “/где” - говорит, где живет участник;
• Режим квеста:
o Авторизация по логину команды - начинает квест;
o Для каждой команды - последовательность вопросов, при правильном; ответе задается следующий вопрос.
В режиме администратора:
o Добавление ученика или администратора;
o Добавление расписание на день;
o Добавление ачивки;
o Отправка срочного сообщения;
o Составление квеста;
o Изменение личных данных.
Команды бота
Однопользовательский режим
Команды администратора
/добавить_участника <Фамилия> <Имя> <Отчество>, <Группа>, <Место жительства> - добавляет пользователя в базу бота и предоставляет ему доступ пользовательскому функционалу бота и даёт возможность администраторам взаимодействовать с ним. После ввода этой команды нужно переслать боту любое сообщение этого пользователя. Если указали неверные данные, то команда /break прерывает выполнение команды Пример: "/добавить_участника Иванов Иван Иванович, 6 отряд биотехнологии, 20 комната".
/добавить_администратора <Фамилия> <Имя> <Отчество>, <Телефон>, <Деятельность> - даёт пользователю права администратора. После ввода этой команды нужно переслать боту любое сообщение этого пользователя. Если указали неверные данные, то команда /break прерывает выполнение команды. Пример: "/добавить_администратора Иванов Иван Иванович, 8 800 888 8888, Вожатый 6 отряда".
/установить_расписание <Группы> - добавляет расписание для заданной группы. Можно указать одну или несколько групп через запятую. Если указать в качестве аргумента "*", то расписание будет добавлено для всех групп. Примеры: "/установить_расписание 6 отряд, 5 отряд" или "/установить_расписание *" После ввода этой команды посылается сообщение, содержащее в себе пояснения по вводу расписания. После этого, следуя форме, можете записывать расписание
/создать_квест <Название квеста> - создаёт квест, в котором могут участвовать только команды. Пример: "/создать_квест Анатомия"
/результаты – показывает результаты квестов, пройденных командами.
/расписание <Группа> - выводит расписание указанной группы Пример корректной команды: "/расписание 6 отряд"
/сообщение <Группы>; <Сообщение> - посылает пользователям, принадлежащим к указанным группам сообщение. Если в качестве группы написать "*", то сообщение будет отправлено всем пользователям. Примеры корректной команды: "/сообщение 6 отряд, 5 отряд; Текст" или "/сообщение *; Текст"
/дать_ачивку (<ФИО пользователя>) <ачивка> - даёт пользователю, указанному в скобках ачивку. Пример корректной команды: "/дать_ачивку (Иванов Иван Иванович) Неспящий"
/ачивки <ФИО пользователя> - показывает список ачивок пользователя Пример корректной команды: "/ачивки Иванов Иван Иванович" Команды «/имя <Имя>», «/фамилия <Фамилия>», «/отчество <Отчество>», «/номер <Номер телефона>», «/деятельность <Деятельность>», «/осебе <Краткая информация об администраторе>» позволяют администратору менять личные данные, доступные участникам. Желательно указывать реальные данные, чтобы ученики понимали, кто это.
/где <Фамилия>, <Имя>, <Отчество>, <Группа> - показывает, где живет пользователь с указанными данными. Можно указать от 0 до 4 параметров. Порядок не имеет значение. Если таких пользователей несколько, то бот выводит их всех Примеры корректной команды: "/где Пётр", "/где 6 отряд", "/где Пётр, 6 отряд, Викторович”.
/руководители - выдаёт список всех администраторов с информацией о них
/участники - выдаёт список всех пользователей с информацией о них Команды пользователя
/событие – выводит текущий и следующий пункт в расписании
/ачивки <ФИО пользователя> - показывает список ачивок пользователя. При отсутствии ФИО выводит ачивки пользователя, вызвавшего команду. Пример: "/ачивки Иванов Иван Иванович" или " /ачивки".
/расписание <Группа> - выводит расписание указанной группы. При отсутствии группы выводит расписание пользователя, вызвавшего команду. Пример: "/расписание 6 отряд".
/где <Фамилия>, <Имя>, <Отчество>, <Группа> - показывает, где живет пользователь с указанными данными. Можно указать от 0 до 4 параметров. Порядок не имеет значение. Если таких пользователей несколько, то бот выводит их всех. Примеры: "/где Пётр", "/где 6 отряд", “/где Пётр, 6 отряд, Викторович”.
/руководители - выдаёт список всех администраторов с информацией о них.
/участники - выдаёт список всех пользователей с информацией о них.
Многопользовательский режим. Режим квеста.
Перед началом квеста, администратору необходимо создать квест командой /создать_квест. После вызова этой команды администратору будет предложено написать логины команд, участвующих в квесте. Логины можно указать только один раз, и при создании следующего квеста они уже будут в базе данных! После ввода команд, администратор должен отправить боту рад вопросов с ответами. При этом необходимо придерживаться следующих правил:
-
Вопрос и ответ на него отправляйте боту в одном сообщении, разделив их знаком переноса строки.
-
При обнаружении ошибки в одном из отправленных вопросов, введите команду '/переписать <Номер вопроса>', а в следующем сообщении исправленный вариант. Отсчёт вопросов начинается с 1.
-
Команда /end завершает ввод и сохраняет квест.
-
Команда /break прерывает ввод, квест не сохраняется.
Со стороны команд необходимо сделать следующее:
• Создать группу в Телеграмме, включающую всех участников команды, а также бота.
• В ней ввести команду «/quest <Название квеста>»
• Создатель беседы (капитан команды по совместительству) должен ввести логин команды.
После этого команде будет задан ряд вопросов, ответы на которые должны быть вида «/ответ <Ответ>». Ответив на все вопросы, команда получает определённое количество баллов, получаемое по следующей формуле: <Баллы> = <кол-во секунд, потраченных на решение> + <кол-во всех ответов, посланных боту>*10 По логике следует, что чем больше баллов, тем хуже результат.
Администратор может получить список всех результатов командой «/результаты»
Со стороны бота существует несколько ограничений:
-
Команда, прошедшая квест, не может пройти этот квест снова.
-
Логин команды связывается с создателем группы, из-за чего одна группа не сможет пройти квест за другую группу. Поэтому перед началом прохождения основных квестов, необходимо провести пробный квест, чтобы связать группы и их логины.
-
В группах недоступны стандартные команды бота.
-
Если квест начался, то остановится только после ответа на все вопросы, либо при отключении бота.