pronote-lib
v2.1.6
Published
Pronote library
Downloads
35
Readme
Pronote library
Note: This lib was originally ported for a personal project and no liability is provided including CAS support.
Original api from Litarvan (https://github.com/Litarvan/pronote-api)
Installation
npm install pronote-lib
Usage 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)
})
The fetch request sends a JSON with these informations: Exemple de sortie de l'application
Usage User class
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"