[Pronote] BETA Pronote 2.2

Bonjour et merci Thibaut pour ton temps et tes efforts.

Comment je fais pour avoir la bonne version de node.js ?

Envoi moi les log des dépendance.

Cdt
Thibaut

Désolé du retard @Thibaut_T

pronotlink_dep.txt (31,4 Ko)

Je suis sur que c’est Node,
Mais les logs étant trop long, je vois pas node,

Tu a accès a ton ssh ?
Si oui tu peux me donné le resultat de node -v ?

Cdt
Thibaut

Bonjour, quelqu’un a réussi à se connecter à Pronote via le Loiret ENT45 ?

L’accès à Pronote pour nous, c’est via cette URL :
https://envole-loiret.ac-orleans-tours.fr/
Connexion avec un compte ATEN
Puis accès à l’application Pronote

Dans mode de connexion, j’ai tenté :

  • Manuel
  • NetOCentre « Académie d’Orléans Tours » : mais je ne pense pas que ce soit ça car le site https://netocentre.fr/ le liste pas les collèges du Loiret 45

J’ai renseigné mes identifiants ATEN

Trop de tentatives donc le site Pronote m’a bloqué temporairement mon IP. Je retesterai plus tard.

Hello,

Pas hasard tu aurais pas poster une demande sur le facebook ?

Cdt
Thibaut

Bonjour. Non.
On serait 2 à bloquer sur l’authentification depuis ENT45 ?

Hello,

Oui car elle existait pas jusqu’à ce matin :wink:
Je viens normalement de la crée. Maintenant il faut vérifier que cela fonctionne.

Ps : J’ai fait a la chance avec mes connaissances des autre aten.
Pps : Met toi en beta et tu devrais avoir le choix pour ton ent.

Cdt
Thibaut

Merci.

Je suis donc passé en Beta

  • réinstallation des dépendances

Maintenant j’ai bien ATEN Académie d’Orléans Tours
Je renseigne l’Url de pronote (testé OK en la saisissant directement dans un navigateur)
Mes identifiants
Type de compte : Parent
Enfant : ça m’affiche « Entrée des identifiant Valide »

Il faudrait corriger le message en « Entrez des identifiants valides »
J’imagine que ça veux dire que mes identifiants ne fonctionnent pas ?
Pourtant je pointe bien sur le bon pronote vu que ça me bloque l’accès si trop de tentatives incorrectes

En message d’erreur, j’ai : « Request failed with status code 500 »

Ok,
Donc j’ai fait une erreur,
Peux tu me donné les logs en debug (les 2 (Pas les dépendances))

Cdt
Thibaut

La log Pronotlink boucle sur :

