pronote-lib

Pronote library


Keywords
pronote, library, educationnal, javascript-library, node-module, nodejs, reverse-engineering
License
MIT
Install
npm install pronote-lib@2.1.6

Documentation

Pronote library

Original api from Litarvan (https://github.com/Litarvan/pronote-api)

Installation

npm

npm install pronote-lib

Utilisation fetch & geo

const pronote = require("pronote-lib");

let url = "http://xyz.com/pronote/";
let cas = "ac-lyon"; //Use none bypass CAS auth.

pronote.fetch(username, password, url, cas).then(function(res){
    console.log(res);
});

pronote.geo("48.8666", "2.3333").then(function (res) {
	console.log(res)
    /*
    [
      {
        url: 'https://0911028Y.index-education.net/pronote',
        nomEtab: 'COLLEGE BUISSON',
        lat: '48.689780677',
        long: '2.378403720',
        cp: '91260'
      },
      {
        url: 'https://0911029Z.index-education.net/pronote',
        nomEtab: 'COLLEGE PICASSO\r\n',
        lat: '48.690822079',
        long: '2.279716714',
        cp: '91160'
      },
      {
        url: 'https://0910715H.index-education.net/pronote',
        nomEtab: 'LYCEE PROF. JEAN PERRIN',
        lat: '48.691235348',
        long: '2.301254789',
        cp: '91163'
      },
    */
}).catch(function (err) {
	console.log(err)
})

La requête fetch renvoie un JSON avec toutes les informations reçues : Exemple de sortie de l'application

Utilisation classe

const pronote = require("pronote-lib");

let url = "http://xyz.com/pronote/";
let cas = "ac-lyon"; //Use none bypass CAS auth.

let user = new pronote.User({username: "xxx.yyy", "password": "****",url,cas}, function(){
    user.get_marks().then(function(res){
        console.log(res);
    }).catch(function(err){
        console.error(err);   
    })
})

Methods:

  • constructor({username, password, url, cas}, callback = function () {}, auto_login = true)
  • get_menu(date = new Date())
  • get_profile_pic()
  • get_information(since = 3)
  • get_homework(weekShift = 9)
  • get_absences()
  • get_reports()
  • get_timeplan(date = new Date())
  • get_marks()
  • get_student()
  • get_messages(show_read = true) //This function return raw pronote data
  • get_courses_content()

Every of theses functions returns a promise.

Functions with "=" arguments is default values.

Quels sont les avantages Ă  l'api originel ?

  • Les console.log ont Ă©tĂ© retirĂ© pour permettre une utilisation Ă©galement en mode CLI
  • Certains erreurs ont Ă©tĂ© standardisĂ© par un "bad login" (Uniquement dans la plupart des cas)
  • FacilitĂ© d'utilisation grâce a fetch ainsi que NPM
  • LĂ©gèrement plus lĂ©ger grâce au serveur HTTP retirĂ© entièrement, mĂŞme en importation de module.
  • Classe

Données renvoyées

  • Emploi du temps complet de la semaine en cours + prochaine, ordonnĂ©, avec timestamp prĂ©cis pour chaque cours et semaine, et marquage des profs absents et cours annulĂ©s
  • Devoirs (si dispo) de la semaine en cours + prochaine, ordonnĂ©s, avec timestamp prĂ©cis et fichiers joints
  • Notes de tous les trimestres avec moyenne de chaque matière et moyenne gĂ©nĂ©rale (de la classe et de l'Ă©lève)
  • Bulletins (si dispo) de tous les trimestres
  • Fichiers partagĂ©s
  • Menu de la Cantine (si dispo)
  • Informations
  • Infos de l'Ă©lève (nom + classe + avatar)

Comptes région supportés

Uniquement dans le cas où vous ne pouvez PAS vous connecter directement par Pronote, mais devez passer par une interface régionale spéciale

Si vous pouvez vous connecter directement sur l'interface de Pronote, l'API devrait fonctionner PEU IMPORTE VOTRE ACADÉMIE

Sinon, l'API propose de se connecter à Pronote avec des comptes des académies suivantes :

  • AcadĂ©mie de Lyon
  • AcadĂ©mie de Montpellier
  • AcadĂ©mie de Toulouse
  • AcadĂ©mie de Grenoble
  • AcadĂ©mie de Rouen
  • AcadĂ©mie de Rennes
  • AcadĂ©mie de Clermont-Ferrand
  • AcadĂ©mie de Reims
  • AcadĂ©mie de Nancy-Metz
  • AcadĂ©mie de Strasbourg
  • AcadĂ©mie de Caen
  • AcadĂ©mie d'Orleans-Tours
  • AcadĂ©mie de Besançon
  • ENT "ĂŽle de France"

Encore une fois, cette liste peut être agrandie : n'hésitez pas à me contacter, je fais ça rapidement