The documentation for this project is available in a few languages:
EN
school_tg_bot is a Telegram bot designed to streamline students’ access to information about
schedules, homework, and grades 📚. The bot enables users to quickly retrieve up-to-date data on
classes, assignments, and academic performance, enhancing the learning experience.
The project aims to optimize the educational process, keeping students informed of their responsibilities and providing easy access to information, unlike the school portal 😊.
-
Homework:
- View homework for the current day or the entire week based on user settings 🛠️.
- Homework is fetched from the school website, ensuring data accuracy 💾.
-
Schedule:
- Request schedules for the current day or the week 📆.
-
Grades:
- Check grades for the current day or week based on user preferences.
-
User Settings:
- Customize homework display (daily or weekly) and notification preferences (enabled/disabled).
- Settings are saved and modified at any time ⏳.
-
Logging:
- All user actions and errors are logged using the
logurulibrary, facilitating monitoring and debugging 🗿.
- All user actions and errors are logged using the
- Clone the repository:
git clone https://github.com/Lynx20wz/school_tg_bot. - Install dependencies:
pip install -r requirements.txt. - Start the bot:
python .orStart_tg_bot.cmd.
-back- the database backup will not be loaded when the bot is started.-debug- the bot will be launched in debug mode (additional logs).
— Asynchronous library for the Telegram API 📋.
— Asynchronous SQLite operations �️.
— Logging of actions and errors 📜.
— HTTP requests to the school portal for schedules and assignments 🚀.
Project structure
__main__.py— Program entry point.start_tg_bot.cmd— Script for launching the bot in the terminal.LICENSE— Project license.README.md— Project description.pyproject.toml— Project configuration.requirements.txt— Bot dependencies.
bin
bot.py— Core logic for Telegram API interaction.
classes
BaseData.py— Class for SQLite database operations.UserClass.py— Class for storing user data.Homework.py— Class for handling homework.Parser.py— Class for parsing "My School" data.
filters
is_admin.py— Administrator filter.
handlers
registration.py— Authorization and token handling.debug.py— Debugging functions.unknown.py— Handling unknown messages.
utils
.get_token.py— Token retrieval (deprecated)Keyboards.py— Functions for creatingaiogramkeyboards.Exceptions.py— Custom exception classes.
- (6d42) User authorization.
- (e0ae) Database (SQLite).
- (4c95) Token absence.
- Middleware-level logging. notifications for homework, grades, and schedules.
- "My School" API system based on OOP:
- School supplies checklist 📝✅.
- Grade notifications 🔔.
- Deployment to a standalone server.
- Notifications for new homework/grades after lessons.
- Support for other school diaries.
- Caching with Redis.
- Automatic submission of digital assignment answers.
- Custom solution system (a dream).
- Automatic solving of digital assignments.
- Fork the repository.
- Make your changes.
- Create a Pull Request.
The project is licensed under the MIT License. See LICENSE for details.
"Thank you for your attention!" — Lynx20wz
RU
school_tg_bot — это Telegram-бот, созданный для упрощения доступа школьников к информации о
расписании, домашних заданиях и оценках 📚. Бот позволяет быстро получать актуальные данные о
занятиях, заданиях и успеваемости, делая учебный процесс удобнее.
Проект направлен на оптимизацию учебного процесса, помогая учащимся быть в курсе своих обязанностей и предоставляя простой доступ к информации, в отличие от школьного портала 😊.
-
Домашние задания:
- Просмотр домашних заданий на текущий день или на неделю в зависимости от пользовательских настроек 🛠️.
- Данные загружаются с сайта школы, что гарантирует их актуальность 💾.
-
Расписание:
- Запрос расписания на текущий день или на неделю 📆.
-
Оценки:
- Просмотр оценок за текущий день или неделю в зависимости от настроек.
-
Настройки пользователя:
- Настройка отображения домашних заданий (на день или неделю) и уведомлений ( включены/выключены).
- Все настройки сохраняются и могут быть изменены в любой момент ⏳.
-
Логирование:
- Все действия пользователей и ошибки записываются с помощью библиотеки
loguru, что упрощает мониторинг и отладку бота 🔍.
- Все действия пользователей и ошибки записываются с помощью библиотеки
- Клонируйте репозиторий:
git clone https://github.com/Lynx20wz/school_tg_bot. - Установите зависимости:
pip install -r requirements.txt. - Запустите бота:
python .илиStart_tg_bot.cmd.
-back- бэкап базы данных не будет загружаться при запуске бота.-debug- бот будет запускаться в режиме отладки (дополнительные логи).
— асинхронная библиотека для работы с Telegram API 📞.
— асинхронная работа с базами данных SQLite 🗄️.
— логирование действий и ошибок 🔍.
— HTTP-запросы к школьному порталу для получения расписаний и заданий 🚀.
— парсинг токенов авторизации 🔑 (устарело).
Структура проекта
__main__.py— точка входа в программу.start_tg_bot.cmd— скрипт для быстрого запуска бота в терминале.LICENSE— лицензия проекта.README.md— описание проекта.pyproject.toml— конфигурация проекта.requirements.txt— зависимости бота.
bin
bot.py— основная логика взаимодействия с Telegram API.
classes
BaseData.py— класс для работы с базой данных (SQLite).UserClass.py— класс для хранения данных пользователя.Homework.py— класс для обработки домашних заданий.Parser.py— класс для парсинга данных "Моя школа".
filters
is_admin.py— фильтр для администраторов.
handlers
registration.py— обработка авторизации и получения токена.debug.py— функции для отладки.unknown.py— обработка неизвестных сообщений.
utils
.get_token.py— получение токена (устарело)Keyboards.py— функции для создания клавиатурaiogram.Exceptions.py— пользовательские исключения.
- (6d42) Авторизация пользователей.
- (e0ae) База данных (SQLite).
- (4c95) Уведомления об отсутствии токена для заданий, оценок и расписания.
- Система API "Моя школа" на основе ООП:
- Чек-лист подготовки школьных принадлежностей 📝✅.
- Уведомления о новых оценках 🔔.
- Разворачивание на автономном сервере.
- Уведомления о новых заданиях и оценках после уроков.
- Поддержка других школьных дневников.
- Логирование на уровне middleware.
- Кеширование с использованием Redis.
- Автоматическая отправка ответов на цифровые задания.
- Собственная система решений (мечта).
- Автоматическое решение цифровых заданий.
- Сделайте форк репозитория.
- Внесите изменения.
- Создайте Pull Request.
Проект распространяется под лицензией MIT. Подробности — в файле LICENSE.
"Спасибо за внимание!" — Lynx20wz