
Shared Compose app template with organized common and platform-specific source sets, enabling UI code reuse and offering Gradle build/run tasks for easy development and debugging.
Knihovna pro snadné získávání dat o suplování ze systému SPŠE Ječná. Už žádné složité parsování webu, stačí pár řádků kódu a máš vše, co potřebuješ. API pro suplování vytvořil Jakub Žitník - https://jzitnik.dev/. Dokumentace API - https://jecnarozvrh.jzitnik.dev/
Použití je fakt jednoduché. Takhle získáš suplování pro svou třídu:
val client = SubstitutionClient()
// 1. Nastavíš, odkud se mají data brát
client.setEndpointUrl("https://jecnarozvrh.jzitnik.dev/versioned/v1")
// 2. Vybereš svou třídu (třeba C4c, A2b, E3...)
client.setClassSymbol("C4c")
// 3. A je to! Teď už jen data stáhneš
val substitutions = client.getSubstitutions()
substitutions?.forEach { lesson ->
println("Hodina: ${lesson.hour}. | Předmět: ${lesson.subject} | Učitel: ${lesson.substitutingTeacher}")
}Můžeš získat seznam všech absencí, nebo jen pro konkrétní den:
// Všechny nahlášené absence
val absences = client.getTeacherAbsences()
// Absence pro konkrétní datum (vyžaduje java.time.LocalDate)
val date = LocalDate.now()
val dailyAbsence = client.getTeacherAbsences(date)Pokud potřebuješ data rozdělená přesně podle dnů (např. pro zobrazení v rozvrhu):
val dailySubs = client.getDailySubstitutions()
dailySubs?.forEach { day ->
println("Den: ${day.date}")
day.classSubs.values.flatten().forEach { sub ->
println(" - ${sub.subject} (${sub.hour}. hodina)")
}
}Chceš úplně všechna data, která jsou k dispozici (všechny třídy, všechny absence, status)?
val complete = client.getCompleteSchedule()
println("Poslední aktualizace: ${complete?.status?.lastUpdated}")
// complete.dailySchedules obsahuje data pro všechny třídy v dané dnyMůžeš si ověřit, kdy se data naposledy změnila a jestli je server dostupný:
val status = client.getSubstitutionsStatus()
println("Naposledy aktualizováno: ${status.lastUpdated}")
if (status.isOffline == true) {
println("Pozor, data nejsou dostupná!")
}Pokud si chceš JSON zpracovat po svém, můžeš si ho nechat prostě poslat:
val rawJson = client.getRawSubstitutionData()
println(rawJson)Vytvořeno pro studenty (a možná i učitele) z Ječné.
Knihovna pro snadné získávání dat o suplování ze systému SPŠE Ječná. Už žádné složité parsování webu, stačí pár řádků kódu a máš vše, co potřebuješ. API pro suplování vytvořil Jakub Žitník - https://jzitnik.dev/. Dokumentace API - https://jecnarozvrh.jzitnik.dev/
Použití je fakt jednoduché. Takhle získáš suplování pro svou třídu:
val client = SubstitutionClient()
// 1. Nastavíš, odkud se mají data brát
client.setEndpointUrl("https://jecnarozvrh.jzitnik.dev/versioned/v1")
// 2. Vybereš svou třídu (třeba C4c, A2b, E3...)
client.setClassSymbol("C4c")
// 3. A je to! Teď už jen data stáhneš
val substitutions = client.getSubstitutions()
substitutions?.forEach { lesson ->
println("Hodina: ${lesson.hour}. | Předmět: ${lesson.subject} | Učitel: ${lesson.substitutingTeacher}")
}Můžeš získat seznam všech absencí, nebo jen pro konkrétní den:
// Všechny nahlášené absence
val absences = client.getTeacherAbsences()
// Absence pro konkrétní datum (vyžaduje java.time.LocalDate)
val date = LocalDate.now()
val dailyAbsence = client.getTeacherAbsences(date)Pokud potřebuješ data rozdělená přesně podle dnů (např. pro zobrazení v rozvrhu):
val dailySubs = client.getDailySubstitutions()
dailySubs?.forEach { day ->
println("Den: ${day.date}")
day.classSubs.values.flatten().forEach { sub ->
println(" - ${sub.subject} (${sub.hour}. hodina)")
}
}Chceš úplně všechna data, která jsou k dispozici (všechny třídy, všechny absence, status)?
val complete = client.getCompleteSchedule()
println("Poslední aktualizace: ${complete?.status?.lastUpdated}")
// complete.dailySchedules obsahuje data pro všechny třídy v dané dnyMůžeš si ověřit, kdy se data naposledy změnila a jestli je server dostupný:
val status = client.getSubstitutionsStatus()
println("Naposledy aktualizováno: ${status.lastUpdated}")
if (status.isOffline == true) {
println("Pozor, data nejsou dostupná!")
}Pokud si chceš JSON zpracovat po svém, můžeš si ho nechat prostě poslat:
val rawJson = client.getRawSubstitutionData()
println(rawJson)Vytvořeno pro studenty (a možná i učitele) z Ječné.