[2020-10-12 15:02:04][DEBUG] : Token :
[2020-10-12 15:02:04][DEBUG] : SetKeepAlive
[2020-10-12 15:02:04][DEBUG] : Fetch
[2020-10-12 15:02:04][DEBUG] : Get Token
[2020-10-12 15:02:04][DEBUG] : Fetch
[2020-10-12 15:02:04][ERROR] : Request failed with status code 500
[2020-10-12 15:02:04][ERROR] : Request failed with status code 500
[2020-10-12 15:02:04][DEBUG] : Fetch result : {"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500
at createError (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/core/createError.js:16:15)
at settle (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/adapters/http.js:236:11)
at IncomingMessage.emit (events.js:326:22)
at endReadableNT (_stream_readable.js:1223:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)","config":{"url":"https://seshat.ac-orleans-tours.fr:8443/identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0","method":"get","headers":{"Accept":"application/json, text/plain, */*","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0","Content-Type":"","Cookie":""},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxRedirects":0}}
[2020-10-12 15:02:04][ERROR] : Request failed with status code 500
[2020-10-12 15:02:04][DEBUG] : Token : {"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500
at createError (\/var\/www\/html\/plugins\/pronotlink\/resources\/node_modules\/axios\/lib\/core\/createError.js:16:15)
at settle (\/var\/www\/html\/plugins\/pronotlink\/resources\/node_modules\/axios\/lib\/core\/settle.js:17:12)
at IncomingMessage.handleStreamEnd (\/var\/www\/html\/plugins\/pronotlink\/resources\/node_modules\/axios\/lib\/adapters\/http.js:236:11)
at IncomingMessage.emit (events.js:326:22)
at endReadableNT (_stream_readable.js:1223:12)
at processTicksAndRejections (internal\/process\/task_queues.js:84:21)","config":{"url":"https:\/\/seshat.ac-orleans-tours.fr:8443\/identite\/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0","method":"get","headers":{"Accept":"application\/json, text\/plain, *\/*","User-Agent":"Mozilla\/5.0 (X11; Linux x86_64; rv:59.0) Gecko\/20100101 Firefox\/59.0","Content-Type":"","Cookie":""},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxRedirects":0}}
[2020-10-12 15:02:04][DEBUG] : Token :
[2020-10-12 15:02:04][DEBUG] : SetKeepAlive
[2020-10-12 15:02:04][DEBUG] : Fetch
[2020-10-12 15:02:04][DEBUG] : Get Token
[2020-10-12 15:02:04][DEBUG] : Fetch
[2020-10-12 15:02:04][ERROR] : Request failed with status code 500

et le PronotLink_Node boucle sur un trio Request / Response / Error :

  request: ClientRequest {
    _events: [Object: null prototype] {
      error: [Function: handleRequestError],
      prefinish: [Function: requestOnPrefinish]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: true,
      _SNICallback: null,
      servername: 'seshat.ac-orleans-tours.fr',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'seshat.ac-orleans-tours.fr',
      _readableState: [ReadableState],
      readable: true,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(asyncId)]: 355747,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object]
    },
    connection: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: true,
      _SNICallback: null,
      servername: 'seshat.ac-orleans-tours.fr',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'seshat.ac-orleans-tours.fr',
      _readableState: [ReadableState],
      readable: true,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(asyncId)]: 355747,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0 HTTP/1.1
' +
      'Accept: application/json, text/plain, */*
' +
      'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0
' +
      'Content-Type: 
' +
      'Cookie: 
' +
      'Host: seshat.ac-orleans-tours.fr:8443
' +
      'Connection: close
' +
      '
',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      maxTotalSockets: Infinity,
      totalSocketCount: 2,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    insecureHTTPParser: undefined,
    path: '/identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      readable: false,
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [TLSSocket],
      connection: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      headers: [Object],
      rawHeaders: [Array],
      trailers: {},
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 500,
      statusMessage: 'Internal Server Error',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular],
      [Symbol(kCapture)]: false
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'seshat.ac-orleans-tours.fr',
    protocol: 'https:',
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'user-agent': [Array],
      'content-type': [Array],
      cookie: [Array],
      host: [Array]
    }
  },
  response: {
    status: 500,
    statusText: 'Internal Server Error',
    headers: {
      date: 'Mon, 12 Oct 2020 13:03:41 GMT',
      server: 'Twisted/10.0.0 TwistedWeb/[twisted.web2, version 8.1.0]',
      'content-length': '201',
      'content-type': 'text/html; charset=UTF-8',
      connection: 'close'
    },
    config: {
      url: 'https://seshat.ac-orleans-tours.fr:8443/identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      maxRedirects: 0,
      data: undefined
    },
    request: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      connection: [TLSSocket],
      _header: 'GET /identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0 HTTP/1.1
' +
        'Accept: application/json, text/plain, */*
' +
        'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0
' +
        'Content-Type: 
' +
        'Cookie: 
' +
        'Host: seshat.ac-orleans-tours.fr:8443
' +
        'Connection: close
' +
        '
',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      insecureHTTPParser: undefined,
      path: '/identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'seshat.ac-orleans-tours.fr',
      protocol: 'https:',
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: '<html><head><title>Internal Server Error</title></head><body><h1>Internal Server Error</h1>An error occurred rendering the requested page. More information is available in the server log.</body></html>'
  },
  isAxiosError: true,
  toJSON: [Function]
}
Error during request handling :
Error: Request failed with status code 500
    at createError (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/var/www/html/plugins/pronotlink/resources/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1223:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  config: {
    url: 'https://seshat.ac-orleans-tours.fr:8443/identite/discovery?idp_ident=urn:fi:ac-orleans_EXT:ts:1.0',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0',
      'Content-Type': '',
      Cookie: ''
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus],
    maxRedirects: 0,
    data: undefined
  },

Peut-être un élément de réponse ? Opération de maintenance sur l’URL trouvée dans les logs
(Pourtant l’appli pronote et le site fonctionnent toujours)

