/pronote-api

Bibliothèque permettant de récupérer facilement des informations à partir d'un serveur Pronote (Index-Education) pour JVM/JS/Native 🚀.

Primary LanguageKotlinMIT LicenseMIT

Kotlin Alpha Maven Central CodeFactor

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.

Languages supportés

Platforme Status
JVM (Java, Kotlin, Scala) 🚧 Développement
Javascript/Typescript ⛔ Non disponible
Natif (C/Go) ⛔ Non disponible

Installation

Gradle Kotlin Script (build.gradle.kts)

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>

Vue d'ensemble

Connection à un compte Pronote Étudiant via URL et CAS (bientôt)

Kotlin

    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

Kotlin

// 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) }

Contributing

Kronote est un projet libre et open source sous licence MIT License.

Vous pouvez contribuer à poursuivre son développement en :