Парсер школьного расписания уроков.
Milinuri Nirvalen cce3ecb502 Release: sp v5.8 | 8 months ago | |
---|---|---|
docs | 8 months ago | |
sp | 8 months ago | |
sp_vk | 10 months ago | |
.env.dist | 1 year ago | |
.gitignore | 9 months ago | |
.readthedocs.yaml | 9 months ago | |
COPYING | 9 months ago | |
README.md | 8 months ago | |
changelog.rst | 8 months ago | |
check_updates.py | 9 months ago | |
poetry.lock | 8 months ago | |
pyproject.toml | 8 months ago | |
requirements.txt | 11 months ago | |
spcli.py | 10 months ago | |
telegram.py | 9 months ago |
Самостоятельный парсер, генератор сообщений и чат-боты для школьного расписания уроков.
<img alt="Documentation", src='https://readthedocs.org/projects/sparser/badge/?version=latest'>
Приветствую в проекте. Когда-то мне надоело смотреть расписание в гугл таблицах. Оно просто долго открывалось, тормизили или не открывались вовсе. Потому было принято решение написать дополнение к этому расписанию.
И того мы получаем:
Проект развивается и постепенно добалвяются новые функции. Почитать о всех возможностях вы можеет в документации.
Скопируйте репозиторий проекта:
git clone https://notabug.org/milinuri/sparser
cd sparser
Установате зависимости через poetry:
# Только парсер и генератор сообщений
poetry install
# Если мы захотим запустить своего telegram бота
poetry install --with telegram
Установка Вк бота закончится ошибкой из-за неразрешённых зависимостей.
Или через pip + Python venv:
# Создаём и активируем виртуальное окружение
# Запускать проект нужно тоже из виртуального окрежения
python -m venv venv
source venv/bin/activate
# Устанавливаем ВСЕ зависимости
pip install -r requirements.txt
На примере Telegran бота. (v2.0 (sp v5.7)
).
Перед первым запуском скопируйте файл .env.dist
в .env
.
В файле .env
укажите ваш Telegram токен бота.
# .env
...
TELEGRAM_TOKEN="YOUR_TELEGRAM_TOKEN_HERE
...
После указания токена вы можете запускать бота...
Через Poetry:
poetry run python telegram.py
Через Python venv.
source venv/bin/activate
python telegram.py
Запуск Вк бота происходит по похожему принципу.
Запишите в .env
ваш токен от группы ВК.
# .env
...
VK_TOKEN="Ваш Вк токен Туть"
...
И после запускаете через Python Venv:
source venv/bin/activate
python -m sp_vk
Первую версию написал Артём Березин (@optemikk), положив начало проекту.
Взаимодействие с ботом проиходит через запросы или клавиатуру.
В текстовых запросах вы указываете что вам нужно получить. Будь то расписание для класса, урока или кабинета. Вы можете уточнить свои запросы днём, классом, кабинетом, уроком. Порядрок аргуметов в запроссе не важен, развлекайтесь.
Клавиатура бота позволяет дотянутся до всех основных разделов. Вам не нужно писать однотипные запросы или вводить каждый раз команды.
Также для доступа к осноным разделам вы можете использовать команды.
Функции бота:
Постраничное обучение написанию запросов (/tutorial
).
Управление классом по умолчанию (/set_class
).
->
Преимущества указанного класса (/cl_features
).->
Не привязывать пользователя к классу (/pass
).Домашнее сообщение (/help
, /start
).
->
Дополниельная клавиатура (/info
).->
Настройка уведомлений (/notify
).->
Расписание на сегодня/завтра (/sc
).Сообщение статуса (/info
).
sp
.Дополнительная клавиатура.
->
Смена класса пользователя (/set_class
).->
Просмотр списка изменений (/updates
).->
Просмтр счётчиков расписания (/counter
).->
Динамическая справка о написании запросов (/tutorial
).->
Намерения пользвоателя (/intents
).Просмотр списка изменений (/updates
).
Просмотр счётчиков расписания (/counters
).
Настройка уведомлений бота (/notify
).
Расписание на сегодня/завтра (/sc
).
Намерения пользователя (/intents
).
->
Добавить новое намерение (/add_intent
).->
Изменить намерение.->
Режим удаления намерений (/remove_intents
).Добавить новое намерение (/add_intent
):
Изменение намерения:
Режим удаления намерений (/remove_intents
):
Доступные счётчики:
counter | target |
---|---|
cl | days, lessons. cabinets |
days | cl, lessons. cabinets |
lessons | cl, days, main |
cabinets | cl, days, main |
Разделы на фото:
/set_class
).Копирует функции Telegram версии бота. Иногда некоторые функции урезаются, некоторые напротив расшираются. Из-за особенности платформы.
Вы так же можете использовать текстовые запросы. Клавиатура бота в отличие от Telegram бота не прибита к сообщению, а находится отдельно. Это позоляет управлять всем ботов целиком, а не привзяываться к отдельному сообщению.
Обновляется чуть реже, чем Telegram версия бота. Если вам нужно обновление, то напишите об этом в Чат Telegram
Статья о боте в Вк. Написана для более старой версии бота и может быть места устаревшей.
Не смотря на почти полную поддержку генератора сообщений, существуют некоторые ограничения, связанные с чатами.
Настройка намерений: Пока нет возможности полноценно представить намерения через клавиатуру. Это отражается на списке изменений и счётчиках. Однако это не столь критично для большинства пользователей ботов.
Примечание: Частично решена в Telegram бота, добавлением редактора намерений с версии v2.2.
Ограничение длинны сообещний. Приходится соблюдать баланс между информативностью и читаемостью. Порой это не всегда получается. Это сказывается на удобсте использования и интуитивности бота. Модет быть решена предварительным написанием справки об использовании.
Простая обёртка для работы с генератором сообщений. Имеет достаточно простой интерфейс. Не требует установки дополнительных зависимостей. Использует все основные методы генератора сообщений. Будет полезен для отладки работы парсера и генератора сообщений. А также как пример кода для написания ваших собственных обёрток.
Вот пример некоторых команд:
# Получить справку по командам
python spcli.py --help
# Установка класс по умолчнию
python spcli.py --set-class 8а
# Быстрое получение расписания (если указан класс)
python spcli.py
Проект распространяется под свободной лицензией. А значит вы можете свободно использовать весь инструментарий в своих целях.
Мы будем очерь рады, если вы внесёте свой вклад в развитие этого проекта.