-
Notifications
You must be signed in to change notification settings - Fork 1
/
gr_anomalia_provincia_di_torino_sempre_disponibile2.py
71 lines (59 loc) · 2.59 KB
/
gr_anomalia_provincia_di_torino_sempre_disponibile2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import time
import logging
import requests
from lxml import html
import winsound
from datetime import datetime
logging.basicConfig(format='%(asctime)s [%(module)s][%(levelname)s] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', level=logging.INFO)
LOGGER = logging.getLogger("main")
URL = \
'https://www.passaportonline.poliziadistato.it/GestioneDisponibilitaAction.do?codop=getDisponibilitaCittadino'
commissariati = {
51: "Torino Barriera di Milano",
53: "Torino Barriera Nizza",
54: "Torino San Donato",
55: "Torino San Paolo",
58: "Torino San Secondo",
59: "Torino Dora",
60: "Torino Madonna di Campagna",
42: "Bardonecchia",
47: "Ivrea",
49: "Rivoli",
57: "Torino Centro",
56: "Torino Borgo Po",
61: "Torino Mirafiori",
# 40: "Questura di Torino"
}
# questura buggata: id = 40; "Questura di Torino"
data_in_cui_ho_una_prenotazione = datetime.strptime('07-04-2023', '%d-%m-%Y')
wrong_dates = ["06/03/2023", "07/03/2023", "08/03/2023", "13/03/2023", "29/03/2023", "03/04/2023", "05/04/2023"]
wrong_questura = "50"
def main():
cookies = {'JSESSIONID': 'ah1-T3cyJZF-FFqsstEJImj2;Secure;HttpOnly'}
while True:
page = requests.get(URL, cookies=cookies)
dom = html.fromstring(page.content)
# LOGGER.info(f"Checking {str(key)}: {commissariati[key]}")
naviga_disponibilita = ""
try:
naviga_disponibilita = \
dom.xpath(f"//table[@class='naviga_disponibilita']//tr//td")[1].text
naviga_disponibilita = naviga_disponibilita.strip()
LOGGER.info(f"Data: {naviga_disponibilita}")
except:
LOGGER.info(f"ERRORE: nessuna data nel navigatore di disponibilitè, forse il glitch è rientrato.")
if naviga_disponibilita != "" and datetime.strptime(naviga_disponibilita, '%d/%m/%Y') < data_in_cui_ho_una_prenotazione:
list_disponibilita = \
dom.xpath(f"//table[@class='list_disponibilita']/tbody/tr/td[@headers='descrizione']/a/@href")
for disponibilita in list_disponibilita[1:]:
if f"idRegista={wrong_questura}&" in disponibilita and naviga_disponibilita in wrong_dates:
continue
else:
LOGGER.info(f"Data disponibile; URL: https://www.passaportonline.poliziadistato.it/{disponibilita}")
time.sleep(7)
if __name__ == '__main__':
start_time = time.time()
main()
elapsed_time = time.time()
print("Total elapsed: %.2f" % elapsed_time)