• v6.2 a9b193ecc4

    v6.2 Stable

    Milinuri Nirvalen released this 2024-10-11 06:55:36 +04:00 | 104 commits to main since this release

    Это обновление было посвящено переработке системы кеширования расписания.
    После введения класса Platform расписание не обновлялось автоматически,
    Теперь это исправлено.

    Users

    • Исправлено создание базы данных при первом запуске.
    • Исправлено сохранение данных пользователя во время проверки обновления.

    Schedule

    • Переработан процесс получения расписания.
    • Обновлён формат метаданных при сохранении расписания.
    • Расписание автоматически кешируется во время работы бота.

    Messages

    • Отображение времени начала текущего урока.
    • Обновлено расписание звонков.

    Telegram

    • Исправлена отправка сообщения со списком изменений.
    • Отправка сообщения об ошибках администратору бота.
  • v6.1 2cd6036066

    v6.1 Stable

    Milinuri Nirvalen 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 8d72ef2f76

    Milinuri Nirvalen 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 cce3ecb502

    v5.8 Stable

    Milinuri Nirvalen 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 9316fe5a79

    v5.2.3 Stable

    Milinuri Nirvalen released this 2023-04-05 16:49:52 +04:00 | 361 commits to main since this release

    Counters

    Полностью новые функция для подсчёта элементов в расписании.
    Все функции используют класс фильтров для уточнения результатов подсчётов.

    Filters

    • Символ "?" используется для подстановки вашего класса по умолчанию.

    Utils

    • Функция автоматического дополнения ключей словаря пользователя.
    • Используется модуль UJson вместо стандартного json.

    Telegram

    • Новая клавиатура для счётчиков.
    • callback_handler(): Предупреждение в логирование о неизвестных данных.
    • Обновлён текст главного сообщения.
    • Обновлён текст при смене класс, как в дальнейшем можно сменить класс.
    • "Инструменты" переименованы в "ещё".
    • Добавлено пасхальное сообщение если неверно выбран класс.
    • Команда /restrictions со списком ограничений при отвязанном классе.
    • inline кнопка для смены класса теперь использует SPMessages.reset_user().
  • v5.1 2bc511ab9f

    v5.1 Stable

    Milinuri Nirvalen released this 2023-03-31 21:40:15 +04:00 | 380 commits to main since this release

    Filters

    • Используются дата-классы для хранения фильтров.

    Messages

    • Исправлено отображение номеров уроков в списке изменений.
    • Исправлено отображение пустых результатов поиска.
    • Исправлено отображения расписания для внеурочного времени.
    • Исправлена отправка результатов поиска.
    • Исправлено получение расписания на воскресение.

    Telegram

    • Отправка пуш уведомлений об исключениях через Gotify.
  • v5.0 4271f607e5

    Milinuri Nirvalen 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 05add0776b

    v4.6: Filter Stable

    Milinuri Nirvalen 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 9ffa64a70c

    v4.5 Stable

    Milinuri Nirvalen released this 2023-03-12 13:27:06 +04:00 | 414 commits to main since this release

    • get_index(): Оптимизация функции и формата индексов.
    • _update_index_file(): Немного изменён формат хранения индексов.
    • count_lessons(): Использование collections.Counter().
    • Незначительные правки в аргументах методов.
  • v4.4 d095759352

    v4.4 Stable

    Milinuri Nirvalen released this 2023-03-12 10:23:28 +04:00 | 417 commits to main since this release

    • clear_day_lessons(): Маленькая функция для очистки списка уроков.
    • parse_lessons(): Была вынесена как отдельная функция.
      • Немного оптимизирован код.
      • Вырезан подсчёт хешей для каждого списка уроков.
    • group_update(): Была удалена, т.к. не используется.