From bf8164fb1f0023a8c95b4bb1be858b2a9e3c1619 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Thu, 23 Nov 2017 09:43:10 -0600 Subject: [PATCH] Add additional information to machine parsable outputs --- speedtest.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/speedtest.py b/speedtest.py index 969c4b8..051c6f1 100755 --- a/speedtest.py +++ b/speedtest.py @@ -827,8 +827,8 @@ class SpeedtestResults(object): to get a share results image link. """ - def __init__(self, download=0, upload=0, ping=0, server=None, opener=None, - secure=False): + def __init__(self, download=0, upload=0, ping=0, server=None, client=None, + opener=None, secure=False): self.download = download self.upload = upload self.ping = ping @@ -836,6 +836,8 @@ class SpeedtestResults(object): self.server = {} else: self.server = server + self.client = client or {} + self._share = None self.timestamp = '%sZ' % datetime.datetime.utcnow().isoformat() self.bytes_received = 0 @@ -924,6 +926,7 @@ class SpeedtestResults(object): 'bytes_sent': self.bytes_sent, 'bytes_received': self.bytes_received, 'share': self._share, + 'client': self.client, } def csv(self, delimiter=','): @@ -935,7 +938,7 @@ class SpeedtestResults(object): row = [data['server']['id'], data['server']['sponsor'], data['server']['name'], data['timestamp'], 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]) return out.getvalue() @@ -972,7 +975,11 @@ class Speedtest(object): self.closest = [] self._best = {} - self.results = SpeedtestResults(opener=self._opener, secure=secure) + self.results = SpeedtestResults( + client=self.config['client'], + opener=self._opener, + secure=secure, + ) @property def best(self): @@ -1476,11 +1483,15 @@ def version(): sys.exit(0) -def csv_header(): +def csv_header(delimiter=','): """Print the CSV Headers""" - print_('Server ID,Sponsor,Server Name,Timestamp,Distance,Ping,Download,' - 'Upload') + row = ['Server ID', 'Sponsor', 'Server Name', 'Timestamp', 'Distance', + 'Ping', 'Download', 'Upload', 'Share', 'IP Address'] + out = StringIO() + writer = csv.writer(out, delimiter=delimiter, lineterminator='') + writer.writerow([to_utf8(v) for v in row]) + print_(out.getvalue()) sys.exit(0)