Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lyceum Bot 2.0

Python aiogram aiosqlite aiohttp asyncio

Telegram-бот для лицеистов, позволяющий просматривать актуальное расписание занятий прямо в чате.

Бот доступен по ссылке: @lyc2perm_bot

📌 Возможности

  • 🗓 Мое расписание — просмотр актуального расписания для своего класса на любой день недели. Бот автоматически подгружает данные из Google Таблицы.
  • 👩‍🏫 Учителя — просмотр расписания конкретного преподавателя: какие классы и в какое время у него занятия.
  • 📂 Классы — проверка расписания любого другого класса без изменения собственных настроек.
  • 🧭 Вид расписания — переключение между отображением в виде «уроков» и «пар» (на ваш выбор).
  • 🔗 Ссылка — быстрый доступ к исходной Google Таблице с полным расписанием.
  • ⏰ Звонки — фотография с расписанием звонков.
  • ⚙️ Настройки — смена класса и вида отображения расписания.
  • 🆘 Помощь — обратная связь с разработчиком и ссылка на GitHub.
  • ℹ️ О боте — информация о технологиях, разработчике и контактах.
  • 💬 Админ-панель — массовая рассылка сообщений всем пользователям и выгрузка базы данных (только для администратора).
  • 🔄 Автообновление — данные обновляются каждые 10 минут, бот всегда показывает актуальную информацию.

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

1. Клонирование репозитория

git clone https://github.com/leonidpoezzhaev/LyceumBot.git
cd LyceumBot

2. Установка зависимостей

pip install -r requirements.txt

Основные зависимости:

  • aiogram==3.29.1 — работа с Telegram Bot API
  • aiosqlite==0.22.1 — асинхронная работа с SQLite
  • aiohttp==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 Список зависимостей

🚀 Как пользоваться

  1. Запустите бота командой /start.
  2. Выберите свой класс — бот предложит список доступных классов.
  3. Используйте кнопки меню:
    • «🗓 Мое расписание» — просмотр расписания на выбранный день недели
    • «👩‍🏫 Учителя» — выбор преподавателя для просмотра его расписания
    • «📂 Классы» — просмотр расписания любого класса
    • «🔗 Ссылка» — получение ссылки на Google Таблицу с расписанием
    • «⏰ Звонки» — просмотр расписания звонков
    • «⚙️ Настройки» — смена класса или вида отображения (уроки/пары)
    • «🆘 Помощь» — связь с разработчиком
    • «ℹ️ О боте» — информация о боте и технологиях

🛠 Технологии

  • Python 3.14 — язык программирования
  • aiogram — асинхронный фреймворк для Telegram Bot API
  • SQLite — лёгкая реляционная база данных
  • aiohttp — асинхронные HTTP-запросы
  • asyncio — асинхронное выполнение фоновых задач
  • CSV / io — парсинг Google Таблиц в формате CSV

🤝 Вклад в проект

Если вы нашли ошибку или хотите предложить улучшение, свяжитесь со мной или отправьте Pull Request на GitHub.

About

Telegram bot for comfortable learning at Lyceum №2

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages