Skip to content

Lamnxzp/WPronote

Repository files navigation

WPronote

Alertes pour cours annulés sur Pronote

Logo

À propos | Installation | Roadmap

Node.js ESM

WPronote


🎯 À propos

WPronote est une application Node.js qui se connecte automatiquement à votre compte Pronote et vous prévient sur votre téléphone avec des notifications push (grâce à Pushover ou Ntfy) lorsqu’un changement est détecté dans votre emploi du temps.

Toutes les 5 minutes, le programme vérifie votre emploi du temps et vous envoie une notification dès qu’un de ces changements est détecté :

  • Cours annulés (prof absent, sortie pédagogique...)
  • Cours rétablis (un cours annulé qui est finalement maintenu)
  • 🔄 Modifications (changement de salle, de professeur...)

🛠️ Installation

1. Prérequis

2. Téléchargement - Installation des dépendances

git clone https://github.com/Lamnxzp/WPronote.git
cd WPronote
npm install

3. Configuration

Créez un fichier config.js à la racine du projet en copiant config.example.js et en le modifiant selon vos besoins. Ce fichier contrôle les services de notification activés.

Pushover (payant)

Pour utiliser Pushover comme service de notification :

  1. Créez un compte sur Pushover.
  2. Créez un fichier .env à la racine du projet avec vos clés API :
    PUSHOVER_USER_KEY=votre_cle_utilisateur
    PUSHOVER_API_TOKEN=votre_token_application
  3. Pour récupérer vos clés API Pushover, suivez les instructions détaillées dans le fichier docs/pushover.md.
  4. Dans config.js, assurez-vous que "pushover" est inclus dans la liste enabledProviders (par exemple : enabledProviders: ["pushover"]).

Ntfy (gratuit)

Pour utiliser Ntfy comme service de notification (gratuit et open-source) :

  1. Installez l'application Ntfy sur votre téléphone.
  2. Abonnez-vous à un topic de votre choix (par exemple mon-topic-wpronote). Votre URL sera alors https://ntfy.sh/mon-topic-wpronote.
  3. Modifiez config.js :
    • Ajoutez "ntfy" à la liste enabledProviders (par exemple : enabledProviders: ["ntfy"]).
    • Remplacez "https://ntfy.sh/your-topic-here" dans providers.ntfy.url par l'URL de votre topic (par exemple : "https://ntfy.sh/mon-topic-wpronote").
    • Ajustez les options comme priority et title si nécessaire.

Tip

Un topic est public, ce qui signifie que plusieurs personnes peuvent s’y abonner et recevoir vos notifications. Choisissez donc un nom qui ne soit pas trop générique.

Vous pouvez activer plusieurs services en les listant dans enabledProviders, par exemple ["pushover", "ntfy"].

4. Lancement

node src/main.js

Lors du premier démarrage, vous devrez vous authentifier avec un QR Code Pronote, ce qui créera un fichier pronote_session.json dans le dossier cache.
Une fois ce fichier présent, vous pouvez relancer le programme et la connexion se fera automatiquement.

⛶ Authentification avec QR Code

  1. Génération du QR Code dans Pronote

    • Connectez-vous à Pronote depuis un ordinateur.
    • Cliquez sur le bouton avec un icône de QR Code situé à côté de votre nom dans le bandeau supérieur.
    • Dans la fenêtre qui s’ouvre, saisissez un code éphémère à 4 chiffres de votre choix (PIN). Un QR Code sera alors généré.
  2. Authentification

    • Entrez le code PIN choisi dans le programme.
    • Il vous sera ensuite demandé de fournir les données du QR Code.
      • Pour les récupérer, faites une capture d’écran du QR Code.
      • Rendez-vous sur ce site et cliquez sur Scan from image.
      • Importez votre capture, puis cliquez sur Copy text et collez le contenu directement dans votre terminal.

Tip

Une fois l'authentification réussie, le fichier pronote_session.json créé dans le dossier cache peut être transféré sur un autre système (VPS, serveur...) pour éviter de refaire l'authentification. Le programme se connectera automatiquement sans nouvelle saisie.

Note

L'authentification via un ENT ou avec ses identifiants Pronote n'est pas supportée. Seule l'authentification par QR Code est disponible.

🚀 Roadmap

  • Cours
    • Cours annulés (prof absent, sortie pédagogique...)
    • Cours rétablis (un cours annulé qui est finalement maintenu)
    • Cours modifiés (changement de professeur, de salle...)
  • Notifications
    • Support API Pushover
    • Support API Ntfy
    • Support API Discord
    • Support API Telegram

🔒 Sécurité et confidentialité

  • Les données d’authentification sont stockées localement sur votre machine
  • Pour l’envoi des notifications, seules des informations liées aux cours (matière, heure, salle, professeur, etc.) sont transmises à Pushover ou Ntfy
  • La connexion s’effectue uniquement via les serveurs officiels de Pronote, de manière sécurisée

Remarques

Ce projet est un développement indépendant et n'est en aucun cas affilié, approuvé ou soutenu par la société Index Éducation.

Pronote est un logiciel et une marque déposée appartenant à Index Éducation.
L'utilisation de ce nom dans ce projet est uniquement à titre de référence. Ce projet n'est pas officiel et l'usage du nom "Pronote" ou de toute inspiration visuelle ne constitue pas un partenariat ou une affiliation officielle.

Ce projet est fourni "en l'état" sans garantie.

Crédits

About

Notifications pour cours annulés sur Pronote

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published