Skip to content

pentergust/sparser

Repository files navigation

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

Поддержка

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

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

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

About

A stand-alone parser, message generator and additional wrappers (Telegram, VK) for the school schedule.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors