- Python 99.8%
- Dockerfile 0.2%
| docs | ||
| provider | ||
| sp | ||
| sp_tg | ||
| .env.dist | ||
| .gitignore | ||
| check_updates.py | ||
| COPYING | ||
| Dockerfile | ||
| mkdocs.yaml | ||
| pyproject.toml | ||
| README.md | ||
| spcli.py | ||
| update_checker.py | ||
SPlatform
Автономная платформа для работы с расписанием занятий. Включает в себя поставщики, классы представления, чат-боты и многое другое.
Приветствую в этом чудном проекте. Когда-то мне надоело смотреть наше расписание занятий в гугл таблицах. Оно долго открывалось, тормозило или не открывались вовсе. Всё это тратило слишком много времени. Так и появился проект для решения данной проблемы.
И того мы получаем:
- Автономный парсер расписания занятий.
- Возможность быстро и удобно просматривать расписание.
- Инструменты для обработки расписания.
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
Поддержка
Мы будем очень рады, если вы поддержите проект звёздочками. Вы можете свободно предлагать свои идеи и правки.
Также стоит отметить что проект распространяется под свободной лицензией. Это значит что вы можете брать и использовать код в своих целях. Мы также предоставляем документацию, чтобы вам было удобнее разбираться во всех компонентах.
Мы будем очень рады, если вы оставите свой вклад.



