npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kdecole-api

v1.4.7

Published

Unofficial API client of Kdecole

Downloads

15

Readme

kdecole-api

view on npm GitHub CI Discord npm

Support non officiel de l'API Kdecole (Mon Bureau Numérique, Skolengo, etc.).

Ce module permet de récupérer les données de l'ENT de manière automatique. De plus, certaines fonctions implémentées permettent de prétraiter les données (conversion de l'emploi du temps au format iCalendar, export du relevé de notes au format CSV par exemple).

Cette librairie est destinée à être dépréciée au profit de scolengo-api dans l'éventualité où l'accès à l'ancienne API est définitivement clos.

Pour participer et se tenir informé, rejoins le serveur Discord: https://discord.gg/9u69mxsFT6

Remarques importantes:

  • Il est clairement mentionné que cette librairie est n'est pas officielle.
  • Ce module n'est pas une contrefaçon car il n'existe pas de module similaire édité officiellement.
  • Les utilisateurs ne peuvent accéder qu'à leurs propres données. Ils sont soumis au même processus d'authentification que celui implémenté dans l'application.
  • Les données des utilisateurs ne sont pas davantage exposées puisqu'un utilisateur ne peut accéder qu'à ses propres données. Personne n'a le contrôle sur cette limitation qui est inhérente au fonctionnement de l'API des serveurs de Skolengo.
  • Cette librairie ne se suffit pas à elle-même pour fonctionner. Il est nécessaire de l'importer dans un projet et l'utilisateur est le seul responsable de son code et des éventuelles conséquences.
  • Tout utilisateur de cette librairie a a priori lu l'entièreté du fichier de licence GPLv3 disponible publiquement LICENSE ainsi que de ce présent fichier de présentation.
  • Tout utilisateur de cette librairie a a priori lu l'entièreté du code de ce projet avant toute utilisation.
  • Eu égard l'ensemble de ces remarques, les contributeurs et a fortiori l'auteur du projet ne peuvent être tenus comme responsables de tout dommage potentiel.

L'accès à l'API requiert une en-tête (header) avec la version de l'application en cours d'utilisation.

Le terme "code" ou "password" ne réfère pas ici à votre mot de passe, mais à un code temporaire généré par votre ENT (dans paramètres > application mobile). C'est comme cela que fonctionne l'authentification à l'API.

Liste des ENT supportés :

| Nom usuel de l'ENT | Identifiant interne librairie | URL de l'API mobilité | |------------------------------|------------------------------------|-----------------------------------------------------------| | Mon Bureau Numérique | PROD_MON_BUREAU_NUMERIQUE | https://mobilite.monbureaunumerique.fr/mobilite | | Mon ENT Occitanie | PROD_MON_ENT_OCCITANIE | https://mobilite.mon-ent-occitanie.fr/mobilite | | Arsène 76 | PROD_ARSENE76 | https://mobilite.arsene76.fr/mobilite | | ENT27 | PROD_ENT27 | https://mobilite.ent27.fr/mobilite | | ENT Creuse | PROD_ENTCREUSE | https://mobilite.entcreuse.fr/mobilite | | ENT Auvergne-Rhône-Alpes | PROD_AUVERGNERHONEALPES | https://mobilite.ent.auvergnerhonealpes.fr/mobilite | | Agora 06 | PROD_AGORA06 | https://mobilite.agora06.fr/mobilite | | CyberCollèges 42 | PROD_CYBERCOLLEGES42 | https://mobilite.cybercolleges42.fr/mobilite | | eCollège 31 Haute-Garonne | PROD_ECOLLEGE_HAUTE_GARONNE | https://mobilite.ecollege.haute-garonne.fr/mobilite | | Mon collège en Val d'Oise | PROD_MONCOLLEGE_VALDOISE | https://mobilite.moncollege.valdoise.fr/mobilite | | Webcollège Seine-Saint-Denis | PROD_WEBCOLLEGE_SEINESAINTDENIS | https://mobilite.webcollege.seinesaintdenis.fr/mobilite | | Eclat-BFC | PROD_ECLAT_BFC | https://mobilite.eclat-bfc.fr/mobilite | | @ucollège84 | PROD_AUCOLLEGE84_VAUCLUSE | https://mobilite.aucollege84.vaucluse.fr/mobilite | | ENT Val de Marne | PROD_ENT_VAL_DE_MARNE | https://mobilite.entvaldemarne.skolengo.com/mobilite | | Skolengo | PROD_SKOLENGO | https://mobilite.skolengo.com/mobilite | | Kosmos Éducation | PROD_KOSMOS_EDUCATION | https://mobilite.kosmoseducation.com/mobilite | | Skolengo-Collèges et Lycées | PROD_KOSMOS_EDUCATION_PDL | https://mobilite.pdl.kosmoseducation.com/mobilite | | Schulportal Ostbelgien | PROD_SCHULPORTAL_OSTBELGIEN | https://mobilite.schulen.be/mobilite |

