Skip to content

Baillora/SIBSAU_BOT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIBSAU_BOT

SIBSAU_BOT — это Telegram-бот, разработанный для предоставления расписания студентов Сибирского государственного аэрокосмического университета (СИБГУ). Бот предлагает функционал для получения расписания.

Содержание

Особенности

  • 📅 Текущее и завтрашнее расписание: Получайте расписание на сегодня и завтра.
  • 📅 Недельное расписание: Просматривайте расписание на 1-ю и 2-ю недели.
  • 📅 Расписание сессии: Доступ к расписанию экзаменов.
  • 🔍 Поиск: Ищите конкретные предметы или преподавателей в расписании.
  • 👥 Управление пользователями: Администраторы и модераторы могут управлять доступом пользователей.
  • ⚠️ Логирование и обработка ошибок: Ведение логов и уведомление администратора о критических ошибках.
  • 📊 Статистика: Администраторы могут просматривать статистику использования бота.
  • 🌐 Веб панель: Управление пользователями, логами и состоянием бота без перезапуска.

Требования

  • Python 3.8+
  • Git (опционально, для клонирования репозитория)
  • Telegram Account

Установка

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

    git clone https://github.com/Baillora/SIBSAU_BOT.git
    cd SIBSAU_BOT
    
  2. Установка зависимостей

Вы можете установить зависимости, используя предоставленный скрипт install.bat (для Windows) или вручную через pip.

🔧 Конфигурация

  1. Настройка файла .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

▶️ Использование

  1. Использование start.bat (Windows):

Дважды щелкните файл start.bat или выполните следующую команду в терминале:

start.bat

  1. Взаимодействие с ботом

Откройте 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: Лог-файл для предупреждений и ошибок.

💬 Команды

  1. Общедоступные команды

/start — Запустить бота и показать главное меню.

/help — Показать доступные команды.

  1. Команды для авторизованных пользователей

/search <запрос> — Поиск по предметам и преподавателям.

/plan — Показать учебный план.

/map — Показать карту корпусов.

  1. Команды для модераторов

/adduser <user_id> — Добавить нового пользователя.

/removeuser <user_id> — Удалить существующего пользователя.

/listusers — Показать список всех авторизованных пользователей.

/reload — Перезагрузить кэш расписания.

/fullreload - Полная перезагрузка (расписание + преподаватели)

  1. Команды только для администратора

/showlog [число_строк] — Показать последние записи из логов.

/stats — Показать статистику использования бота.

/mod <user_id> — Назначить пользователя модератором.

/unmod <user_id> — Снять с пользователя роль модератора.

/broadcast <сообщение> - Рассылка объявления

  1. Команды только для овнера

/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

About

Телеграм бот расписание СИБГУ

Resources

License

Stars

Watchers

Forks

Contributors