Telegram-бот для лицеистов, позволяющий просматривать актуальное расписание занятий прямо в чате.
Бот доступен по ссылке: @lyc2perm_bot
- 🗓 Мое расписание — просмотр актуального расписания для своего класса на любой день недели. Бот автоматически подгружает данные из Google Таблицы.
- 👩🏫 Учителя — просмотр расписания конкретного преподавателя: какие классы и в какое время у него занятия.
- 📂 Классы — проверка расписания любого другого класса без изменения собственных настроек.
- 🧭 Вид расписания — переключение между отображением в виде «уроков» и «пар» (на ваш выбор).
- 🔗 Ссылка — быстрый доступ к исходной Google Таблице с полным расписанием.
- ⏰ Звонки — фотография с расписанием звонков.
- ⚙️ Настройки — смена класса и вида отображения расписания.
- 🆘 Помощь — обратная связь с разработчиком и ссылка на GitHub.
- ℹ️ О боте — информация о технологиях, разработчике и контактах.
- 💬 Админ-панель — массовая рассылка сообщений всем пользователям и выгрузка базы данных (только для администратора).
- 🔄 Автообновление — данные обновляются каждые 10 минут, бот всегда показывает актуальную информацию.
1. Клонирование репозитория
git clone https://github.com/leonidpoezzhaev/LyceumBot.git
cd LyceumBot2. Установка зависимостей
pip install -r requirements.txtОсновные зависимости:
aiogram==3.29.1— работа с Telegram Bot APIaiosqlite==0.22.1— асинхронная работа с SQLiteaiohttp==3.14.1— асинхронные HTTP-запросы для скачивания таблицыaiofiles==25.1.0— асинхронная работа с файлами
3. Настройка
Отредактируйте файл config.py и укажите:
TOKEN— токен вашего Telegram-ботаADMIN_CHAT— ваш Telegram ID или ID чата для административных уведомленийADMIN_USERNAME— ваш Telegram username для упоминания при ошибкахTIME_TO_UPDATE— интервал обновления расписания в секундах (по умолчанию 600)URL— ссылка на Google Таблицу в формате CSV (по умолчанию ссылка уже есть)
4. Запуск
python main.py| Файл | Назначение |
|---|---|
main.py |
Точка входа, инициализация бота, запуск polling и фонового обновления |
handlers.py |
Основные обработчики команд и callback-запросов пользователей |
admin.py |
Административные функции (рассылка, выгрузка БД, обработка ошибок) |
keyboards.py |
Клавиатуры для интерфейса бота (inline и reply) |
timetable.py |
Парсинг Google Таблицы, обновление данных, хранение расписания в памяти |
config.py |
Конфигурация (токен, ID администратора, URL таблицы, интервал обновления) |
students.db |
SQLite-база данных для хранения пользователей и их настроек |
requirements.txt |
Список зависимостей |
- Запустите бота командой
/start. - Выберите свой класс — бот предложит список доступных классов.
- Используйте кнопки меню:
- «🗓 Мое расписание» — просмотр расписания на выбранный день недели
- «👩🏫 Учителя» — выбор преподавателя для просмотра его расписания
- «📂 Классы» — просмотр расписания любого класса
- «🔗 Ссылка» — получение ссылки на Google Таблицу с расписанием
- «⏰ Звонки» — просмотр расписания звонков
- «⚙️ Настройки» — смена класса или вида отображения (уроки/пары)
- «🆘 Помощь» — связь с разработчиком
- «ℹ️ О боте» — информация о боте и технологиях
- Python 3.14 — язык программирования
- aiogram — асинхронный фреймворк для Telegram Bot API
- SQLite — лёгкая реляционная база данных
- aiohttp — асинхронные HTTP-запросы
- asyncio — асинхронное выполнение фоновых задач
- CSV / io — парсинг Google Таблиц в формате CSV
Если вы нашли ошибку или хотите предложить улучшение, свяжитесь со мной или отправьте Pull Request на GitHub.