61 lines
1.2 KiB
Python
61 lines
1.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
import speedtest
|
||
|
import csv
|
||
|
import datetime
|
||
|
import mysql.connector
|
||
|
import os
|
||
|
|
||
|
db_config = {
|
||
|
'user': 'm_imp',
|
||
|
'password': '123',
|
||
|
'host': '127.0.0.1',
|
||
|
'database': 'speedtests'
|
||
|
}
|
||
|
|
||
|
try:
|
||
|
cx=mysql.connector.connect(**db_config)
|
||
|
c=cx.cursor()
|
||
|
except mysql.connector.Error as err:
|
||
|
exit('Could not open database')
|
||
|
|
||
|
upload_statement = "INSERT INTO sts (server_id,sponsor,serv_name,time,distance,ping,download,upload) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
|
||
|
|
||
|
try:
|
||
|
s=speedtest.Speedtest()
|
||
|
s.get_servers()
|
||
|
s.get_best_server()
|
||
|
s.download()
|
||
|
s.upload()
|
||
|
d=s.results.dict()
|
||
|
u=(
|
||
|
d['server']['id'],
|
||
|
d['server']['sponsor'],
|
||
|
d['server']['name'],
|
||
|
d['timestamp'],
|
||
|
d['server']['d'], # distance
|
||
|
d['server']['latency'],
|
||
|
d['download'],
|
||
|
d['upload']
|
||
|
)
|
||
|
except speedtest.SpeedtestException:
|
||
|
u=(
|
||
|
None,
|
||
|
str(datetime.datetime.utcnow().isoformat())+'Z',
|
||
|
None,
|
||
|
None,
|
||
|
None,
|
||
|
None,
|
||
|
None,
|
||
|
None
|
||
|
)
|
||
|
|
||
|
try:
|
||
|
c.execute(upload_statement, u)
|
||
|
cx.commit()
|
||
|
except:
|
||
|
cx.rollback()
|
||
|
raise
|
||
|
c.close()
|
||
|
cx.close()
|
||
|
#print("Uploaded" + str(u))
|