Перейти к содержанию

Текстовые сообщения

Генератор текстовых сообщений для класса Schedule.

Используется для преобразования необработанных результатов работы методов класса Schedule. Выходным результатом генератора сообщений являются строки. Вы можете использовать их в чат-ботах, например Telegram.

MessagesView(sc: Schedule | None = None)

Bases: View[str]

Предоставляет методы для более удобной работы с расписанием.

В отличие от необработанных результатов работы Schedule, данный генератор сообщения в своих методах возвращает строки. Генератор сообщений используется в чат-ботах, поскольку возвращает уже готовые текстовые сообщения.

sc: Schedule = sc or Schedule() instance-attribute

timetable = Timetable([LessonTime(time(8, 0), time(8, 45)), LessonTime(time(8, 55), time(9, 40)), LessonTime(time(10, 0), time(10, 45)), LessonTime(time(11, 5), time(11, 50)), LessonTime(time(12, 0), time(12, 45)), LessonTime(time(12, 55), time(13, 40)), LessonTime(time(13, 50), time(14, 35)), LessonTime(time(14, 45), time(15, 30))]) instance-attribute

get_status(user: User) -> str async

Возвращает информацию о платформе.

Эта статистическая информация, о работа парсера, времени последней проверки и обновления и прочих параметрах, связанных с поставщиком и пользователями платформы.

lessons(intent: Intent) -> str

Собирает сообщение с расписанием уроков.

Обёртка над методом класса Schedule для получения расписания. Принимает намерения, для уточнения форматов расписание. Форматирует сообщений с помощью send_day_lessons.

current_day(intent: Intent) -> int

Получает текущий или следующий день если уроки кончились.

Работает это так, если уроки ещё не кончились, то вернёт номер текущего дня. Иначе же прибавит +1 к текущему номер дня. Также автоматически происходит сдвиг на понедельник, если нужно. это используется при умном получении расписания на сегодня или завтра в зависимости от времени.

relative_day(user: User) -> str

Получает строковое название текущего дня недели.

Возвращает Сегодня/Завтра/день недели, в зависимости от прошедших уроков.

Не принимает намерение, получает день только для переданного пользователя.

today_lessons(intent: Intent) -> str

Расписание уроков на сегодня/завтра.

Работает как lessons. Отправляет расписание для классов на сегодня, если уроки ешё идут. Отправляет расписание на завтра, если уроки на сегодня уже кончились.

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

search(target: str, intent: Intent, cabinets: bool = False) -> str

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

Производит поиск в расписании. А после собирает сообщение с результатами поиска.

Поиск немного изменяется в зависимости от режима.

+----------+---------+---------+ | cabinets | obj | another | +==========+=========+=========+ | false | lesson | cabinet | +----------+---------+---------+ | true | cabinet | lesson | +----------+---------+---------+

update(update: UpdateData, hide_cl: str | None = None) -> str

Собирает сообщение со списком изменений в расписании.

Собирает полноценное сообщение со всеми изменениями. Также добавляет заголовок записи об изменениях.

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

Пример сообщения со списком изменений:

📀 21.05 16:00 ➜ 05.06 18:47
🔷 На четверг
🔸 Для 5б:
2: --физкульт:330

Если hide_cl="5б":

📀 21.05 16:00 ➜ 05.06 18:47
🔷 На четверг
2: --физкульт:330

check_updates(user: User) -> str | None async

Проверяет обновления пользователя в расписании.

Если изменения есть, добавляет заголовок и отображает сжатую запись со всеми изменениями в расписании.

counter(groups: dict[int, dict[str, dict]], target: CounterTarget | None = None, days_counter: bool = False) -> str

Возвращает сообщение с результатами работы счётчика.

Собирает сообщение сгруппированного результата работы счётчика. Отображает результаты счётчика, отсортированные от большего к меньшему. Если указана подгруппу (target), то она также буде включена в результаты счётчика.

plural_form(n: int, v: tuple[str, str, str]) -> str

Возвращает склонённое значение в зависимости от числа.

Возвращает склонённое слово: "для одного", "для двух", "для пяти" значений.

get_str_timedelta(s: int, hours: bool | None = True) -> str

Возвращает строковый обратный отсчёт из количества секунд.

Если hours = False -> ММ:SS. Если hours = True -> HH:MM:SS.

send_search_res(intent: Intent, res: list) -> str

Собирает сообщение с результатами поиска в расписании.

Является некоторой обёрткой над функцией send_day_lessons. Собирает заголовок поискового запроса и возвращает результаты поиска. Передайте сюда намерение, которое использовалось при поиске. Поскольку оно будет использовано также для сборки заголовка.