neko-neko-nyan / raspisanie_bot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Telegram бот "Расписание НКРП"

Телеграм бот расписания для Новороссийского колледжа радиоэлектронного приборостроения.

Руководство по администрированию

Системные требования

Бот может работать в системах Windows и Linux. Для работы требуется установить на компьютер Python версии 3.8 и выше (рекомендуется 3.10). В примерах команд подразумевается, что python прописан в переменной окружения PATH и доступен по команде python. Если это не так во всех командах Вы должны указывать полный путь к исполняемому файлу python(.exe).

Установка

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

Скопируйте файл config.example.json в config.json.

Откройте констоль в папке с программой и выполните команду:

python -m pip install -r requirements.txt

В Windows в зависимости от метода установки может потребоваться выполнить эту команду от имени администратора.

В Linux зависимости будут установлены в папку текущего пользователя. Если планируется запускать бота от имени другого пользователя, то эта команда также должна быть выполнена от имени этого пользователя. Если выполнить эту команду от имени root, то зависимости будут установлены в системный каталог и станут доступны всем пользователям.

Настройка

Настройки бота указываются в файле config.json. Для редактирования этого файла рекомендуется использовать редактор с подсветкой синтаксиса, например, VS Code.

В таблице перечислены все опции конфигурации.

Ключ Тип По умолчанию Описание
JWT_KEY_FOR_ERRORS строка "" Ключ (случайные символы), необходимый для подтверждения отладочной информации. Только если debug_info включен.
INVITE_SIGN_KEY строка "" Ключ (случайные символы), необходимый для работы приглашений. Напишите что-нибудь.
BOT_TOKEN строка требуется указать Ключ (токен) telegram, выданный ботом Bot Father.
UPDATE_INTERVAL целое число 3600 Интервал обновления расписания в секундах (3600 - 1 час).
TIMETABLE_URL строка "http://novkrp.ru/raspisanie.htm" Ссылка на страницу расписания.
enable_features словарь {...: false} Включенные доп. возможности (см таблицу ниже).
replace_pair_names словарь (строка: строка) {} Замена названий пар. Формат: "Название в расписании": "Название в боте".
cabinets список целых чисел [] Список всех возможных номеров аудиторий (для предзагрузки).
teachers список (см описание) [] Список всех возможных преподавателей (для предзагрузки). Формат элемента: ["Фамилия", "Имя", "Отчество"].
groups список строк [] Список всех возможных групп (для предзагрузки).

В таблице перечислены все дополниельные возможности, которые могут быть включены.

Ключ Значение Поведение
debug_info false При ошибке пользователю будет выведено сообщение с текстом ошибки.
debug_info true При ошибке пользователю будет выведено сообщение с текстом ошибки, номером ошибки и кодом, содержащим дополнительную информацию.
remove_old_data false При обновлении расписания устаревшие данные (расписание на прошедшие дни) не будут удаляться.
remove_old_data true При обновлении расписания устаревшие данные (расписание на прошедшие дни) будут удаляться.
create_missing_persist false При обновлении расписания несуществующие предзагружаемые данные (группы, аудитории и преподаватели) не создаются в базе данных. Группы пропускаются, остальные данные переносятся в название пары.
create_missing_persist true При обновлении расписания несуществующие предзагружаемые данные (группы, аудитории и преподаватели) создаются в базе данных.
cvp_parse false При обновлении расписания расписание питания в столовой не будет обрабатываться (сильно сокращает время обновления).
cvp_parse true При обновлении расписания расписание питания в столовой будет обрабатываться и загружаться в базу данных если на него есть ссылка в расписании.

Точное указание предзагружаемых данных и отключение create_missing_persist улучшит результаты разбора.

Запуск

Для запуска бота используйте команду:

python -m raspisanie_bot

Для остановки нажмите Ctrl-C в окне консоли бота

После превого запуска бота выполните команду /start в telegram. Это сделает Вас администратором бота. Для сброса всех настроек пользователей, приглашений и т. д. остановите бота и удалите файлы database.sqlite*.

Администрирование

Первым администратором является первый пользователь бота. Администратор может:

  1. Создавать приглашения, дающие права администратора.
  2. Выполнять команды /admin ...

Админитративные команды:

  1. /admin update - обновление расписания с сайта.
  2. ... - в разработке.

Автозапуск

Не рекомендуется использовать автозапуск по входу в систему (папка "Автозагрузка", .bashrc, и т.д.).

В Windows

Создайте службу. Для этого можно использовать утилиту nssm (см документацию).

В Linux

Создайте сервис systemd (если есть) или init-скрипт.

Лицензия

MIT License. См файл LICENSE.

About

License:MIT License


Languages

Language:Python 100.0%