dathosim / Pronote2Homeassistant

Tuto et bout de code pour ajouter des éléments de Pronote dans Home assistant
Apache License 2.0
40 stars 20 forks source link

Discussion sur l'API #6

Closed ghost closed 2 years ago

ghost commented 2 years ago

Bonjour @dathosim, ceci n'est pas une issue mais est-ce que je peux vous contacter pour de l'aide avec l'API Pronote de bain3 ?

dathosim commented 2 years ago

Oui! Je suis joignable ici... Comment puis-je vous aider ?

dathosim commented 2 years ago

Oui! Je suis joignable ici... Comment puis-je vous aider ?

ghost commented 2 years ago

Je souhaite extraire les infos de l'utilisateur avec pronotepy.dataClasses.Student sauf que je suis très paumé en terme d'API et je ne trouve pas mon problème. Je ne connais pas la commande qui permet d'utiliser ces attributs. image image

dathosim commented 2 years ago

Alors, je n'ai pas exploré toute la lib pronotepy et je suis pas un pur dev python donc je ne suis pas sûr de pouvoir t'aider... Mais déjà je vois une erreur dans ton code qui est souligné : student et non Student avec la majuscule... Aussi je te conseille si ce n'est pas déjà le cas d'utiliser l'éditeur Visual Studio Code : ça permet de faire de l'autocompletion Voilà

vingerha commented 2 years ago

My 2 cents.... En fait... sans savoir la source c'est difficile de tenter comment extraire car aussi pronotepy est une adaptation et ne couvre pas tous les fonctions. Moi, j'ai essaié pendant des heures pour les Student / Identity sans progrès et finalement, j'ai décidé que je connait mes enfants mieux que pronote...abandonné. Ajoutant des nouveautés (pour moi) car l'un de mes enfants a des 'notes' et l'autre (plus jeune) que des 'evaluations'. Pour soutenir mes demandes, je suis en train de mettre 'beaucoup' dans un sqlite-db pour une publication par mqtt. Le REST ne marche pas tous le temps (pour moi)... ,mais je vais garder l'esprit de dathosim dedans et j 'espère de finir dans quelques semaines.

dathosim commented 2 years ago

En effet, j'ai regardé aussi...et il manque des méthodes dans le fichier clients.py de la Pronotepy Il n'y a rien d'implémenter pour récupérer les "identity"

vingerha commented 2 years ago

je vais voir avec bainf s'il veut partager comment il a obtenu ces infos.

ghost commented 2 years ago

Après une conversation avec bain3, pronotepy.dataClasses.Identity ne marche que pour les comptes Vie Scolaires. J'utilise client.parametres_utilisateur pour récupérer mon nom complet, ma classe et mon établissement.

image

Lorsque j'ouvre le fichier json, je me retrouve avec 5 fois les memes infos.

image

Comment je fais pour qu'il affiche une seule fois ?

vingerha commented 2 years ago

Je suis en route, retour des vacances et je vais voir demain .... et merçi pour avoir contacté le czech :)

ghost commented 2 years ago

bain3 propose d'utiliser client.info pour récupérer les informations :

Après si vous êtes aventureux, vous pouvez utiliser client.parametres_utilisateur qui contient + d'infos (proposé par drawbot qui a développé un bot Discord avec l'API de bain3).

ghost commented 2 years ago

dathosim, pouvez-vous regarder mon problème en haut ? Mon script a imprimé 5 fois les memes infos dans le fichier .json, désolé je ne suis pas familier avec JSON.

vingerha commented 2 years ago

essaie de ne pas itérer...enlever le for-loop

ghost commented 2 years ago

image

Merci beaucoup, ça a marché !

ghost commented 2 years ago

Bonjour, désolé de vous déranger encore une fois. Est-ce que l'un d'entre vous a pu programmer quelque chose permettant de montrer l'évolution d'une moyenne (par exemple, moyenne générale ou d'une matière) au fur des notes ? Cordialement, jusdecitron.

vingerha commented 2 years ago

Il y a déjà beaucoup dans les données, svp de me preciser un peu plus ce que vous chercher. Moi, je suis ent train de créer un Interface pronotepy>mqtt>homeassistant. Dans cela je couvre moyennes (averages). On peut iterer client.periods.averages, ça donne (copié/collé): self.student: str = self._resolver(Util.grade_parse, "moyEleve", "V") self.out_of: str = self._resolver(Util.grade_parse, "baremeMoyEleve", "V") self.default_out_of: str = self._resolver(Util.grade_parse, "baremeMoyEleveParDefault", "V", default="") self.class_average: str = self._resolver(Util.grade_parse, "moyClasse", "V") self.min: str = self._resolver(Util.grade_parse, "moyMin", "V") self.max: str = self._resolver(Util.grade_parse, "moyMax", "V")

889laurent commented 2 years ago

bonsoir a tous, une petite question pour la gestion des cas. J'utilise le cas AGORA 06 qui est dans pronotepy. Comment le rajouter. J'ai fait

import pronotepy
from pronotepy.ent import cas_agora06_educonnect
eleve="*****" #nom de votre enfant - ne sert que pour le nom du fichier json
prefix_url = "notes.clg-saint-blaise.ac-nice.fr/" # sert au prefix de l'url https://PREFIX.index-education.net/pronote/
username="***" #utlisateur pronote  - a remplacer par le nom d'utilisateur pronote de l'élève
password="***" # mot de passe pronote - a remplacer par le mot de passe du compte de l'élève
ent="cas_agora06_educonnect"

index_note=0 
limit_note=11 #nombre max de note à afficher + 1 
longmax_devoir = 125 #nombre de caractère max dans la description des devoirs

#Connection à Pronote 
client = pronotepy.Client('http://'+prefix_url+'pronote/eleve.html?login=true', username, password, ent)

mais message erreur

vingerha commented 2 years ago

Je pense que vous avez reçu un email sur les changements.... alors le CAS à aussi changé, il faut adapter ENT.py avec 'selection=ATS-NICE'

... 
     https://cas.agora06.fr/login?selection=ATS-NICE
ghost commented 2 years ago

Bonjour à vous deux et ceux qui passent par cette issue, Je vous propose qu'on fasse un canal Slack pour parler plus de l'API de bain3. Je pense pas qu'une issue est un endroit approprié pour une discussion :)

Lien d'invitation au canal Slack : https://join.slack.com/t/pronoteapi-discussion/shared_invite/zt-19bzgnq8w-r6pcJ_RY8vB~K6Kf8XL6rA