Closed Vilerio closed 5 months ago
Pronote ne retourne pas cette valeur, et pour l'avoir il faudrait récupérer l'edt entier, ce qui est vraiment casse gueule niveau requêtes... Pour moi c'est pas une fonctionalité utile
Oui faudrait effectivement le calculer après est-ce que on peut pas stocker ça en cache pour pas avoir à faire 800 requêtes ?
Stocker quoi en cache ? L'edt complet ?
non, la durée d'absence d'un professeur tant qu'il est absent
Détaille ce que tu veux dire
Le problème de stocker juste la valeur c'est
C'est assez coûteux à implémenter, si jamais il faudrait le faire, je pense que l'utilisateur doit forcer la récupération de cette valeur en avertissant que l'opération risque de prendre un petit temps (car un fetch vers Pronote ça prend assez longtemps, et sachant qu'on a genre 35-40 semaines dans une année, bah on tape facilement dans la trentaine de requêtes, bon..., faut aussi ajouter un throttler car sinon y a moyen de se faire ban IP / rate limit sur l'API de Pronote)
Effectivement ça peut être couteux à implémenter, et pas prioritaire comme feature, mais ça peut être interessant ce genre de stats, par exemple pour un bilan à la fin de l'année
sachant qu'on a genre 35-40 semaines dans une année, bah on tape facilement dans la trentaine de requêtes, bon...
Je souhaite revenir sur ce que j'ai dis : avec la nouvelle version de Pawnote (0.20.0) et mes nouvelles découvertes, on peut récupérer l'ENTIÈRETÉ de l'emploi du temps en UNE seule requête.
import { authenticatePronoteCredentials, PronoteApiAccountId } from "pawnote";
const pronote = await authenticatePronoteCredentials("https://demo.index-education.net/pronote", {
accountTypeID: PronoteApiAccountId.Student,
username: "demonstration",
password: "pronotevs",
// Because this is just an example, don't forget to change this.
deviceUUID: "my-device-uuid"
});
const timetable = await pronote.getTimetableOverview(pronote.firstDate, pronote.lastDate);
const classes = timetable.parse({
withSuperposedCanceledClasses: false,
withCanceledClasses: true,
withPlannedClasses: true
});
console.log(classes.length) // 881
Rien qu'avec l'instance de démo, on peut récupérer les 881 cours en moins de deux secondes.
Ces 881
cours représentent tout les cours de l'année (sans les cours superposés, donc sans les doublons).
Pour vérifier qu'on a bien tout les cours de l'année, on peut s'amuser à faire
classes.forEach((currentClass) => console.log(currentClass.startDate));
et on obtient...
2023-09-01T06:00:00.000Z
2023-09-01T07:00:00.000Z
...
2024-06-28T08:00:00.000Z
2024-06-28T11:30:00.000Z
donc au final, y a bien moyen de récupérer toute l'année de manière bien moins coûteuse.
Tout ça pour dire qu'au final ta fonctionnalité PEUT être implémenté (uniquement pour Pronote)
Nice ! j'avais vu passer tes découvertes, merci pour ces informations !
@LeMaitre4523 il me semble que t'avais dis que sur ed c'étais pareil ?
Sur ED, on peut effectivement aussi récupérer tout l'EDT d'un coup
Après faut penser aux services qui seront ajouté après, tel que Skolengo
faute d'activité je ferme cette issue je pense aussi qu'il n'est pas forcément pertinent d'avoir le nombre d'heures qu'on a pas eu avec un prof, à voir quand le système d'extensions fonctionnera
Description du problème
Lorsqu'un cours est annulé pour le motif prof absent, la durée depuis laquelle ce professeur est absent est affichée
Description de l'amélioration
Lorsqu'un cours est annulé pour le motif prof absent, la durée depuis laquelle ce professeur est absent est affichée
Contexte supplémentaire
No response