Этот Telegram бот ежедневно отправляет расписание занятий для группы студентов. Он поддерживает как командное управление расписанием, так и автоматическую отправку расписания в указанные дни и часы.
- Автоматическая ежедневная отправка расписания в указанный чат.
- Отправка расписания на день по команде
/schedule
. - Поддержка отправки изображений с расписанием.
- Легко настраивается для различных учебных групп.
- Работа как с групповыми чатами (группы / супергруппы), так и с личными сообщениями.
Для установки бота выполните следующие шаги:
- Склонируйте репозиторий:
git clone https://github.com/overklassniy/stankin_schedule_bot.git
- Перейдите в директорию проекта:
cd stankin_schedule_bot
- Установите зависимости:
3.1. Установите необходимые Python библиотеки командой:3.2. Установите Ghostscript по инструкции здесь.pip install -r requirements.txt
-
Создайте файл
.env
в корневой директории и добавьте в него ваш токен Telegram бота:BOT_TOKEN=your_telegram_bot_token
-
Настройте файл
config.json
:LOGS_DIR
: Директория, в которой будут сохраняться файлы логов.GROUP
: Код Вашей группы.GROUP_ID
: ID чата, в который бот будет отправлять расписание.THREADED
: Отправлять ли сообщение в подтему Вашей супергруппы (в случае таковой).THREAD_NUMBER
: ID темы подгруппы для отправки расписания, используется, если параметр THREADED: true.HOUR
иMINUTES
: Время отправки расписания (например, при HOUR: 5 и MINUTES: 60 бот будет отправлять расписание сразу же, как наступит 5 часов и бот будет доступен, в 5:00).PDF_PATH
: Путь к файлу PDF с расписанием.TEACHERS_FULLNAMES_PATH
: Путь к .json файлу с полными именами преподавателей. В случае его отсутствия будут использоваться имена преподавателей в формате Фамилия И.О. из расписания.SLEEP_TIME
: Время сна между отправками сообщений (в секундах).CHECK_TIME_INTERVAL
: Частота проверки времени для отправки расписания (в секундах).ENABLE_IMAGE
: Включить ли отправку изображения при отправке расписания.IMAGES_DIR
: Директория с изображениями для отправки используется, если параметр ENABLE_IMAGE: true.ENABLE_SECURE
: Включить ли использование команд только в группе.ENABLE_TOMORROW_BUTTON
: Включить ли кнопку "Расписание на завтра" под сообщением с ежедневным расписанием.
Пример файла
config.json
:{ "GROUP": "ИДБ-12-34", "LOGS_DIR": "logs", "GROUP_ID": -1234567890, "THREADED": true, "THREAD_NUMBER": 99, "HOUR": 5, "MINUTES": 5, "PDF_PATH": "data/ИДБ-12-34.pdf", "TEACHERS_FULLNAMES_PATH": "data/teachers.json", "CHECK_TIME_INTERVAL": 55, "SLEEP_TIME": 84600, "ENABLE_IMAGE": true, "IMAGES_DIR": "images", "ENABLE_SECURE": true, "ENABLE_TOMORROW_BUTTON": false }
Для запуска бота выполните следующую команду:
python main.py
Бот начнет работу, автоматически получая расписание на день и отправляя его в указанный чат.
- Отправьте команду
/schedule
, чтобы получить расписание на текущий день. Можно указать смещение дней:/schedule +1
для расписания на завтра. - Отправьте команду
/code
, чтобы получить ссылку на исходный код бота на GitHub. - Бот автоматически отправляет расписание каждый день в заданное время, настроенное в конфигурационном файле.
.
├── main.py # Основной файл для запуска бота
├── logs/ # Логи работы бота
├── utils/
│ └── basic.py # Базовые утилиты и вспомогательные функции
│ └── parser.py # Утилиты для парсинга расписания
├── data/
│ └── ИДБ-12-34.pdf # Файл с расписанием группы
│ └── teachers.json # Файл с полными именами преподавателей
├── images/ # Директория для изображений (если включена отправка картинок)
├── config.json # Конфигурационный файл
├── requirements.txt # Список зависимостей
└── README.md # Документация
- Python - Используемый язык программирования.
- aiogram - Фреймворк для асинхронной работы с Telegram Bot API.
- python-dotenv - Библиотека для работы с переменными окружения.
- camelot - Библиотека для парсинга таблиц из PDF.