Normal, la tu vois l’url sans le port et les caractère.

Je suis en train de voir pourquoi l’api arrive pas a le géré.

cdt
Thibaut

Donc tu dois adapter ton code à chaque académie ?
Sacré boulot, bon courage !

Dommage que ce ne soit pas uniformisé :zipper_mouth_face:

Merci à toi en tout cas

Oui et non, oui je doit adapter mon code, et pas a chaque académie, mais a chaque moyen de connexion de chaque académies …

Et oui, sa c’est l’éducation national, pourquoi faire simple quand on peux faire compliqué.

Cdt
Thibaut

2 « J'aime »

Hello,

La question est surtout pourquoi vous utiliser les commande que vous nous montrée,
Celle ci sont juste la mémoire du plugin pour l’affichage du panel et le traitement des informations.
Voila pourquoi elle sont nommé Json. Car c’est le format que vous avez.

Cdt
Thibaut

Ps : Possible de mettre le json en mode code
Voir même de le delete car il y a des information personnel dedans.

1 « J'aime »

Bonjour,

Pour que la communauté puisse t’aider, je t’invite à lire ce post, Merci

Sans cela vous risquez de ne pas avoir beaucoup d’aide.

1 « J'aime »

merci pour ton aide et ta recherche pour developper ce plugin et plus particulièrement sur cette académie :wink:
Alexis RDT

2 « J'aime »

Bonjour,
Nouvelle Stable :

  • Ajout du CAS : La Classe “Académie de Lyon”
  • Ajout de la commande : Premier cour aujourdhui
  • Ajout de la commande : Dernier cour aujourdhui
  • Ajout de la commande : Premier cour demain
  • Ajout de la commande : Dernier cour demain
  • Ajout de la commande : Premier Cour Aujourdhui Début
  • Ajout de la commande : Dernier Cour Aujourdhui Début
  • Ajout de la commande : Premier Cour Aujourdhui Fin
  • Ajout de la commande : Dernier Cour Aujourdhui Fin
  • Ajout de la commande : Premier Cour Demain Début
  • Ajout de la commande : Dernier Cour Demain Début
  • Ajout de la commande : Premier Cour Demain Fin
  • Ajout de la commande : Dernier Cour Demain Fin
  • Modification : Les devoirs recup seront entre -1 jour et +21 jours
  • DEBUG : Debug Notes ecran Principal
  • DEBUG : Correction des erreurs du panel (“Invalid argument supplied for foreach())
  • DEBUG : Error plugins/pronotlink/desktop/php/panel/panel_dashbord.php on line 49
  • DEBUG : CAS de Caen
  • DEBUG : Notation max sur une note
  • DEBUG : Correction de plusieurs problèmes de refresh

Ajout de l’onglet Action notes :

  • Exécution des actions à chaque note
  • Ajout des scenarios préremplis avec les tags suivants : Date : #date#, Titre : #title#, Sujet : #subject#, Classe Min : #minClasse#, Classe Max : #maxClasse#, Classe Moyen : #moyenne#, Coef : #coef#, Notes : #note#, Notes Maximal : #max#, Equipement ID : #equip#
  • Ajout d’un bouton pour tester les scénarios

Ajout de l’onglet Action Competence :

  • Exécution des actions à chaque note
  • Ajout des scenarios préremplis avec les tags suivants : Date : #date#, Name: #name#, Subject: #subject#, Long: #long#, Short: #short#, Coef : #coef#, Equip : #equip#
  • Ajout d’un bouton pour tester les scénarios

Pour les personne qui était en beta pour des bug qui ont été résolut,
peuvent repasser en stable.
Si vous avez un bug avec la stable, je vous laisse ouvrir un sujet ici même avec vos logs et une description pour reproduire cotre problème.

La doc avec l’explication des nouvelle fonctionnalité arrive au plus vite. Mais vous pouvez déjà remercier @coke et @Toms pour leur aide sur cette partie.

Le plugin pronote View sortira dès que l’on auras fini la doc.

Cdt
Thibaut

Ps : Pour ce qui ont pas encore leur cas ou autre, je vais rouvrir un sujet pour la BETA suivant.
Hésité pas a me remettre vos erreur pour que je les corrige.

Pps : Je ferme ce sujet voici le lien pour la prochaine BETA :

Cdt
Thibaut

2 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.