项目作者: paladin-705

项目描述 :
Schedule bot for Vk
高级语言: Python
项目地址: git://github.com/paladin-705/VkScheduleBot.git
创建时间: 2020-11-14T01:33:56Z
项目社区:https://github.com/paladin-705/VkScheduleBot

开源协议:

下载


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):

  1. git clone https://github.com/paladin-705/VkScheduleBot.git
  2. mkdir bot
  3. mkdir bot/db
  4. cp VkScheduleBot/deploy bot/deploy
  5. cp VkScheduleBot/docker-compose.yml bot/docker-compose.yml
  6. cp VkScheduleBot/nginx.conf bot/nginx.conf
  7. cp VkScheduleBot/db/schema.sql bot/db/schema.sql
  8. rm -r VkScheduleBot

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

  1. cd bot
  2. chmod +x deploy

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

  1. ./deploy <PG_DB> <PG_USER> <PG_PASSWORD> \
  2. <VK_CONFIRMATION_TOKEN> <VK_API_TOKEN> \
  3. <STATISTIC_TOKEN> <WEEK_TYPE> <ADMIN_VK_ID> \
  4. <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

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

  1. docker-compose up -d