Un bot che controlla ogni minuto se c'è disponibilità per fare il passaporto sul sito della polizia e ti notifica su discord.
Il bot invia una richiesta API periodicamente all'endpoint https://passaportonline.poliziadistato.it/cittadino/a/rc/v1/appuntamento/elenca-sede-prima-disponibilita, che viene usato normalmente per mostrare le sedi disponibili quando si prova a fare richiesta manualmente.
Una volta trovata disponibilità viene inviato un messaggio tramite webhook su discord, notificando @everyone. Poiché notifica everyone consiglio di impostare il webhook in un canale privato.
Librerie necessarie:
- requests
- discord-webhook (https://pypi.org/project/discord-webhook/)
- datetime
- time
Parametri da impostare:
- provincia: il codice della provincia in cui state cercando disponibilità. Ad esempio BG per Bergamo o MI per Milano.
- webhook_url: l'URL del webhook di discord a cui inviare le notifiche. Per creare un webhook: .1 Vai sul server discord contenente la chat in cui desideri ricevere le notifiche. Devi avere i poteri di amministratore per poter creare un webhook. .2 Vai nelle impostazioni del server > Integrazioni .3 Clicca su Crea Webhook / Visualizza Webhook + Nuovo Webhook .4 Una volta creato puoi modificare l'immagine, il nome ed il canale in cui verranno inviate le notifiche. Una volta selezionato il tutto clicca su copia URL webhook. .5 Incolla l'URL del webhook nel codice python.
I parametri sopra sono da impostare soltanto la prima volta. I seguenti qui sotto sono inerenti alla sessione di autenticazione SPID, quindi potresti dover aggiornare questi token periodicamente poiché hanno una scadenza.
spid_cookie & spid_token
Vai al sito per prenotare il passaporto normalmente, e arriva al passo 2. (Quello dove vedi la lista delle sedi disponibili)
Premi tasto destro + ispeziona elemento e vai nella sezione Network.
Aggiorna la pagina e clicca sulla voce "elenca-sede-prima-disponibilita"
Si aprirà una sezione con delle voci come "Headers", "Payload", "Preview", etc. rimani su Headers. Scorri giù fino alla voce "Request Headers", e copia i seguenti valori:
(sì, tutta sta stringa lunghissima) -> INCOLLA in spid_cookie
Una volta fatto ciò potete eseguire il bot e inizierete a ricevere notifiche ogni volta che vengono trovate disponibilità!