Kronote est une librairie open source pour JVM (Java, Kotlin, Scala) pour le service d'administration des étudiants Pronote. Cette librairie n'utilise pas le service web HYPERPLANNING mis en place par Index-Education. L'objectif est de permettre à chacun d'apprendre la programmation informatique à partir de nos outils étudiant du quotidien et de permettre de créer des outils spécifique aux étudiants
Plus d'informations quant aux objectifs de cette librairie dans l'issue #3
⚠️ Bien que les définitions de la librairie soient considérées comme stables, veuillez garder à l'esprit que Kronote n'est pas affilié à Index-Education, propriétaire de Pronote, que Kronote fonctionne comme un navigateur web et récupère les mêmes données que sur un navigateur classique par conséquent, une rétrocompatibilité totale avec les anciennes versions de pronote n'est pas garantie.
Platforme | Status |
---|---|
JVM (Java, Kotlin, Scala) | 🚧 Développement |
Javascript/Typescript | ⛔ Non disponible |
Natif (C/Go) | ⛔ Non disponible |
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.misterassm:kronote-jvm:0.3.2")
}
Gradle groovy (build.gradle)
repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.misterassm:kronote-jvm:0.3.2'
}
Maven (pom.xml)
<dependencies>
<dependency>
<groupId>io.github.misterassm</groupId>
<artifactId>kronote-jvm</artifactId>
<version>0.3.2</version>
</dependency>
</dependencies>
Connection à un compte Pronote Étudiant via URL et CAS (bientôt)
val kronote = connectKronote { // or just ``kronote`` to create instance without connect to Pronote
username = "demonstration"
password = "pronotevs"
indexUrl = "https://demo.index-education.net/pronote/eleve.html?login=true"
enableKeepAlive() // or keepSessionAlive = true to 120.seconds
}.getOrThrow() // or Result#onSuccess / Result#onFailure
Récupérer l'emploi du temps d'une semaine/date spécifique
// Récupérer l'emploi du temps de la semaine actuelle
val timetable = kronote.retrieveTimetable()
// Récupérer l'emploi du temps d'une semaine spécifique
val timetable = kronote.retrieveTimetable(5) // Emploi du temps de la semaine n°5
// Récupérer l'emploi du temps d'un jour en particulier
val timetable = kronote.retrieveTimetable(Localdate(2022, Month.SEPTEMBER, 1)) // Emploi du temps du 1er septembre 2022
// Récupérer le nom de chaque matière et l'imprimer dans la console
timetable.courseList.forEach { println(it.subject) }
Kronote est un projet libre et open source sous licence MIT License.
Vous pouvez contribuer à poursuivre son développement en :