From b444147e392919f668464f893a10789eb3053a91 Mon Sep 17 00:00:00 2001 From: Gianluca Romito Date: Sat, 29 Jan 2022 19:23:40 +0100 Subject: [PATCH] aggiunta bolletta windtre --- .gitignore | 3 +++ agsm.py | 73 ++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 63 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index bb520b6..81aa343 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +windtre.py +prova.py + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/agsm.py b/agsm.py index 5b936f0..849d191 100644 --- a/agsm.py +++ b/agsm.py @@ -49,6 +49,9 @@ passwdacq = config.passwdacq loginds = config.loginds passds = config.passds +loginw3 = config.loginw3 +passwdw3 = config.passwdw3 + diskstation = config.diskstation url = 'https://countbox.agsm.it/' @@ -247,15 +250,7 @@ def agsmenergia(): zabbix_send('agsmenergia',0) def acqueveronesi(): - if platform.node() == 'ds7': - try: - subprocess.run(["docker","start", "SeleniumGrid"]) - time.sleep(30) - zabbix_send('dockerstart',1) - except: - logger.error('Avvio docker fallito') - zabbix_send('dockerstart',0) - + try: firefox_options = webdriver.FirefoxOptions() driver = webdriver.Remote( @@ -295,14 +290,52 @@ def acqueveronesi(): importo = importo.replace('€. ','') print('Sacchi', importo) client1.publish('bollette/sacchi/acqua', importo, qos=0,retain=True) #publish - driver.quit() - if platform.node() == 'ds7': - subprocess.run(["docker","stop", "SeleniumGrid"]) zabbix_send('acqueveronesi',1) except: logger.error('Qualcosa è andato storto con acque veronesi') zabbix_send('acqueveronesi',0) +def windtre(): + url = 'https://areaclienti.windtre.it/login' + urlconto = 'https://areaclienti.windtre.it/phx/fixed/conto' + + try: + firefox_options = webdriver.FirefoxOptions() + driver = webdriver.Remote( + command_executor='http://ds7.romito.net:4444', + options=firefox_options + ) + driver.set_page_load_timeout(10) + driver.get(url) + time.sleep(10) + try: + driver.find_element_by_id('close').click() + print('accetto cookie!') + + except: + pass + + driver.find_element_by_id('username').send_keys(loginw3) + driver.find_element_by_id ('password').send_keys(passwdw3) + driver.find_element_by_class_name('btn-login').click() + + time.sleep(10) + + driver.get(urlconto) + time.sleep(10) + l = driver.find_element_by_class_name('invoice-table') + + importo = re.search(r"[0-9][0-9],[0-9][0-9]", l.text).group() + + print(importo) + client1= paho.Client("control1") #create client object + client1.on_publish = on_publish #assign function to callback + client1.connect(mqttbroker,mqttport) #establish connection + client1.publish('bollette/sacchi/windtre', importo, qos=0,retain=True) + zabbix_send('windtre',1) + except: + zabbix_send('windtre',0) + driver.quit() def zabbix_send(item,dato): # Send metrics to zabbix trapper @@ -315,4 +348,18 @@ def zabbix_send(item,dato): agsmenergia() -acqueveronesi() \ No newline at end of file + +if platform.node() == 'ds7': + try: + subprocess.run(["docker","start", "SeleniumGrid"]) + time.sleep(30) + zabbix_send('dockerstart',1) + except: + logger.error('Avvio docker fallito') + zabbix_send('dockerstart',0) + +acqueveronesi() +windtre() + +if platform.node() == 'ds7': + subprocess.run(["docker","stop", "SeleniumGrid"]) \ No newline at end of file