fix(pronote): ignorer les informations en mode qr_token
En mode qr_token, get_informations() retourne [] sans connexion ni verrou, ce qui évite l'échec systématique de PageActualites (erreur pronotepy 20) et le refresh redondant du token sur les instances HubEduConnect. Refs #21 Refs #20
This commit is contained in:
@@ -159,9 +159,12 @@ pronote-sync --dry-run
|
||||
- Après chaque login réussi, les credentials exportées par `pronotepy.export_credentials()` sont
|
||||
persistées dans `.pronote_auth_state.json` (permissions `0600`, format JSON versionné, écriture
|
||||
atomique). Le token rotate à chaque session et peut également être rafraîchi pendant l'exécution
|
||||
(refresh automatique pronotepy après une `PronoteAPIError`). Les credentials sont persistées après
|
||||
chaque login réussi **et après chaque opération de données réussie** (agenda, devoirs, messages,
|
||||
informations) pour garantir la persistance du token valide.
|
||||
(refresh automatique pronotepy après une `PronoteAPIError`). La persistance s'applique après
|
||||
chaque login réussi **et après chaque opération de données réussie** (agenda, devoirs, messages)
|
||||
pour garantir la persistance du token valide ; seules les opérations qui se connectent réellement
|
||||
et récupèrent des données déclenchent la persistance. En mode `qr_token`, `get_informations()`
|
||||
est ignorée (retour immédiat `[]` sans connexion ni verrou) et ne déclenche donc aucune
|
||||
persistance.
|
||||
- Les logins suivants utilisent `pronotepy.token_login(**credentials)` avec le token persisté.
|
||||
- En cas d'échec de `token_login` (token expiré/invalide), une `PronoteAuthRotationError` est levée.
|
||||
Cette erreur se propage sans wrapping à travers `PronoteFetcher` et `fetch_step` jusqu'à
|
||||
@@ -172,6 +175,11 @@ pronote-sync --dry-run
|
||||
- `PronoteAuthRotationError` est re-levée telle quelle (`except PronoteAuthRotationError: raise`)
|
||||
dans toutes les couches d'enveloppement du chemin critique (fetch_agenda, fetch_homework,
|
||||
fetch_step). Ne pas l'attraper avec `except Exception` sans la re-léver d'abord.
|
||||
- En mode `qr_token`, `get_informations()` retourne **inconditionnellement** une liste vide
|
||||
(`[]`) sans connexion, verrou, chargement d'état ni appel réseau, et journalise un message
|
||||
INFO unique : l'endpoint `PageActualites` renvoie une erreur pronotepy 20 sur les instances
|
||||
HubEduConnect testées, provoquant un refresh redondant du token. Ce contournement n'est pas
|
||||
configurable ; aucun état anti-répétition n'est conservé.
|
||||
- Le fichier `.pronote_auth_state.json` ne doit jamais être committé (couvert par `.gitignore`).
|
||||
Son contenu (token vivant) ne doit jamais apparaître dans les logs, les messages d'erreur ou
|
||||
les notifications XMPP.
|
||||
|
||||
Reference in New Issue
Block a user