Une autre méthode pour obtenir un token est d'utiliser la ligne de commande:

npx kdecole-api -u USERNAME -p CODE --ent PROD_MON_BUREAU_NUMERIQUE

Kdecole

Kind: global class

new Kdecole(authToken, apiVersion, idEtablissement, apiURL)

| Param | Type | Default | Description | | --- | --- | --- | --- | | authToken | string | | Le jeton d'accès | | apiVersion | ApiVersion | string | | La version de l'application mobile autorisée par l'API | | idEtablissement | number | 0 | L'identifiant de l'établissement | | apiURL | ApiUrl | string | | L'URL de l'API Kdecole |

Example

const { Kdecole, ApiVersion, ApiUrl } = require('kdecole-api');

const token = 'azertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazertyuiopazert'
const user = new Kdecole(token, ApiVersion.PROD_MON_BUREAU_NUMERIQUE, 0, ApiUrl.PROD_MON_BUREAU_NUMERIQUE)
user.getInfoUtilisateur().then(infoUser => {
  console.log(`Jeton valide, connecté en tant que ${infoUser.nom}.`)
})

kdecole.logout() ⇒ Promise.<void>

Révoque le jeton d'accès

Kind: instance method of Kdecole
Example

const { Kdecole } = require('kdecole-api')
const user = new Kdecole(authToken)
user.logout()

kdecole.starting() ⇒ Promise.<void>

Ping à l'API. Cet appel est initialement réalisé par l'application mobile pour vérifier si le token et la version de l'app sont valides. Le serveur retourne un code de statut HTTP 204 No Content si l'utilisateur est correctement authentifié.

Kind: instance method of Kdecole
Example

const { Kdecole } = require('kdecole-api')
const user = new Kdecole(authToken)
try {
  user.starting()
}
catch (e) {
  // Une exception est levée si l'utilisateur n'est pas correctement authentifié
}

kdecole.getReleve(idEleve) ⇒ Promise.<Releve>

Retourne le relevé de notes de l'élève

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

kdecole.getReleve() //Retourne le relevé de l'élève
kdecole.getReleve(idEleve) //Retourne le relevé d'un élève précis

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getReleve(idEleve).then(releve => {
 // Votre code
 releve.toCSV() // Exporter son relevé des notes dans un objet contenant les devoirs au format CSV
 })

kdecole.getActualites(idEleve) ⇒ Promise.<Array.<Actualite>>

Retourne un tableau des actualités de l'établissement de l'utilisateur

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getActualites(idEleve).then(actualites => {
 // Votre code
 })

kdecole.getContenuArticle(uid) ⇒ Promise.<ContenuArticle>

Retourne le contenu d'un article Un article est publié par l'établissement.

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | uid | string | Identifiant unique de l'article |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getContenuArticle(uid).then(contenuArticle => {
 // Votre code
 })

kdecole.getContenuInformation(uid) ⇒ Promise.<ContenuArticle>

Retourne le contenu d'une information Une information est publiée par la plateforme EMS.

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | uid | string | Identifiant unique de l'information |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getContenuInformation(uid).then(contenuInformation => {
 // Votre code
 })

kdecole.getTravailAFaire(idEleve, notBeforeDate) ⇒ Promise.<TravailAFaire>

Retourne la liste des devoirs de l'élève

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève | | notBeforeDate | Date | Un objet Date pour ne sélectionner que les devoirs postérieurs à une date |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getTravailAFaire(idEleve).then(taf => {
 // Votre code
 })

kdecole.getContenuActivite(uidSeance, uid, idEleve) ⇒ Promise.<ContenuActivite>

Retourne les détails d'un devoir à faire

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | uidSeance | number | Identifiant de la séance | | uid | number | Identifiant du devoir à faire | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getContenuActivite(uidSeance, uid, idEleve).then(contenuActivite => {
 // Votre code
 })

kdecole.setActiviteFinished(uidSeance, uid, flagRealise) ⇒ Promise.<void>

Permet de marquer un devoir comme étant fait

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | uidSeance | number | Identifiant de la séance | | uid | number | Identifiant du devoir | | flagRealise | boolean | Statut du devoir |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.setActiviteFinished(uidSeance, uid, flagRealise)

