Вступление
Всем привет. Наступило лето, и у меня дошли руки написать данную статью. Представлюсь: Я — школьник, перешедший в 11 класс. Как у любого учащегося, у меня есть беседа класса, где скидывают домашние задания, спрашивают расписание и так далее. Вдохновившись программированием, сразу родилась идея автоматизировать эту рутину и
Ввиду возраста, опыт в программировании у меня скудный, а на Node.JS вообще нулевой, поэтому, прочитав пару статей, было решено действовать.
Репозиторий.
Функционал
Что хотелось от бота? Узнать Д/З, расписание… Да и все, в целом. Однако, по мере решения одной задачи, появлялись другие, и на данный момент бот обладает 9 командами, не считая справок и неформальных функций.
Итак, по порядку:
- /дз
Предельно простая команда, которая отправляет домашнее задание c текущего дня.
- /урок
Оповещает, какой урок проходит в данный момент.
- /уроки
Отправляет расписание на текущий день.
- /игры
Дает в возможность играть в игры с пользователем (баловство, но лишним не будет).
- /insert
Дает возможность исправить или внести домашнее задание, если по какой-то причине оно неизвестно.
- /дата
Отправляет клавиатуру, где можно выбрать домашнее задание на конкретный день недели.
Кроме того, если пользователь пишет что-то вроде «Что задано?», то ему отправляется точно такая же клавиатура.
- /отзыв
Позволяет отправить отзыв о работе бота. Он анонимен (формально, так как если отправитель находится в одной беседе с вами, анонимностью тут и не пахнет).
- /завтра
Отправляет расписание на завтрашний день.
- /неделя
Отправляет расписание на всю неделю.
Собственно, я описал все команды, но один вопрос остался открытым — а как же и где обновлять домашние задания? Понятно, что нельзя каждый раз открывать проект и вручную все обновлять, это неудобно. Я пришел к такому решению: создать на GitHub текстовый файл, откуда бот парсит все данные, а чтобы обновить их, просто переписать и перезапустить бота.
Настройка, установка и деплой
Что нужно, чтобы заработал бот? Вот инструкция:
- Создать группу ВКонтакте.
- Перейти во вкладку Управление.
- Перейти в пункт меню Управление API.
- Нажать на кнопку Создать ключ. Поставить нужные галочки (или все, все зависит от ваших нужд). Нажать Создать.
- Перейти во вкладку Long Poll API, включить LongPoll и поставить последнюю версию API, при этом выбрав нужные события.
- Скопировать ключ доступа и вставить его в переменную TOKEN.
Установка репозитория осуществляется через Git:
git install https://github.com/sashafromlibertalia/SchoolBot.git
В нем лежит файл Procfile, нужный для деплоя бота. Деплой осуществляется через Heroku
Обратная связь
У меня были опасения, что мое творение не придется по душе товарищам, и отчасти это подтвердилось: люди не были подготовлены к такому, но со временем результат был сугубо положительный.
Вот примеры реакций на бота:
________
________
Заключение
Надеюсь, мой труд окажется полезным для школьников и студентов, читающих Хабр. Я открыт к любой конструктивной критике, особенно насчет качества кода.