-
v6.2 Stable
released this
2024-10-11 06:55:36 +04:00 | 104 commits to main since this releaseЭто обновление было посвящено переработке системы кеширования расписания.
После введения класса Platform расписание не обновлялось автоматически,
Теперь это исправлено.Users
- Исправлено создание базы данных при первом запуске.
- Исправлено сохранение данных пользователя во время проверки обновления.
Schedule
- Переработан процесс получения расписания.
- Обновлён формат метаданных при сохранении расписания.
- Расписание автоматически кешируется во время работы бота.
Messages
- Отображение времени начала текущего урока.
- Обновлено расписание звонков.
Telegram
- Исправлена отправка сообщения со списком изменений.
- Отправка сообщения об ошибках администратору бота.
-
v6.1 Stable
released this
2024-08-29 15:17:35 +04:00 | 122 commits to main since this releaseЭто большое накопительное обновление с множеством исправлений и приятных
функций.
классPlatformпостепенно вступает в своё законное владение.
Это ещё один небольшой шаг на пути к sp v7.
Все усилия сейчас будут направлены на полномасштабное обновление sp v7,
так что ветка v6 сейчас просто будет получать свои небольшие обновления
безопасности.
Также этим обновлением окончательно закрывается поддержкаsp v5.8.x.Также с этого обновления Вк покидает состав репозитория и перемещается в
собственный репозиторий.
Возможно это конец его поддержки и он так и останется на версииv5.8.12.Docs
- Обновился главный файл документации.
- Появились якоря на некоторое файлы.
- Инструкция по установке стала более полной.
- API документация также обновлена до последней версии sp.
- Секции API теперь сортированы в логическом порядке по их важности.
Splatform
- Подсказки типов стали более точными.
- Проект поднял версию Python до
3.10. counter: Совмещение функций счётчиков и классаTextCounterпривело к
образованию классаCurrentCounter.exceptions: Добавлен в конце суффикс Error.users.Intent: Новые методы для управления намерение по умолчанию.users.Intent: Получение всех намерений осуществляется через генератор.users.Intent: Немного магических методов для получения намерений.users.Storage: Исправлен метод получения обновлений пользователя.users.Storage: Исправлено сохранения пользователей во время проверки
обновления в расписании.intents: Исправлена запаковка намерений в строку.intents: Удалён методreparse.messages: Методsend_updateперемещён вSPMessages.messages: класс стал независимым от пользователя.messages: Методcheck_updatesотделялся отsend_lessons.messages: Статусное сообщение вновь отображает всю информацию как в
v5.8, включая данные о хранилище пользователей.parser: Исправление получения расписания если файл пустой.parser: Удалён методget_cl.parser: Удалена передача класса по умолчанию в конструктор класса.- получение относительно дня недели перемещено из
sp_tgвPlatform. platform: Добавлено множество сокращений для методовSPMessages.
Telegram v2.5
- Фильтр
IsAdmin. Теперь изменять настройки бота могут только
администраторы чатов. - Использует новые методы платформы.
- Глобальная чистка кода и обновление строк документации.
- Сообщение я об ошибке стали более информативными.
- Предупреждение, если пользователь пытается добавить пустое намерение.
- Исправлено получение клавиатур из-за метода
relative_day. - Добавлен Docker файл для сборки Telegram бота.
- Поправки в соответствии с новой функцией-генератором для получения намерений.
- Обновлено статусное сообщение.
CLI
- Обновлена до последней версии
sp. - Использует новые методы платформы.
- Небольшой рефакторинг кода для его лучшей читаемости.
Updater
- Обновлён до последней версии
sp_tg. - Обновлены строки документации.
- Исправлено открытие раздела списка изменений.
-
v6.0: Platform Stable
released this
2024-06-22 11:07:56 +04:00 | 186 commits to main since this releaseДанное масштабное обновление связано с изменениями в архитектуре проекта.
Как вы возможно уже знаете, связующим компонентом до этого обновления был
SPMessages, который отвечает как за подготовку текстовых сообщений,
так и за работу с пользователями.
Данное масштабное обновление добавляет новое хранилище пользователей.
Обо всём по порядку.Docs
Не обошло стороной обновление и изменения в документации.
За долгое время документация несколько освежилась.
Это позволит вам лучше понять как работают те или иные методы проекта.- Добавлены некоторые подсказки к будущим обновлениям.
counterДобавлено описание перечисленияCounterTarget.- Добавлена странница
exceptions. - Обновлён
index, описание стало более актуальным, появилась подсказка
относительно обновления sp v6. intentsОписание альтернативного способа создания намерений через
методыSchedule.messagesОписание временного класса расписания звонков.messagesПредупреждение о возможно скором переносе некоторых функций.messagesУдалены методы для работы с пользователем.parserОписание классаScheduleFile.parserОбновлены ссылки на прочие разделы документации.parserОбновлены заголовки.parserОписание где можно применять некоторые из методов.- Добавлена страница документации для
platform,text_counter,users. - Многочисленные правки строк документации в проекте.
Exceptions
Постепенно проект становится не таким безмолвным, если что-то идёт не так.
Для этого появились первые исключения, связанные с несовместимостью класса
представления или если вы захотите использовать класс представления, но не
установили его в платформе.- Добавлено исключение
ViewCompatibleError. - Добавлено исключение
ViewSelectedError.
Platform
Добавлен новый класс платформы, которой вскоре станет мостом между поставщиками
расписаниями и их потребителями.
Платформа под капотом настраивает пользовательских хранилища, а также классы
представления (Пока толькоSPMessages).- Добавлен класс
Platform. - Добавлены геттеры и сеттеры для установки класса представления.
- Добавлен метод
get_userдля быстрого получения пользователя. - Добавлены методы для получения хранилища намерений пользователя.
Messages
- Подчищен код.
- Удалены константы пользовательских путей к хранилищу.
- Конструктор
SPMessagesбольше не требует передачи пользовательских данных.
Теперь можно использовать SPMessages обособленно. - Многие методы принимают экземпляр пользователя для работы.
send_status()сокращает объём отображаемой статистики из-за изменений.
После это будет исправлено.- Удалены методы для работы с пользователями.
- Получила аттрибут
API_VERSIONотражающая совместимость с платформой.
Users
- Добавлен класс
UserData, для хранения данных пользователя. - Класс
FileUserStorage- хранилище пользователей в JSON файле. - Класс
User- для управления конкретным пользователем хранилища. - В
FileUserStorageдобавлены основные методы для работы с хранилищем. - В
Userдобавлены методы для управления пользователем платформы. - Добавлен метод
unset_class()для сброса класса, без сброса прочих данных. - Пользовательское хранилище перемещено в
sp.users. - Хранилище намерений пользователя перенесено из Телеграм бота.
- Все методы получили подробную документацию.
Telegram v2.4
- Переведена под использование нового хранилища пользователей.
- Обновлены комментарии и строки документации, которые помогут в формировании
документации платформ. - Теперь можно получить доступ к данным пользователя, использую аргумент
userв обработчиках. - Исправлено отображение ближайшего дня при смене и установке класса.
- Использует новый класс
Platform. - Некоторое изменение поведение обработки исключений от Telegram.
- Хранилище намерений перемещено в
sp.users.intents.
CLI v1.6
Оболочка командной строки также не осталась без внимания.
Добавили новые обработчики пользовательского хранилища.
Теперь вы сможете использоватьsp cli, чтобы управлять пользователями
в хранилище.- Использует новый класс
Platformи хранилища пользователей. - Аргументы счётчика используют
CounterTarget. - Ключ
-uпозволяет переопределить ID пользователя. - Ключ
-sпозволяет определить путь к хранилищу пользователей. user get: Получает информацию о пользователе.user count: Считает пользователей в хранилище.user users: Получить полный список пользователей из хранилища.user create: Создать нового / сбросить данные пользователя.user remove:Удалить пользователя из хранилища.user class <cl>: Установить класс по умолчанию.user notify <on|off>: Включить / отключить рассылку уведомлений.user hour-add <hour>: Включить рассылку расписания в указанный час.user hour-remove <hour>: Отключить рассылку расписания в указанный час.user hour-reset: Сбросить рассылку расписания.
-
v5.8 Stable
released this
2024-02-20 19:50:34 +04:00 | 232 commits to main since this releaseУ проекта появилась документация.
Потому были переписаны все строки документации ядра проекта.
Обновление по большей части касается внутренней части кода.Utils
- Обновлена типизация функций.
- Добавлены подробные комментарии к коду.
check_keys()помечена как устаревшая и будет вскоре удалена.- Используется типизация до python 3.10.
get_str_timedelta()Принимает только целые числа.- Функция
ensure_listперемещена вsp.utils.
Messages
- Исправлена типизация функций.
- Не отображает уведомления пользователей в статусе, если они они не включены.
- Некоторая правка расписания звонков.
- Пустые уроки не будут отображаться в расписании.
Parser
- Переменные для хранения путей к файлам используют Path.
_get_day_hash()стала приватной функцией._clear_day_lessons()улучшена производительность.- Даны более понятные имена некоторые переменным.
- Использование
DefaultDictдля упрощения кода. parse_lessons()Использование генераторов для оптимизации.- Возможность передать свои пути к файлам в классе
Schedule. - Улучшена типизация функций. Принимаемые и возвращаемые типы
стали более подробными. - Добавлены методы для сборки намерений для текущего расписания.
-
v5.2.3 Stable
released this
2023-04-05 16:49:52 +04:00 | 361 commits to main since this releaseCounters
Полностью новые функция для подсчёта элементов в расписании.
Все функции используют класс фильтров для уточнения результатов подсчётов.Filters
- Символ "?" используется для подстановки вашего класса по умолчанию.
Utils
- Функция автоматического дополнения ключей словаря пользователя.
- Используется модуль
UJsonвместо стандартногоjson.
Telegram
- Новая клавиатура для счётчиков.
callback_handler(): Предупреждение в логирование о неизвестных данных.- Обновлён текст главного сообщения.
- Обновлён текст при смене класс, как в дальнейшем можно сменить класс.
- "Инструменты" переименованы в "ещё".
- Добавлено пасхальное сообщение если неверно выбран класс.
- Команда
/restrictionsсо списком ограничений при отвязанном классе. - inline кнопка для смены класса теперь использует
SPMessages.reset_user().
-
v5.1 Stable
released this
2023-03-31 21:40:15 +04:00 | 380 commits to main since this releaseFilters
- Используются дата-классы для хранения фильтров.
Messages
- Исправлено отображение номеров уроков в списке изменений.
- Исправлено отображение пустых результатов поиска.
- Исправлено отображения расписания для внеурочного времени.
- Исправлена отправка результатов поиска.
- Исправлено получение расписания на воскресение.
Telegram
- Отправка пуш уведомлений об исключениях через Gotify.
-
v5.0: Inevitable separation Stable
released this
2023-03-27 13:38:44 +04:00 | 394 commits to main since this releaseОбщее улучшение качества кода.
Смена мажорной версии обусловлена разделением огромного файлаsp.py
на множество маленьких файлов с классами.
Таких какparser.py,messages.pyи прочее.
Цикл обновлений с целью полной переработкой проекта завершён.Schedule
_update_diff_file(): теперь используетcollections.deque.- Вернулся метод
search(): для общего поиска данных в расписании. - Улучшено обращение с пользователями, не указавшими класс.
- Метод
get_updates()для более гибкого получения списка обновлений
с использованием фильтров для уточнения результатов.
Messages
set_class()больше не возвращает результат работы.- Метод
reset_user()сбрасывает данных пользователя. - Изменён стиль списка изменений в расписании.
- Совмещены методы
search_lesson()иsearch_cabinet(). send_day_lessons(): Сильно изменён формат отображения уроков.send_lessons(): При изменении расписания отображает сам список изменений.- Изменён формат отображения уроков.
- Удалён метод
send_users_stats(). send_today_lessons(): Вновь автоматически отправляет расписание на сегодня
или завтра, в зависимости, закончились ли уроки.
Telegram
- Обновления бота до
v1.8. - Совмещены команды
/startи/help. - Вернулись имена для кнопок в справке.
- В главном сообщении отмечается выбранный пользователем класс.
- Добавлена возможность отвязать пользователя от класса.
- Изменены тексты сообщений для большей их ясности.
- Исправлено получение расписания по команде
/sp. - Удалена команда
/users.
-
v4.6: Filter Stable
released this
2023-03-15 22:23:19 +04:00 | 413 commits to main since this releaseДобавлен новый класс
Filter, который предоставляет набор инструментов
для более точного получения результатов расписания и будет
использоваться в большинстве функции бота.send_update(): Вынесена как отдельная функция.send_day_lessons(): Вынесена как отдельная функция.
Schedule
- Убрана возможность переопределить пути хранения файлов.
- Как обязательный аргумент принимает класс.
- Удалён метод
search()за ненадобностью. - Из
SPMessagesперенесеныget_class()иget_lessons().
Messages
- Убрана возможность переопределить пути хранения файлов.
- Больше не требует класс
Scheduleкак аргумент. send_users_stats(): Отправляет статистику о пользователях.- Малость изменены тексты сообщений.
send_lessons(): Переведён на использованиеFilters.send_today_lessons(): Переведён на использованиеFilters.send_today_lessons(): Переведено на статическое смещение дней.count_lessons(): Исправлена совместимость со старыми версиями Python.- Переведено на использование
Filters. - Изменение стиля сообщения.
- Переведено на использование
search_cabinet(): Переведено на использованиеFilters.- Изменение стиля сообщения.
Telegram
- Обновлено до
sp v4.6. - Изменены сообщения бота.
updates_command(): Исправлено получение обновлений.users_command(): Добавлена команда для отправки статистики пользователей.
-
v4.5 Stable
released this
2023-03-12 13:27:06 +04:00 | 414 commits to main since this releaseget_index(): Оптимизация функции и формата индексов._update_index_file(): Немного изменён формат хранения индексов.count_lessons(): Использованиеcollections.Counter().- Незначительные правки в аргументах методов.
-
v4.4 Stable
released this
2023-03-12 10:23:28 +04:00 | 417 commits to main since this releaseclear_day_lessons(): Маленькая функция для очистки списка уроков.parse_lessons(): Была вынесена как отдельная функция.- Немного оптимизирован код.
- Вырезан подсчёт хешей для каждого списка уроков.
group_update(): Была удалена, т.к. не используется.