Tato stránka detailně popisuje Verzi 2 (v2) API Ječná Rozvrh.

Endpoint: GET /versioned/v3

Toto je hlavní endpoint, který poskytuje veškerá data o rozvrhu pro v2.

Struktura Odpovědi

Odpověď je JSON objekt, který obsahuje dva hlavní klíče: schedule a status.

Zobrazit příklad struktury odpovědi
{
  "schedule": { /* objekt denních rozvrhů */ },
  "status": { /* objekt stavu */ }
}

Datové Struktury

Sekce: schedule

Tato sekce je objekt, kde každý klíč představuje datum ve formátu YYYY-MM-DD a prvek představuje jeden den. Každý den je objekt, jehož klíče jsou info, changes, absence, takesPlace a reservedRooms

changes
  • Objekt
  • Klíč: Název třídy (např. "A1")
  • Hodnota: Pole s 10 prvky, které reprezentují 10 vyučovacích hodin.
    • Objekt: Pokud je hodina normálně vyučována, obsahuje název předmětu nebo informaci o změně.
    • null: Pokud pro ni není záznam.

Hodnota je následující objekt

{
  text: string,
  backgroundColor?: string,
  foregroundColor?: string,
  willBeSpecified?: boolean
}
Zobrazit příklad rozvrhu pro třídu A1
"A1": [
  {
    "text": "M 5 Kp(Ng)"
  },
  null,
  null,
  {
    "text": "M 5 odpadá",
    "backgroundColor": "#DCEDD5",
    "foregroundColor": "#FF000000"
  },
  null,
  null,
  null,
  null,
  null,
  null
]
absence
  • Pole objektů, kde každý objekt specifikuje jednu absenci. Struktura objektu je následující:
    • teacher (string | null): Celé jméno učitele, pokud je známé.
    • teacherCode (string | null): Zkratka jména učitele (např. “me”, “ad”).
    • type (string): Typ absence. Může nabývat následujících hodnot:
      • "wholeDay": Učitel chybí celý den.
      • "single": Učitel chybí jednu vyučovací hodinu.
      • "range": Učitel chybí v rozmezí několika hodin.
      • "exkurze": Učitel je na exkurzi.
      • "invalid": Záznam o absenci se nepodařilo zpracovat.
    • hours (object | number | null): Specifikuje hodiny absence.
      • null: Pro typy wholeDay, exkurze, a invalid.
      • number (např. 3): Pro typ single.
      • object (např. { "from": 2, "to": 4 }): Pro typ range.
    • original (string | null): Pouze pro typ invalid, obsahuje původní nezpracovaný text.
Zobrazit příklady absencí

Celý den:

{
  "teacher": "Jan Novák",
  "teacherCode": "no",
  "type": "wholeDay",
  "hours": null
}

Jedna hodina:

{
  "teacher": "Jan Novák",
  "teacherCode": "no",
  "type": "single",
  "hours": 1
}

Rozsah hodin:

{
  "teacher": "Jan Novák",
  "teacherCode": "no",
  "type": "range",
  "hours": { "from": 2, "to": 4 }
}

Exkurze:

{
  "teacher": "Jan Novák",
  "teacherCode": "no",
  "type": "exkurze",
  "hours": null
}

Zastupuje:

{
  "teacher": "Ing. Zdeněk Vondra",
  "teacherCode": "vn",
  "type": "zastoupen",
  "hours": null,
  "zastupuje": {
    "teacher": "David Janoušek",
    "teacherCode": "jk",
  },
},

Neplatný záznam:

{
  "type": "invalid",
  "teacher": null,
  "teacherCode": null,
  "hours": null,
  "original": "Nezpracovatelný text"
}
takesPlace

String obsahující aktuálně probíhající akce ten den.

reservedRooms

Pole 10 prvků (string | null) pro jakou hodinu jsou rezervované jaké místnosti.

info.inWork

Boolean jestli je daná tabulka in work (příprava).

Sekce: status - Stav a Metadata

Objekt poskytující informace o aktuálnosti dat.

  • lastUpdated (string): Čas poslední úspěšné aktualizace dat ve formátu HH:MM.
  • currentUpdateSchedule (number): Interval v minutách, ve kterém scraper interně kontroluje a stahuje novou verzi rozvrhu. Tento interval se dynamicky mění v závislosti na denní době (kratší během vyučování, delší v noci).
Zobrazit příklad status
"status": {
  "lastUpdated": "08:30",
  "currentUpdateSchedule": 5
}