JecnaAPI je Kotlin knihovna, díky které lze přistupovat k datům webu spsejecna.cz.
-
čtení:
- Novinky
- Známky
- Rozvrh
- Příchody a odchody
- Učitelský sbor
- Obědy
-
obědnávání obědů
-
dávání obědů do/z burzy
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.tomhula.JecnaAPI:jecnaapi:<version>'
/* Pokud chcete používat z Javy, přidejte i následující. */
implementation 'com.github.tomhula.JecnaAPI:jecnaapi-java:<version>'
}
repositories {
maven("https://jitpack.io")
}
dependencies {
implementation("com.github.tomhula.JecnaAPI:jecnaapi:<version>")
/* Pokud chcete používat z Javy, přidejte i následující. */
implementation("com.github.tomhula.JecnaAPI:jecnaapi-java:<version>")
}
<repositories>
...
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
...
<dependency>
<groupId>com.github.tomhula.JecnaAPI</groupId>
<artifactId>jecnaapi</artifactId>
<version>VERSION</version>
</dependency>
<!-- Pokud chcete používat z Javy, přidejte i následující. -->
<dependency>
<groupId>com.github.tomhula.JecnaAPI</groupId>
<artifactId>jecnaapi-java</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>
Knihovna je primárně naprogramovaná v Kotlinu, ale je možné ji používat i z Javy. Chcete-li jí používat z Javy, musíte přidat dependency na jecnaapi-java
(viz Instalace). Java místo Kotlin coroutines používá CompletableFuture
API.
val jecnaClient = JecnaClient()
Java
JecnaClientJavaWrapper jecnaClient = new JecnaClientJavaWrapper();
Přihlášení je nezbytné k čtení dat studenta.
/* runBlocking, nebo jiný coroutine scope. */
runBlocking {
jecnaClient.login("username", "password")
}
jecnaClient.login("username", "password");
/* runBlocking, nebo jiný coroutine scope. */
runBlocking {
val newsPage = jecnaClient.getNewsPage()
val gradesPage = jecnaClient.getGradesPage()
val timetablePage = jecnaClient.getTimetablePage()
val attendancePage = jecnaClient.getAttendancePage()
val teachersPage = jecnaClient.getTeachersPage()
}
NewsPage newsPage = jecnaClient.getNewsPage().join();
GradesPage gradesPage = jecnaClient.getGradesPage().join();
TimetablePage timetablePage = jecnaClient.getTimetablePage().join();
AttendancePage attendancePage = jecnaClient.getAttendancePage().join();
TeachersPage teachersPage = jecnaClient.getTeachersPage().join();
Některé metody berou období (např. rok) jako parametr.
/* runBlocking, nebo jiný coroutine scope. */
runBlocking {
/* Získání známek z roku 2021/2022 z druhého pololetí. */
val gradesPage = jecnaClient.getGradesPage(SchoolYear(2021), SchoolYearHalf.SECOND)
}
/* Získání známek z roku 2021/2022 z druhého pololetí. */
GradesPage gradesPage = jecnaClient.getGradesPage(new SchoolYear(2021), SchoolYearHalf.SECOND).join();
Více příkladů najdete ve složkách kotlin-examples a java-examples.