Antoine Van Elstraete d26cef8d3d fix: persister le token après chaque opération de données + corriger doc QR code
Cause racine : pronotepy peut rafraîchir (rotater) le token en mémoire pendant
l'exécution via refresh() automatique après une PronoteAPIError. L'ancien code
ne persistait les credentials qu'après le login initial, pas après les
opérations de données. Le token roté en mémoire était perdu → au run suivant,
token_login échouait avec le token périmé (KeyError 'dataSec').

Correction :
- PronoteClient._persist_credentials() : méthode centralisée qui persiste
  export_credentials() après chaque opération réussie (get_lessons,
  get_homeworks, get_messages, get_informations)
- Le token rafraîchi par le serveur pendant l'exécution est maintenant
  toujours persisté, même si le pipeline échoue ensuite

Documentation :
- .env.example : variables QR plus visibles (exemple qr_token décommentable)
- AGENTS.md : QR code depuis le site web Pronote (pas l'app mobile),
  persistance après chaque opération de données
- Wiki GuidePronote : procédure corrigée (site web, pas app Android/iOS),
  mention de la persistance après chaque opération

Tests : 5 nouveaux tests de persistance (691 passés, couverture 94.92%)
2026-09-10 12:10:42 +02:00

pronote-sync

Synchronisation Pronote → CalDAV + XMPP.


Synchronise l'agenda et les devoirs de Pronote vers un calendrier CalDAV et envoie un résumé quotidien par XMPP. Supporte les sources iCal et pronotepy avec repli automatique. Synthèse IA optionnelle.


🚀 Démarrage rapide

# Cloner le dépôt
git clone <repo-url>
cd pronote-sync

# Créer l'environnement virtuel
python3.13 -m venv .venv
source .venv/bin/activate

# Installer
pip install -e ".[dev]"

# Configurer
cp .env.example .env
# Éditer .env avec vos paramètres (voir .env.example pour le détail)

# Tester
pronote-sync --dry-run --log-level DEBUG

📖 Utilisation

pronote-sync                    # Exécute la synchronisation
pronote-sync --dry-run          # Simulation sans écriture
pronote-sync --log-level DEBUG  # Verbosité des journaux

🛠️ Déploiement

Les artefacts pour systemd/timer et logrotate sont fournis dans deploy/. Voir docs/exploitation.md pour plus de détails.


🙏 Remerciements

Ce projet repose sur les bibliothèques open-source suivantes :

Inspiré de pronote-digest par Yoan Bernabeu.


Licence

MIT — voir LICENSE.

Description
Outil python pour récupérer les informations transmises par le collège via Pronote et leur site internet.
Readme MIT 3 MiB
Languages
Python 100%