changelog.md 17 KB

Changelog

31 Mar 2023: v5.1

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

27 Mar 2023: v5.0

Общее улучшение качества кода. Смена мажорной версии обусловлена разбиением sp.py на множество файлов. Цикл обновлений с целью полной переработкой проекта завершён.

Schedule:

  • _uppdate_diff_file(): теперь использует collections.deque.
  • Вернулся метод search(): для поиска данных в расписании
  • Улучшено обращение с пользователями, не указавшими класс.
  • Метод get_updates() для более гибкого получения списка обновлений.

SPMessages:

  • 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.

15 Mar 2023: v4.6

  • Filter: Класс, предоставляющий набор фильтров при получении расписания.
  • send_update(): Вынесена как отдельная функция.
  • send_day_lessons(): Вынесена как отдельная функция.

Schedule:

  • Убрана возможность переопределить пути хранения файлов.
  • Как обязательный аргумент принимает класс.
  • Удалён метод search() за ненадобностью.
  • Из SPMeaasges перенесены get_class() и get_lessons().

Spmessages:

  • Убрана возможность переопределить пути хранения файлов.
  • Больше не требует класс 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(): Добавлена команда для отправки статистики пользователей.

12 Mar 2023: v4.5

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

12 Mar 2023: v4.4

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

10 Mar 2023: v4.3

Начало цикла обновлений с целью полной переработки парсера.

Schedule:

  • Полное изменение формата списка изменений.
  • Функция get_day_hash() для получения хеша списка уроков на день.
  • Функция send_cl_updates() для отправвки изменений "для класса".
  • Атрибут updates для получение полного списка изменений расписания.

SPMessages:

  • Вместо send_update_page() -> send_update().

Telegram:

  • Изменён формат callback_data для inline клавиатуры.
  • Добавлены описания некоторым функциям.
  • Временно убрана возможность получение списка изменений для класса.
  • В справке примеры были перемещены верх.

3 Mar 2023: v4.2

Само обновление вышло намного-намного раньше, но попало сюда только сейчас. Зато, можно считать его обкатанным и готовым к выпуску. Переписана большая часть кода. Оптимизация, новые фишечки, упрощение чтения самого кода!

Schedule:

  • ScheduleParser: Стал независимым от пользователей и переимеован в Schedule.
  • Добавлена аннотация к коду.
  • Вместо os.path.exists испльзуется Pathlib.
  • Для ведения журналов отладки добавлено loguru.
  • Данные парсера сохраняются в директории sp_data/, а не в корень проекта.
  • save_file(): Добавлено автоматическое создание родительских директорий.
  • Полностью изменился формат хранения расписания -> лучше читаемость.
  • Изменён формат ведения списка изменений.
  • Единая функция для получения l_index, c_index -> get_index().
  • Индексы обновляются разово, вместе с расписанием.
  • _parse_schedule(): Теперь сам определяет начало нового дня и сколько уроков.
  • Обновление расписания перенесено из get_schedule() в _process_update().
  • _process_update(): Добавлен обработчик исключений при неудачной загрузке.
  • _process_update(): Расписание обновляется теперь точно через 3600 секунд.
  • Метод get_schedule() -> get().

SPMessages:

  • send_status(): Новый стиль, также перечисление всхе доступных классов.
  • Вместо send_sc_updates() используется get_updates_pages() и send_updates_page().
  • Вновь изменились стили сообщений: {урок}:{кабинет}.
  • Единая функция для подсчёта уроков/кабинетов count_lessons().
  • count_lessons(): Отметка кабиентов/уроков, которые используются единожды.
  • search_cabinet(): Просмотр расписания от имена кабинета.

И ещё пара незначительных изменений.

21 Dec 2022: v3.2

Parser:

  • Некоторые атрибуты и методы отмечены приватными.
  • Использование @property для l_index, c_index.

SPMessages:

  • Исправлен метод подсчёта кабинетов.

Wrappers:

  • Console: Обновлено до sp v3.2.
  • Chio: Обновленио. до sp v3.2.
  • Chio: Добавлена команда для подсчёта кабинетов.

12 Dec 2022: v3.1.1

  • Parser: Изменено обращение с пустыми значениями.

6 Dec 2022: v3.1

Небольшой рефакторинг проекта.

Новые возможности:

  • Просмотр самых частых кабинетов.
  • Поиск по урокам/кабинетам.

Parser:

  • Вынесена функция получение разницы в 2х рассписаниях.
  • Изменены некоторые имена атрибутов и методов.
  • Индекс уроков теперь группируется и по кабинетам.
  • Общий метод поиска по урокам/кабинетам search().

SPNessages:

  • Методы сборки сообщений были отделены в свой класс.
  • Небольшие изменения стиля.

Wrappers:

  • Chio: Обновлено до sp v3.1.
  • Console: Обновлено до sp v3.1.
  • Console: Добавлена команда для небольшой отладки.

