bain3 / pronotepy

A python API wrapper for pronote
MIT License
188 stars 55 forks source link

Add event listener #208

Open ElChopin opened 1 year ago

ElChopin commented 1 year ago

Salut ! ca serait sympa d'integrer un système d'event ( client.on("new_grade" ... ) pour pouvoir être notifier simplement lors d'une nouvelle note, un nouveau devoirs etc.. J'ai essayé de le faire tout seul mais je suis pas encore hyper bon, donc je galère un peu. J'ai réussis a faire plusieurs interactions sur demandes, mais un système de notifs comme ca je n'y arrive pas . Deuxièmement, jsp si c'est un problème perso mais chez moi, client.current_period return le trimestre 1 alors qu'on est au 2 ^^

Merci ! ElChopin

bain3 commented 1 year ago

Salut le probleme avec client.current_period est réglé mais le patch n'est pas encore publié sur pypi. Si tu installe la version latest ca va marcher.

Il semble que PRONOTE a un systeme de notifications mais je ne suis pas sur comment ca marche et en plus sur la site demo on ne peut pas recevoir des notif. Je ne sais pas meme si PRONOTE envoie des notifications la bas pour les notes... Ca serait bien si quelqu'un l'implementait mais ca peut pas etre moi.

Bapt5 commented 1 year ago

Salut J'ai cherché sur l'application mobile et je ne trouve pas les notifications et en tout cas je n'en n'ai jamais reçu. La meilleure solution serait que tu appelles la fonction pour obtenir les notes régulièrement dans ton script.

ElChopin commented 1 year ago

Salut ! Ok merci pour le current_period ! Enfaite pronote a pas vraiment de notification pour les nouvelles notes, mais je sais que l'ancien package JS api avait un system d'event comme ca, d'ou ma proposition d'implémentation de celui ci. D'ailleurs, on m'a parlé du fait que ca serait potentiellement illégal (RGPD et CNIL) d'utiliser pronotepy car ca utilise un webscrapper et pas une API. C'est vrai? (j'utiliserai quand meme ptdr, personne va venir toquer chez moi a 6h car j'ai fais une commande pour voir mon emplois du temps ptdr)

ElChopin commented 1 year ago

D'ailleurs question bête mais comment on installe la latest version ? pip install https://github.com/bain3/pronotepy/archive/refs/heads/master.zip ? car chez moi ca a pas réglé le pb

bain3 commented 1 year ago

D'ailleurs, on m'a parlé du fait que ca serait potentiellement illégal (RGPD et CNIL) d'utiliser pronotepy car ca utilise un webscrapper et pas une API. C'est vrai?

Je ne suis pas un avocat mais le RGPD (GDPR en anglais si je comprends bien) parle des droits des individus... je ne pense pas que ca interdit des projets comme pronotepy. Pronotepy utilise l'API internel comme ton navigateur et a acces aux informations completement identiques que la version web.

Ca pourrait etre interessant si Index-education décide de m'envoyer un lettre/email. Je ne suis pas francais :))

L'API de Litarvan était un peux different car c'était un serveur qui exposait l'API de pronote avec un API different plus simple, si je me rappelle bien. Pronotepy n'est qu'un client. En fait si quelque chose ne respecte pas le RGPD, ce seraient les nombreux projets dérivés (les applications mobiles et tout ca)...

TLDR je pense pas que c'est illégal et honnetement je m'en fiche

D'ailleurs question bête mais comment on installe la latest version ? pip install https://github.com/bain3/pronotepy/archive/refs/heads/master.zip ? car chez moi ca a pas réglé le pb

Essaye avec l'option -U si t'as pronotepy deja installé. Tu peux utiliser le url zip ou git directement:

pip install -U git+https://github.com/bain3/pronotepy.git

Si ca ne marche toujours pas tu peux aussi utiliser client.periods et l'obtenir toi-meme...

PS sorry for any mistakes in your glorious language lmao, it's kinda hard and I haven't spoken it in a long time ngl

ElChopin commented 1 year ago

D'accord merci beaucoup de ta réponse ! Bonne soirée et bonne continuation !

PS: its fine don't worry, i can understand what u said

ElChopin

tarneaux commented 1 year ago

D'ailleurs, on m'a parlé du fait que ca serait potentiellement illégal (RGPD et CNIL) d'utiliser pronotepy car ca utilise un webscrapper et pas une API. C'est vrai? (j'utiliserai quand meme ptdr, personne va venir toquer chez moi a 6h car j'ai fais une commande pour voir mon emplois du temps ptdr)

TL;DR Si Index Education veut nous parler RGPD et CNIL, on en parlera: ils ont un monopole sur le marché, en tout cas en France, et ont eu plusieurs fuites de données.

Deux situations possibles:

Petite remarque supplémentaire:

Le problème de Pronote est que c'est un logiciel complexe et pratiquement impossible à remplacer par un logiciel libre: une fois que l'établissement a préparé les emplois du temps avec leur logiciel EDT (qui fonctionne mal, mais mieux que d'autres), ils vont sans réfléchir mettre ces données dans Pronote, et si on voulait changer ça on devrait promouvoir un logiciel libre auprès de gens qui n'en ont pas grand chose à faire. C'est déjà difficile de faire passer Linux auprès de gens qui ont été drogués à Microsoft Windows (drogué = ça n'est pas dans leur intérêt mais ils ne peuvent pas changer facilement).

(bon d'accord, c'était hors sujet)