SIBSAU_BOT — это Telegram-бот, разработанный для предоставления расписания студентов Сибирского государственного аэрокосмического университета (СИБГУ). Бот предлагает функционал для получения расписания.
- Особенности
- Требования
- Установка
- Конфигурация
- Использование
- Структура проекта
- Команды
- Управление пользователями
- Логирование и ошибки
- Лицензия
- Контакты
- 📅 Текущее и завтрашнее расписание: Получайте расписание на сегодня и завтра.
- 📅 Недельное расписание: Просматривайте расписание на 1-ю и 2-ю недели.
- 📅 Расписание сессии: Доступ к расписанию экзаменов.
- 🔍 Поиск: Ищите конкретные предметы или преподавателей в расписании.
- 👥 Управление пользователями: Администраторы и модераторы могут управлять доступом пользователей.
⚠️ Логирование и обработка ошибок: Ведение логов и уведомление администратора о критических ошибках.- 📊 Статистика: Администраторы могут просматривать статистику использования бота.
- 🌐 Веб панель: Управление пользователями, логами и состоянием бота без перезапуска.
- Python 3.8+
- Git (опционально, для клонирования репозитория)
- Telegram Account
-
Клонирование репозитория
git clone https://github.com/Baillora/SIBSAU_BOT.git cd SIBSAU_BOT -
Установка зависимостей
Вы можете установить зависимости, используя предоставленный скрипт install.bat (для Windows) или вручную через pip.
- Настройка файла .env
Создайте файл .env в корневой директории проекта и добавьте в него токен вашего Telegram-бота, Ссылку на расписание, Ваш Telegram ID, Ключ для подписи куки openssl rand -hex 32, Логин для панели, Пароль, Пути до SSL Можно сгенерировать с помощью SSL.bat и Ключ для 2fa py -c "import pyotp; print(pyotp.random_base32())"
TOKEN=YOUR_TELEGRAM_BOT_TOKEN_HERE
SCHEDULE_URL=URL_HERE
OWNER_ID=TELEGRAM_ID_HERE
PLAN_URL=SYLLABUS_URL (НЕ ОБЯЗАТЕЛЬНЫЙ)
FLASK_SECRET=SECRET
PANEL_USER=LOGIN
PANEL_PASS=PASSWORD
SSL_CERT=self_signed.crt
SSL_KEY=self_signed.crt
TOTP_SECRET=SECRET
- Использование start.bat (Windows):
Дважды щелкните файл start.bat или выполните следующую команду в терминале:
start.bat
- Взаимодействие с ботом
Откройте Telegram и найдите вашего бота по его имени пользователя.
Начните разговор, отправив команду /start.
Используйте доступные команды и кнопки для навигации по расписанию.
.env: Хранит переменные окружения, такие как токен бота.
scr/
├── bot/ # Обработчики Telegram
├── parsers/ # Парсеры расписания и преподавателей
├── core/ # Ядро: пользователи, статистика, логгер, настройки
├── admin_panel/ # Веб-панель управления
└── __init__.py
allowed_users.json: Содержит список пользователей с доступом к боту и их роли.
stats.json Файл для сбора статистики.
2fa_status.json Файл для проверки активации 2fa
install.bat: Скрипт для установки зависимостей.
ssl.bat Скрипт для создания сертификатов SSL
update.cmd Обнавление бота
start.bat: Скрипт для запуска бота.
requirements.txt: Перечисляет необходимые Python-зависимости.
warning.log: Лог-файл для предупреждений и ошибок.
- Общедоступные команды
/start — Запустить бота и показать главное меню.
/help — Показать доступные команды.
- Команды для авторизованных пользователей
/search <запрос> — Поиск по предметам и преподавателям.
/plan — Показать учебный план.
/map — Показать карту корпусов.
- Команды для модераторов
/adduser <user_id> — Добавить нового пользователя.
/removeuser <user_id> — Удалить существующего пользователя.
/listusers — Показать список всех авторизованных пользователей.
/reload — Перезагрузить кэш расписания.
/fullreload - Полная перезагрузка (расписание + преподаватели)
- Команды только для администратора
/showlog [число_строк] — Показать последние записи из логов.
/stats — Показать статистику использования бота.
/mod <user_id> — Назначить пользователя модератором.
/unmod <user_id> — Снять с пользователя роль модератора.
/broadcast <сообщение> - Рассылка объявления
- Команды только для овнера
/adm <user_id> - Назначить пользователя администратором
/unadm <user_id> - Снять пользователя с роли администратора
/restart - Перезагрузить бота
Администраторы и модераторы могут управлять доступом пользователей к боту с помощью следующих команд:
Добавление пользователя:
/adduser <user_id>
Удаление пользователя:
/removeuser <user_id>
Назначение модератора:
/mod <user_id>
Снятие роли модератора:
/unmod <user_id>
Просмотр списка пользователей:
/listusers
Логирование: Бот ведет логирование в консоли и в файле warning.log. Предупреждения и ошибки записываются в warning.log.
Обработка ошибок: В случае возникновения ошибок бот уведомляет администратора через Telegram.
Этот проект лицензирован под MIT license. Смотрите ЛИЦЕНЗИЮ для большей информации.
Если у вас есть вопросы или предложения, свяжитесь с разработчиком:
Telegram: @lssued