Salormoon/sparser
3
0
Fork
You've already forked sparser
0
A stand-alone parser, message generator and additional wrappers (Telegram, VK) for the school schedule. https://t.me/mili_sp_bot
  • Python 99.9%
2025年04月15日 22:54:38 +04:00
sp Releave: sp v6.5; tg v2.7 2025年04月15日 22:45:03 +04:00
sp_tg Tg: Fix set class 2025年04月15日 22:54:38 +04:00
.env.dist Tg: Send error messages to bot admin 2024年09月03日 16:02:09 +04:00
.gitignore Update .gitignore 2024年02月03日 13:53:59 +04:00
changelog.rst Changelog spell check 2024年10月15日 09:55:11 +04:00
check_updates.py Cu: Update to sp v6.5 2025年04月15日 22:42:46 +04:00
COPYING Add GPL-3.0-or-later license 2024年02月10日 23:44:17 +04:00
Dockerfile Docker: Add dockerfile to build sptg 2024年08月26日 15:21:26 +04:00
poetry.lock Sp: Bump version to v6.5; tg v2.6 2025年04月15日 20:18:19 +04:00
pyproject.toml Releave: sp v6.5; tg v2.7 2025年04月15日 22:45:03 +04:00
README.md Update README 2024年10月15日 10:31:17 +04:00
spcli.py Update types style in pythno 3.10 2024年12月26日 18:13:31 +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

Поддержка

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

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

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