kdecole.getAbsences(idEleve) ⇒ Promise.<AbsencesList>

Retourne la liste des absences d'un élève

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getAbsences(idEleve).then(absences => {
 // Votre code
 })

kdecole.getInfoUtilisateur(idEleve) ⇒ Promise.<Utilisateur>

Retourne les informations d'un utilisateur (type de compte, nom complet, numéro de l'établissement, etc.)

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getInfoUtilisateur(idEleve).then(infoUtilisateur => {
 // Votre code
 })

kdecole.getCalendrier(idEleve) ⇒ Promise.<Calendrier>

Retourne l'emploi du temps de l'élève à J-7 et J+7

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getCalendrier(idEleve).then(calendrier => {
 // Votre code
 })

kdecole.getNotes(idEleve) ⇒ Promise.<NotesList>

Retourne la liste des récentes notes de l'élève

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | idEleve | string | Identifiant d'un élève |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getNotes(idEleve).then(notes => {
 // Votre code
 })

kdecole.getMessagerieInfo() ⇒ Promise.<MessageInfo>

Retourne l'état de la messagerie de l'utilisateur (nombre de mails non lus)

Kind: instance method of Kdecole
Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getMessagerieInfo().then(messagerieInfo => {
 // Votre code
 })

kdecole.getMessagerieBoiteReception(pagination) ⇒ Promise.<MessageBoiteReception>

Retourne les mails présents dans la boîte mail Le paramètre pagination permet de remonter dans le passé dans la liste des fils de discussions

Kind: instance method of Kdecole

| Param | Type | Default | Description | | --- | --- | --- | --- | | pagination | number | 0 | Le nombre de fils de discussion à tronquer (système de pagination) |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getMessagerieBoiteReception().then(messagerieBoiteReception => {
 // Votre code
 })

kdecole.getCommunication(id) ⇒ Promise.<Communication>

Retourne les détails d'un fil de discussion

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | id | number | Identifiant d'un fil de discussion |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getCommunication(id).then(communication => {
 // Votre code
 })

kdecole.reportCommunication(id) ⇒ Promise.<void>

Permet de signaler une communication

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | id | number | Identifiant d'un fil de discussion |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.reportCommunication(id)

kdecole.deleteCommunication(id) ⇒ Promise.<void>

Supprime la communication

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | id | number | Identifiant d'un fil de discussion |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.deleteCommunication(id)

kdecole.setCommunicationLu(id) ⇒ Promise.<void>

Marquer une communication lue

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | id | number | Identifiant d'un fil de discussion |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.setCommunicationLu(id)

kdecole.sendMessage(id, corpsMessage) ⇒ Promise.<void>

Envoyer un message sur un fil de discussion

Kind: instance method of Kdecole

| Param | Type | Description | | --- | --- | --- | | id | number | Identifiant d'un fil de discussion | | corpsMessage | string | Corps du message HTML |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.sendMessage(id, corpsMessage)

kdecole.gestionAppels() ⇒ Promise.<GestionAppels>

Retourne les feuilles d'appel

Kind: instance method of Kdecole
Returns: Promise.<GestionAppels> - Les feuilles d'appel.
Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.gestionAppels().then(gestionAppels => {
 // Votre code
 })

kdecole.validerAppel(appel) ⇒ Promise.<void>

Valide l'appel de la classe

Kind: instance method of Kdecole

| Param | Description | | --- | --- | | appel | L'appel à valider |

Example

const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
const appel = {
  "idEtab": 10485,
  "idAppel": 534552,
  "listeAbsencesAppel": [
    {
      "idEleve": "AAP05567",
      "type": "absence",
      "dateDebut": 1609259443000,
      "dateFin": 1609263043000,
      "modifiable": true
    }
  ]
}
user.validerAppel(appel)

Kdecole.login(username, password, apiVersion, apiUrl) ⇒ Promise.<string>

Demande à l'API de générer un nouveau jeton pour l'utilisateur

Kind: static method of Kdecole

| Param | Type | Description | | --- | --- | --- | | username | string | Le nom d'utilisateur | | password | string | Le mot de passe à usage unique | | apiVersion | ApiVersion | string | La version de l'application mobile autorisée par l'API | | apiUrl | apiURL | string | L'URL de l'API Kdecole |

Example

const { Kdecole, ApiUrl, ApiVersion } = require('kdecole-api')
Kdecole.login(username, uniquePassword, ApiVersion.PROD_MON_BUREAU_NUMERIQUE, ApiUrl.PROD_MON_BUREAU_NUMERIQUE).then(token => console.log(token)) // Affiche son token dans la console