Skip to content

paladin-705/VkScheduleBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VkScheduleBot

Бот для ВК показывающий расписание занятий. Вы можете протестировать его работу, перейдя по ссылке: VkScheduleBot

Проект разделён на модули. Такая структура, позволяет устанавливать лишь необходимые разработчику части проекта. Ниже представлен список основных модулей бота:

  • Модуль ВК бота: VkScheduleBot - Бот для ВК показывающий расписание занятий. Основной модуль проекта, осуществляющий обработку пользовательских запросов и формирование ответов на них.
  • Модуль для автоматической отправки расписания: autoposting
  • Модуль для работы с базой данных бота (просмотр/добавление/изменение/удаление групп и файлов расписания): api_server
  • Программа для взаимодействия с сервером API бота (просмотр/добавление/изменение/удаление групп и файлов расписания): api_client
  • Панель управления базой данных бота: VkScheduleBot Control Panel. Предоставляет веб-интерфейс для взаимодействия с БД расписания, а также позволяет редактировать пользователей API бота (модуль api_server). Панель управления является модулем для VkScheduleBot и UniversityScheduleBot

Также бот совместим с ботом для Telegram (UniversityScheduleBot) - боты могут использовать одну базу данных для хранения расписания и информации о пользователях.

Готовые Docker образы

Для всех модулей проекта уже собраны готовые Docker образы.

Модуль ВК бота

Docker Cloud Build Status

Docker Hub: paladin705/vk_schedule_bot

Модуль для автоматической отправки расписания

Docker Cloud Build Status

Docker Hub: paladin705/vk_schedule_bot_autoposting

Модуль для работы с базой данных бота

Docker Cloud Build Status

Docker Hub: paladin705/vk_schedule_bot_api

Панель управления базой данных бота

Docker Cloud Build Status

Docker Hub: paladin705/vk_schedule_bot_db_control_panel

Пример запуска бота с помощью Docker compose из готовых Docker образов

Пример рассчитан на использование Linux.

Для запуска бота из готовых Docker образов вам понадобятся файлы deploy, docker-compose.yml, nginx.conf и db/schema.sql расположенные в папке репозитория. Клонируйте репозиторий и перенесите эти файлы в новую папку (в примере используется папка bot):

git clone https://github.com/paladin-705/VkScheduleBot.git

mkdir bot
mkdir bot/db

cp VkScheduleBot/deploy bot/deploy
cp VkScheduleBot/docker-compose.yml bot/docker-compose.yml
cp VkScheduleBot/nginx.conf bot/nginx.conf
cp VkScheduleBot/db/schema.sql bot/db/schema.sql

rm -r VkScheduleBot

Перейдите в папку bot и сделайте файл deploy исполняемым:

cd bot
chmod +x deploy

Запустите скрипт deploy для установки параметров бота и запуска Docker контейнеров:

./deploy <PG_DB> <PG_USER> <PG_PASSWORD> \
         <VK_CONFIRMATION_TOKEN> <VK_API_TOKEN> \ 
         <STATISTIC_TOKEN> <WEEK_TYPE> <ADMIN_VK_ID> \
         <DB_USER_TAG> <FLASK_ROUTE_PATH>

Параметры скрипта

  • PG_DB - Название базы данных (БД) PostgreSQL
  • PG_USER - Имя пользователя БД
  • PG_PASSWORD - Пароль пользователя БД
  • VK_CONFIRMATION_TOKEN - Токен для подтверждения адреса сервера. Параметр VK Callback API
  • VK_API_TOKEN - Ключ доступа к сообщениям сообщества. Параметр VK API
  • STATISTIC_TOKEN - Токен для отправки статистики на chatbase.com. На данный момент не используется - Chatbase прекращает работу 27 сентября 2021 года. Можно задать любое значение, но для скрипта deploy данный параметр не должен быть пустым
  • WEEK_TYPE - Тип первой недели семестра 0 - числитель, 1 - знаменатель
  • ADMIN_VK_ID - VK ID страницы администратора (только номер) для отправки информации о состоянии сервера
  • DB_USER_TAG - Идентификатор пользователей бота (используется для разделения пользователей, при общей базе данных для нескольких ботов
  • FLASK_ROUTE_PATH - Опредлеляет адрес сервера бота для VK Callback API

В дальнейшем, если изменение настроек не требуется, можно запускать бота с помощью команды:

docker-compose up -d

Releases

No releases published

Packages

 
 
 

Contributors