Modul Timetable zajišťuje načtení a zpracování rozvrhu (aktuálního i stálého) ze serveru Bakalářů. Umí:
stáhnout aktuální rozvrh pro zadané datum,
stáhnout stálý (permanentní) rozvrh,
vrátit rozparsovaná data do přehledných tříd,
formátovat rozvrh do čitelného textu (den/týden).
Tento modul provádí autorizované dotazy. Před použitím tedy musíte mít platné přihlašovací údaje (tokeny) v instanci Bakalari. Viz první přihlášení a Credentials.
fromasync_bakalari_apiimportBakalarifromasync_bakalari_api.timetableimportTimetableclassTimetable:"""Client for fetching and parsing timetable endpoints."""def__init__(self,bakalari:Bakalari)->None:...
Konstruktor přijímá pouze instanci Bakalari.
Modul využívá interně autorizované volání (send_auth_request) a tokeny si automaticky obnovuje.
# Vypsat první den a jeho hodiny se subjektem, učitelem a místnostífirst_day=week.days[0]foratominfirst_day.atoms:subj,teach,room,groups=week.resolve(atom)print(atom.hour_id,subj.abbrevifsubjelse"",teach.abbrevifteachelse"",room.abbrevifroomelse"",",".join(g.abbrevforgingroups))
API vrací data v různých strukturách; parser v modulu se snaží být tolerantní.
Nevalidní položky se přeskočí a do logu se zapíše upozornění (warning).
ID se ukládají jako řetězce (ořezané o případné bílé znaky).
Datum se do endpointu „aktuální rozvrh“ posílá jako date=YYYY-MM-DD.
Metody format_day/format_week dokáží zobrazit:
číslo hodiny a čas,
předmět (zkratku),
skupiny,
učitele,
místnost,
téma (theme),
případně i záznam o změně (typ/čas/popis).
Chyby autorizace a síťové chyby se propisují jako výjimky definované v balíčku (např. Ex.AccessTokenExpired, Ex.RefreshTokenExpired, Ex.BadRequestException aj.). Při expirovaném access tokenu se provede automatické obnovení přes refresh token a požadavek se zopakuje (max. jednou).