Skip to content

Бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий

License

Notifications You must be signed in to change notification settings

BlindMaster24/MgkeTimetableBot

 
 

Repository files navigation

МГКЦТ Бот расписаний

Описание

МГКЦТ Бот расписаний - это бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий. Если у вас возникли проблемы с использованием бота или вы нашли ошибку, пожалуйста, создайте issue в репозитории проекта или внесите свои изменения через Pull Request.

Прошлый репозиторий

Я хотел бы также упомянуть, что ранее этот проект размещался в отдельном приватном репозитории, который насчитывал 223 коммита. Однако, в процессе разработки в старом репозитории были хранены конфиденциальные данные, что потребовало отделить проект и разместить его в новом, открытом репозитории.

При переносе проекта в новый репозиторий я постарался убедиться, что все конфиденциальные данные были удалены и заменены соответствующими конфигурационными файлами и примерами для облегчения работы других разработчиков с проектом.

Хотя некоторые коммиты могут быть потеряны, я надеюсь, что текущий репозиторий будет полезным и доступным для всех заинтересованных разработчиков.

Требуется помощь

Я хочу предупредить и извиниться перед теми, кто заинтересован в этом проекте, что код был написан мной без строгого следования лучшим практикам разработки и стандартам качества. В результате, некоторые части кода могут показаться громоздкими, сложными для понимания или неэффективными. Я осознаю, что это может затруднить работу с проектом и его доработку.

Тем не менее, я приглашаю всех желающих присоединиться к разработке и внести свой вклад в улучшение кода, оптимизацию и переписывание отдельных компонентов. Я буду рад любой помощи в улучшении качества проекта и сделаю все возможное, чтобы поддержать участников в этом процессе.

Еще раз приношу извинения за возможные неудобства и надеюсь на ваше понимание и содействие в развитии проекта.

Действующие проекты

Структура проекта

Проект состоит из различных модулей и компонентов, важные из которых описаны ниже:

  1. Папка команд (src/services/bots/commands) - здесь находятся все команды для различных платформ (ВК, Telegram и Viber). Команды разделены по категориям, таким как admin, main_menu, rasp, settings, и другим.

  2. Папка сервисов (src/services) - содержит различные сервисы для работы с Алисой, API, ботами и созданием изображений. В каждой подпапке находятся специфичные файлы для каждого сервиса:

    • Alice: обработка навыков и пользовательских запросов
    • API: обработка методов API
    • Bots: реализация абстрактных классов и методов для ботов
    • Image: создание изображений с расписанием
    • VK App: обработка методов для мини-приложения ВКонтакте
    • Parser: отвечает за обновление данных расписания и кэширование
    • Timetable: хранение данных о расписании. В папке types находятся типы данных для расписания преподавателей и групп.

Дополнительно к этим ключевым папкам, следует обратить внимание на следующие файлы и папки:

  • db/ - подключение базы данных
  • http.ts - настройка и работа с HTTP-сервером
  • src/formatter - форматировщик расписания
  • src/services/bots/abstract - содержит абстрактные классы и методы для ботов
  • src/utils - содержит различные утилиты, такие как сортировка, преобразование времени, проверка подписи и другие функции

Это краткое описание ключевых компонентов и структуры проекта. Ознакомьтесь с этими папками и файлами для более глубокого понимания работы бота и его возможностей.

Установка и запуск

Для запуска бота требуется Node.js. Следуйте приведенным ниже шагам для установки и запуска:

  1. Убедитесь, что у вас установлен Node.js. Если нет, установите его с официального сайта: https://nodejs.org/

  2. Клонируйте репозиторий проекта:

    git clone https://github.com/Keller18306/MgkeTimetableBot.git
  3. Перейдите в каталог проекта:

    cd MgkeTimetableBot
  4. Установите зависимости проекта:

    npm i -g yarn ts-node
    yarn
  5. Скопируйте файл config.example.ts и переименуйте его в config.ts. Откройте config.ts и заполните необходимые значения переменных, согласно схеме из файла config.scheme.ts. В конфиге можно настраивать различные сервисы, такие как ВКонтакте, Telegram, Viber и API.

    ВАЖНО! По умолчанию в конфиге включены следующие сервисы: http, api, timetable, parser. Для того, чтобы запустить бота/ботов необходимо указать сервис bot, а также сервис соц-сети (например tg, vk, viber).

Google Calendar

Инструкция по настройке и правам доступа: docs/google-calendar.md.

Некоторые сервисы требуют наличия других сервисов, например:
|      Сервис     | Обязательные сервисы | Второстепенные |
|:---------------:|----------------------|----------------|
| tg              | bot, timetable       | image, google  |
| vk              | bot, timetable       | image, google  |
| viber           | bot, http, timetable | image, google  |
| vkApp           | http, timetable      |                |
| api             | http, timetable      |                |
| alice           | http, timetable      |                |
| google_calendar | timetable            | bot, http      |   
| parser          | timetable            | bot            |   
| image           |                      | http           |   

Пример для запуска телеграм (без апи, но с генерацией изображения):
```typescript
export const config: ConfigScheme = {
    dev: false,
    services: ['timetable', 'parser', 'bot', 'tg', 'image'],
    db: {
    ...
```
*Полный список сервисов можно найти в **src/app.ts***
  1. Добавьте в конфиг 32-байтный ключ шифрования. Вы можете сгенерировать его, выполнив следующую команду в консоли:

    node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"

    Скопируйте полученный ключ и добавьте его в соответствующее поле в файле config.ts.

  2. Запустите бота:

    yarn start

Поздравляем, ваш МГКЦТ Бот расписаний успешно запущен и готов к работе!

Лицензия

Данный проект распространяется под MIT лицензией. Если вы хотите создать свою версию бота, обязательно указывайте авторство оригинального проекта.

About

Бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%