schoolbot v1.0.0
SchoolBot
Помощник для школьников и студентов для ВКонтакте, написанный на node.js
Просмотр функционала и не только
Я сделал специальную страницу, которая поясняет все команды бота, а также демонстрирует работу с ним. (Содержание устарело, но суть не меняется
)
Альтернатива - писать напрямую боту, которым я сам пользуюсь.
Установка
Чтобы установить бота, скопируйте репозиторий.
$ git clone https://github.com/sashafromlibertalia/SchoolBot.git
или воспользуйтесь npm:
npm install schoolbot
Важное объявление
Библиотека canvas не может из коробки обрабатывать JPEG
изображения на ARM процессорах. Вы будете получать следующую ошибку:
Uncaught Error: node-canvas was built without JPEG support
Решение этой проблемы есть, но оно может сработать не для всех. Почему так? Я не знаю. Мне не помогло. Решение есть тут, а также тут.
Я очень надеюсь, что автор этой библиотеки придумает решение этой проблемы.
Дальнейшая настройка
Вам нужно создать группу в ВКонтакте, к которой будет привязан бот. Сначала разрешите сообщения сообщества, а затем вам нужно получить токен, который нужно вставить в конфиг. Найти его можно тут:
Управление -> Работа с API -> Ключи доступа -> Создать ключ
Выбираете нужные вам пункты и жмете "создать".
После того, как Вы скачали репозиторий бота, переходить в папку src
. В ней находится файл config.js
. Он нужен для внесения параметров, необходимых для корректной работы бота.
const config = {
TOKEN: STRING, // Сюда вы пишите токен группы, полученный с помощью LongPoll
POLLING_GROUP_ID: INT, // ID вашей группы
PARSER_URL: STRING, // Ссылка на файл domashka.txt (КРАЙНЕ рекомендую хранить его на GitHub в репозитории с ботом, почему - см. parser.js)
NAME_GROUP: STRING, // Ваш класс (или группа)
NAME_PLACE: STRING, // Название вашего учебного заведения
NAME_ADMIN: STRING, // Ваше имя
NAME_ADMIN_DAT: STRING, // Ваше имя в дательном падеже (см. feedback.js)
ADMIN_DOMAIN: STRING, // Короткая ссылка на вашу страницу
ADMIN_ID: ARRAY OF INTS // Массив, состоящий из ID администраторов беседы (на тот случай, если бот будет состоять в нескольких беседах)
}
После того, как все данные будут заполнены, вам нужно разобраться со структурой кода.
SchoolBot
использует модульную систему: каждая функция вынесена в отдельный файл, который далее подключается к index.js
. Подробнее о файлах ниже:
Название файла | Расположение | Назначение |
---|---|---|
index.js | ./src/index.js | Исполняемый файл программы, сюда подключаются все остальные файлы |
vk.js | ./src/vk.js | В данном файле хранится конструктор VK, а также обработчик сообщений и клавиатуры. Этот файл подключаем ко всем побочным файлам, подразумевающим обработку разных команд. |
links.js | ./src/links.js | В данном файле хранится информация о предметах и ссылках на Zoom. |
image.js | ./src/image.js | Обертка для /citgen и /trollgen |
automasticSender.js | ./src/automaticSender.js | Этот файл нужен для отправки оповещений перед началом пар |
start.js | ./src/commands/start.js | Реализация команды /start |
commands.js | ./src/commands/commands.js | Реализация команды /команды. Она присылает полный список команд |
help.js | ./src/commands/commands.js | Реализация команды /help |
feedback.js | ./src/commands/feedback.js | Реализация команды /отзыв |
citgen.js | ./src/commands/citgen.js | Реализация команды /citgen. Юмор - наше все |
date.js | ./src/commands/date.js | Реализация команды /дата и смежных с ней |
games.js | ./src/commands/games.js | Реализация игр бота |
kicker.js | ./src/commands/kicker.js | Реализована команда /вгулаг, которая кикает любого пользователя. Плюс ее в том, что работать для того человека, который будет указан в config.js в поле ADMIN_ID |
parser.js | ./src/commands/parser.js | Парсер domashka.txt |
savedData | ./src/commands/savedData.js | Реализация команды /шпора и смежных с ней |
troll.js | ./src/commands/troll.js | Реализация команды /тролль, которая коверкает слова, которые дает пользователь. Иногда выходит очень забавно |
trollgen.js | ./src/commands/trollgen.js | Аналог /citgen |
Запуск бота
Чтобы запустить бота, введите следующую команду. Она устанавливает зависимости, необходимые для работы Schoolbot:
npm install
Далее, если у вас не работают команды /citgen
и /trollgen
, есть два пути:
1. Если у вас macOS, введите следующую команду через Homebrew:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
- Если у вас Windows, то перейдите сюда
Команды
/дата
- отправляет клавиатуру с выбором дня недели, по нажатии на кнопку отправляется д/з на выбранный день./дз завтра
- отправляет домашние задания на завтра/дз все
- отправляет домашние задания на всю неделю/игры
- отправляет клавиатуру с выбором игр/отзыв
- отправляет отзыв человеку, чей ID указан в конфиге. В принципе - вещь бестолковая, но кому нужно, тот найдет ей применение./шпора
- можно добавить важные фото/документы/шпоры, чтобы не искать потом по всей беседе. (При перегрузке/остановке бота все стирается, поэтому лучше сохранненые данные хранить в БД или еще где-нибудь)/тролль
- перешлите чье-то сообщение и пишите эту команду/шпора ?
- инструкция по шпорам/шпора список
- список шпор/citgen
- перешлите чье-то сообщение и напишите эту команду/trollgen
- перешлите чье-то сообщение и пишите эту команду/help
- документация бота
Список команд ограничивается вашей фантазией :) Дерзайте!
Планы
- Перенос слов в цитгене
- Четность недель
- Автообновление парсера без перегрузки бота
4 years ago