Add stats

This commit is contained in:
Pedro de Oliveira 2017-10-23 04:08:14 +01:00
parent e1d87143c9
commit bda86cbf71
1 changed files with 48 additions and 24 deletions

View File

@ -64,7 +64,7 @@ def page_cable_settings(cookies):
if __name__ == "__main__":
FIELDS = {
'download': ['snr_val_dn', 'power_val_dn', 'freq_val_dn'],
'download': ['snr_val_dn', 'power_val_dn', 'freq_val_dn', 'rx_id_val_dn'],
'upload': ['power_val_up', 'freq_val_up', 'cannel_id_val_up'],
}
@ -76,16 +76,19 @@ if __name__ == "__main__":
COOKIES = login()
while True:
START1 = datetime.now()
print(datetime.now(), "Request page")
REQ = page_cable_settings(COOKIES)
print(datetime.now(), "Got page")
START2 = datetime.now()
print(datetime.now(), "Started parsing")
UTS = (datetime.strptime(REQ.headers['Date'],
'%a, %d %b %Y %H:%M:%S %Z') + timedelta(hours=1)
).strftime('%Y-%m-%d %H:%M:%S')
CNX = dbconnect()
CURSOR = CNX.cursor()
print(datetime.now(), "Connected to DB")
DOWN = []
UP = []
for CHAN in range(0, 8):
CHANNEL = {}
@ -94,15 +97,7 @@ if __name__ == "__main__":
MATCHES = re.search(REGEX % (FIELD, str(CHAN)), REQ.text)
if MATCHES:
CHANNEL[FIELD] = MATCHES.group(3).replace(' dBmV', '').replace(' dB', '').replace(' MHz', '')
try:
CURSOR.execute(INSERT, (UTS, 0, CHAN,
CHANNEL['freq_val_dn'],
CHANNEL['power_val_dn'],
CHANNEL['snr_val_dn']))
print(datetime.now(),
"Inserting downstream channel %d to DB" % (CHAN))
except (mysql.connector.IntegrityError, KeyError) as err:
pass
DOWN.append(CHANNEL)
for CHAN in range(0, 2):
CHANNEL = {}
@ -110,19 +105,48 @@ if __name__ == "__main__":
MATCHES = re.search(REGEX % (FIELD, str(CHAN)), REQ.text)
if MATCHES:
CHANNEL[FIELD] = MATCHES.group(3).replace(' dBmV', '').replace(' MHz', '')
try:
CURSOR.execute(INSERT, (UTS, 1,
CHANNEL['cannel_id_val_up'],
CHANNEL['freq_val_up'],
CHANNEL['power_val_up'], None))
print(datetime.now(),
"Inserting upstream channel %d to DB" % (CHAN))
except (mysql.connector.IntegrityError, KeyError) as err:
pass
UP.append(CHANNEL)
print(datetime.now(), "Ended parsing")
START3 = datetime.now()
CNX = dbconnect()
CURSOR = CNX.cursor()
print(datetime.now(), "Connected to DB")
for ITEM in DOWN:
try:
CURSOR.execute(INSERT, (UTS, 0,
ITEM['rx_id_val_dn'],
ITEM['freq_val_dn'],
ITEM['power_val_dn'],
ITEM['snr_val_dn']))
except (mysql.connector.IntegrityError) as err:
pass
for ITEM in UP:
try:
CURSOR.execute(INSERT, (UTS, 1,
ITEM['cannel_id_val_up'],
ITEM['freq_val_up'],
ITEM['power_val_up'], None))
except (mysql.connector.IntegrityError, KeyError) as err:
pass
CURSOR.close()
CNX.commit()
print(datetime.now(), "Records inserted")
CURSOR.close()
CNX.close()
print(datetime.now(), "DB connection closed")
print(datetime.now(), "Sleeping")
END = datetime.now()
DELTA1 = START2 - START1
DELTA2 = START3 - START2
DELTA3 = END - START3
print(datetime.now(), "Took %d milliseconds (%d request, %d parsing, %d db)" %
((DELTA3 + DELTA2 + DELTA1).total_seconds() * 100,
DELTA1.total_seconds() * 100,
DELTA2.total_seconds() * 100,
DELTA3.total_seconds() * 100))
print(datetime.now(), "Sleeping\n")
time.sleep(30)