A platform for easily viewing school schedules.
  • Python 99.8%
  • Dockerfile 0.2%
Find a file
2026-01-08 06:46:42 +04:00
docs Docs: Port tutorial from telegram bot 2025-09-19 07:00:00 +04:00
provider Provider: Add /cl route 2026-01-08 06:46:42 +04:00
sp upd: bell schedule 2025-09-18 23:41:07 +04:00
sp_tg Tg: Remove internal tutorial 2025-09-19 06:59:59 +04:00
.env.dist Remove unused ENV variables 2025-08-29 14:39:11 +04:00
.gitignore upd: gitignore 2025-09-18 23:41:07 +04:00
check_updates.py Sp: Remove reconstruct intent method 2025-08-29 18:05:09 +04:00
COPYING Add GPL-3.0-or-later license 2024-02-10 23:44:17 +04:00
Dockerfile Update docker file 2025-08-29 14:57:25 +04:00
mkdocs.yaml Docs: Remove custom icons in adnotions 2025-09-19 06:59:59 +04:00
pyproject.toml Uv: Add toml to project 2026-01-08 05:42:22 +04:00
README.md Update README 2024-10-15 10:31:17 +04:00
spcli.py Sp: Remove reconstruct intent method 2025-08-29 18:05:09 +04:00
update_checker.py Use aiohttp for update checker module 2025-09-02 20:48:14 +04:00

SPlatform

Автономная платформа для работы с расписанием занятий. Включает в себя поставщики, классы представления, чат-боты и многое другое.

Documentation Version license python

Приветствую в этом чудном проекте. Когда-то мне надоело смотреть наше расписание занятий в гугл таблицах. Оно долго открывалось, тормозило или не открывались вовсе. Всё это тратило слишком много времени. Так и появился проект для решения данной проблемы.

И того мы получаем:

  • Автономный парсер расписания занятий.
  • Возможность быстро и удобно просматривать расписание.
  • Инструменты для обработки расписания.
  • Telegram и vk чат-боты.
  • Отслеживание изменений в расписании.
  • Автоматические оповещения (не работают).
  • И многое другое...

Проект активно развивается и постепенно добавляются новые функции и возможности. Так что заглядывайте в документации и следите за новостями в Telegram канале Salormoon.

Установка (на примере Telegram)

Копируем репозиторий с проектом:

git clone https://codeberg.org/Salormoon/sparser
cd sparser

Устанавливаем зависимости через poetry:

# Только парсер и генератор сообщений
poetry install

# Если мы захотим запустить своего telegram бота
poetry install --with telegram

Способ установки через VEnv считается устаревшим. Так что его мы тут не рассматриваем.

Запуск проекта

На примере Telegram бота. (v2.4 (sp v6)). Перед первым запуском скопируйте файл .env.dist в .env. В файле .env укажите токен от вашего Telegram бота.

# .env
TELEGRAM_TOKEN="YOUR_TELEGRAM_TOKEN_HERE

После указания токена вы можете запускать бота...

Через Poetry:

poetry run python -m sp_tg

Запуск других платформ происходит по похожему принципу. Посмотреть как запускать другие платформы в документации.

Чат-боты

Обратите внимание что все платформы получает обновления в порядке очереди:

  • CLI: Обновляется первой, получает все самые свежие изменения сразу.
  • Tg: Основной чат-бот, обновляется до последних версий sp.
  • Vk: Намного реже получает обновления. Совместимость не гарантируется.

Обратите внимание: Репозиторий вк бота переместился в spvk.

Если вы хотите получить обновления для вк платформы, то можете написать нам в Tg чат.

Telegram (v2.4 / sp v6)

Как выглядит интерфейс Telegram бота. Не смотря на то что показана старая версия, глобальных отличий в использовании нету.

Первую версию написал замечательный @optemikk, положив начало проекту.

Взаимодействие с ботом происходит через запросы или клавиатуру бота.

  • В текстовых запросах вы указываете что вам нужно получить. Будь то расписание для класса, урока или кабинета. Вы можете уточнить свои запросы днём, классом, кабинетом, уроком. Порядок аргументов в запросе не важен, развлекайтесь.

  • Клавиатура бота позволяет дотянутся до всех основных разделов. Вам не нужно писать однотипные запросы или вводить каждый раз команды.

Также для доступа к основным разделам вы можете использовать команды:

  • /sc: Быстро получить расписание на сегодня/завтра.
  • /week: Расписание не всю неделю.
  • /updates: Изменения в расписании.
  • /notify: Настроить уведомления.
  • /tutorial: Маленькая справка как писать запросы к расписанию.
  • /set_class: Изменить класс по умолчанию.
  • /intents: настройка пользовательских намерений.
  • И прочие команды...

Более наглядно все функции бота иллюстрирует следующая схема. Она отображает все разделы бота, доступ к некоторым можно получить прямо, использую команды. Стрелками же показаны как вы можете перемещаться по разделам при помощи inline-клавиатуры.

Некоторые ограничения чат-ботов

Не смотря на почти полную поддержку генератора сообщений, существуют некоторые ограничения, связанные с чатами.

Настройка намерений: Пока нет возможности полноценно представить намерения через клавиатуру. Это отражается на списке изменений и счётчиках. Однако это не столь критично для большинства пользователей ботов.

Примечание: Частично решена в Telegram бота, добавлением редактора намерений с версии v2.2.

Ограничение длинны сообщений. Приходится соблюдать баланс между информативностью и читаемостью. Порой это не всегда получается. Это сказывается на удобства использования и интуитивности бота. Может быть решена предварительным написанием справки об использовании.

Консоль

Простая обёртка для работы с генератором сообщений. Имеет достаточно простой интерфейс. Не требует установки дополнительных зависимостей. Использует все основные методы генератора сообщений. Будет полезен для отладки работы парсера и генератора сообщений. А также как пример кода для написания ваших собственных обёрток.

Вот пример некоторых команд:

# Получить справку по командам
python spcli.py --help

# Установка класс по умолчанию
python spcli.py user class 8а

# Быстрое получение расписания (если указан класс)
python spcli.py

Поддержка

Мы будем очень рады, если вы поддержите проект звёздочками. Вы можете свободно предлагать свои идеи и правки.

Также стоит отметить что проект распространяется под свободной лицензией. Это значит что вы можете брать и использовать код в своих целях. Мы также предоставляем документацию, чтобы вам было удобнее разбираться во всех компонентах.

Мы будем очень рады, если вы оставите свой вклад.