hermescenter / monitorapa

Lo sviluppo continua su https://github.com/MonitoraPA/monitorapa/
https://monitora-pa.it
Other
27 stars 21 forks source link

Draft: check http and https #23

Closed archistico closed 2 years ago

Shamar commented 2 years ago

Ciao @archistico ottimo codice, è leggibilissimo.

Come ti accennava @Anulo2 in chat ci sono delle piccole modifiche da fare per integrare il tuo script nel sistema.

Te li accenno brevemente, poi appena possibile ne parliamo in chat o via email.

  1. lo scaricamento del file enti è già delegato al point1.py (si chiamano point1, 2, 3 etc... perché vanno eseguiti in sequenza).
  2. l'output va collocato in una sottocartella dedicata al tuo script in out/YYYY-MM-DD (che viene creata dal point1).

La struttura di queste cartelle di output però va rivista perché tu non stai usando selenium, mentre noi avevamo previsto solo verifiche fatte dentro il browser. Anche l'uso convenzionale dei parametri al momento è largamente subottimale e si basava sulla stessa erronea assunzione.

la struttura dovrebbe diventare qualcosa tipo

out/
  YYYY-MM-DD/
    enti.tsv
    check/
       js/ <- qui mettiamo l'output dell'attuale point2 che rinomineremo ./cli/check/js.py
         google_analytics/ <- qui metteremo l'output dell'esecuzione di  ./cli/check/js.py google_analytics.js
         google_font/  <- qui metteremo l'output dell'esecuzione di  ./cli/check/js.py google_font.js
       http/ <- qui metteremo l'output dell'esecuzione del tuo script, 
                   che si chiamerà qualcosa come ./cli/check/http.py
       smtp/ <- qui metteremo l'output dell'esecuzione di un ipotetico ./cli/check/smtp
       ...
    formats/  <- qui metteremo l'output di quello che adesso è il point3, 
                   che trasforma l'output dei diversi check nei formati che ci interessano
    report/ <- qui metteremo l'output di uno script che genera lo zip
                    che attualmente pubblichiamo sul sito partendo dalle cartelle
    notifications.log <- qui metteremo i log dell'attuale point4.py, che invia le PEC

Tutti gli script successivi al point1.py (che rinomineremo ./cli/download.py) prenderanno come primo argomento il path del file enti.tsv di riferimento e si baseranno su quello per decidere dove collocare il proprio output.

Tutto questo ovviamente presuppone un nuovo layout del repository e non credo di riuscire a sistemarlo prima di un paio di giorni.

Quindi ti proporrei di accettare la tua PR così come è e poi, se vuoi, puoi e te la senti, di affidarti tale riorganizzazione. Ovviamente con il supporto mio e di @Anulo2, o via Matrix o via email.

In alternativa puoi scrivere il tuo output secondo il modello di repository attuale, ovvero dentro una cartella out/ YYYY-MM-DD/http/ e poi lo rifattoriziamo insieme al resto.

Cosa ne pensi?

archistico commented 2 years ago

Sì perfetto. Cercherò di riorganizzare il tutto e di usare selenium e la nuova struttura. Riguardo ai tempi: da giovedì in avanti sono molto più libera per cui potrò occuparmene.