Add additional information to machine parsable outputs

This commit is contained in:
Matt Martz 2017-11-23 09:43:10 -06:00
parent 3cb44f5630
commit 5a9f82a20a
1 changed files with 12 additions and 5 deletions

View File

@ -827,8 +827,8 @@ class SpeedtestResults(object):
to get a share results image link. to get a share results image link.
""" """
def __init__(self, download=0, upload=0, ping=0, server=None, opener=None, def __init__(self, download=0, upload=0, ping=0, server=None, client=None,
secure=False): opener=None, secure=False):
self.download = download self.download = download
self.upload = upload self.upload = upload
self.ping = ping self.ping = ping
@ -836,6 +836,8 @@ class SpeedtestResults(object):
self.server = {} self.server = {}
else: else:
self.server = server self.server = server
self.client = client or {}
self._share = None self._share = None
self.timestamp = '%sZ' % datetime.datetime.utcnow().isoformat() self.timestamp = '%sZ' % datetime.datetime.utcnow().isoformat()
self.bytes_received = 0 self.bytes_received = 0
@ -924,6 +926,7 @@ class SpeedtestResults(object):
'bytes_sent': self.bytes_sent, 'bytes_sent': self.bytes_sent,
'bytes_received': self.bytes_received, 'bytes_received': self.bytes_received,
'share': self._share, 'share': self._share,
'client': self.client,
} }
def csv(self, delimiter=','): def csv(self, delimiter=','):
@ -935,7 +938,7 @@ class SpeedtestResults(object):
row = [data['server']['id'], data['server']['sponsor'], row = [data['server']['id'], data['server']['sponsor'],
data['server']['name'], data['timestamp'], data['server']['name'], data['timestamp'],
data['server']['d'], data['ping'], data['download'], data['server']['d'], data['ping'], data['download'],
data['upload']] data['upload'], self._share or '', self.client['ip']]
writer.writerow([to_utf8(v) for v in row]) writer.writerow([to_utf8(v) for v in row])
return out.getvalue() return out.getvalue()
@ -972,7 +975,11 @@ class Speedtest(object):
self.closest = [] self.closest = []
self._best = {} self._best = {}
self.results = SpeedtestResults(opener=self._opener, secure=secure) self.results = SpeedtestResults(
client=self.config['client'],
opener=self._opener,
secure=secure,
)
@property @property
def best(self): def best(self):
@ -1480,7 +1487,7 @@ def csv_header(delimiter=','):
"""Print the CSV Headers""" """Print the CSV Headers"""
row = ['Server ID', 'Sponsor', 'Server Name', 'Timestamp', 'Distance', row = ['Server ID', 'Sponsor', 'Server Name', 'Timestamp', 'Distance',
'Ping', 'Download', 'Upload'] 'Ping', 'Download', 'Upload', 'Share', 'IP Address']
out = StringIO() out = StringIO()
writer = csv.writer(out, delimiter=delimiter, lineterminator='') writer = csv.writer(out, delimiter=delimiter, lineterminator='')
writer.writerow([to_utf8(v) for v in row]) writer.writerow([to_utf8(v) for v in row])