27 Nov 2022: Rename tparser -> sparser

Странно что это было сделано только сейчас.

  • Console: Переписано на argparse.

23 Nov 2022: v2.4.1

Parser:

  • Новая система поиска изменений в расписании.
  • get_schedule_diff(): Полное сравнение 2х расписаний.
  • update_diff_file(): Сохранение измененй расписания в файл.
  • Изменён способ проверки изменений в расписании пользователя.
  • print_sc_changes(): Отображает изменения в расписании.
  • Исправлено отцуцтвие оповещение об изменениях в расписании.
  • Исправлено получение расписания на сегодня/завтра.

Wrappers:

  • Console: Обновленио до sp v2.4.1.
  • Chio: Обновлено до sp v2.4.1.
  • Chio: Небольшие обновления.

16 Nov 2022: v2.3

Parser:

  • Изменены имена атрибутов.
  • Изменения в структуре sc.json.
  • Небольшая оптимизация метода get_lessons_index().
  • Упрощение метода count_lessons().
  • search_lessons(), отображения результатов для определённых дней.
  • Некоторые изменения в текстах сообщений.

Wrappers:

  • Chio: Совмещены некоторые команды.

15 Nov 2022: v2.2

Parser:

  • Получение индекса уроков.
  • Новые методы get_lessons_index(), count_lessons(), search_lessons().
  • В статус добавлена информация о классах и предметах.

Wrappers:

  • Chio: Обновлено до sp v2.2.
  • Chio: Исправлено получение расписания на завтра.
  • Chio: Ленивый автопост расписания.
  • Console: Обновлено до sp v2.2.

13 Nov 2022: v2.1

Parser:

  • Добавлены параметры пользователя set_class, last_parse.
  • Обновленён метод сравнения хешей дней для повышения скорости работы.
  • Добавлен метод print_status() для просмотра информации о парсере.

Wrappers:

  • Добавлено предупрждение если не указан класс по умолчанию.
  • Chio: Обновлено до sp v2.1.
  • Console: Обновлено до sp v2.1.

13 Nov 2022: v2.0

Parser:

  • schedule -> lessons.
  • Изменены названия перемнных и параметров для большей понятности.
  • Очистка пустых уроков на стадии парсинга расписания.
  • В sc.json добавлен параметр last_parse для отметки последнего обновления.
  • Некоторые изменения в стиле сообщений.
  • Упрощения кода проверки дней в print_lessons().

Wrappers:

  • Console: Обновлено до sp v2.0.
  • Console: Обновлены описания к командам.

7 Nov 2022: v1.6

Parser:

  • Добавлено расписание звонков.
  • Переработка методов получение и парсинга расписания.
  • Новые методы get_class(), get_lessons(), get_schedule_changes().
  • Изменены тексты сообщений.
  • Исправлен пропуск пустых уроков.
  • Добавдено расписание звонков в расписание уроков.
  • Метод print_today_lessons() для умного получения уроков на сегодня/завтра.

Wrappers:

  • Chio: Обновлено до sp v1.6.
  • Chio: Исправлено получение расписания для других дней.
  • Console: Обновление до sp v1.6.
  • Telegram: Правки для запуска на sp v1.6.

23 Oct 2022: v1.4.2

Parser:

  • В методе print_lessons():
    • Ограничение диапазона дней.
    • Удаление повторов в днях.
    • Сортировка дней по возврастанию.

21 Oct 2022: Chio

  • Chio: Обновлено до sp v1.4.

18 Oct 2022: v1.4

  • Небольшая чистка кода

Parser:

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

Wrappers:

  • Console: Получение расписания на всю неделю.

17 Oct 2022: v1.3

  • Parser: Возможность получения расписания не несколько дней.

16 Oct 2022: v1.2

  • Parser: Исправлено получение расписания для других классов.

14 Oct 2022: v1.1

Parser:

  • Исправлен парсинг субботы.
  • Добавлен аргумент update=False, для принудительного обновления.

Wrappers:

  • Console: parse - принудительно обновить расписание.

12 Oct 2022: v1.0

Parser:

  • Вынесен в отдельный файл sparser.py.
  • Добавлены оповещения об изменениях в расписании.
  • Убрано парсирование расписания звонков.

Wrappers:

  • Telegram: Обновлён и немного исправлен код.
  • Console: Добавлена лёгкая обёртка над парсером.

10 Oct 2022: v1.0m

Основан на оригинальном исходном коде от Артёма Березина.

Отличия от оригинала:

  • Исправлены зависимости.
  • Подчищен код.
  • Переписан парсер.
  • Исправлены некоторые проблемы.
  • Немного переписаны тексты сообщений.
  • Убрано упоминание ВПР.
  • Добавлена возможность сохранения данных в файл.