diff --git a/speedtest/speedtest.py b/speedtest/speedtest.py new file mode 100644 index 0000000..d3f4e78 --- /dev/null +++ b/speedtest/speedtest.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python2 + +import hashlib +import os +import sys + +__author__ = 'ty' + +import re +import time +from datetime import datetime +from datetime import timedelta +from nvd3 import lineWithFocusChart + +MAX_SPEED = 5000 + + +class SpeedObject: + def __init__(self, _date, _uri, _speed): + self.date = _date + self.uri = _uri + self.speed = _speed + +directory = sys.argv[1] +name = sys.argv[2] +test_duration = sys.argv[3] + +with open(directory+"/"+name+".txt", 'r') as content_file: + content = content_file.read() + +tests = content.split('#######################') + +date = datetime +uri = "" + +testDict = {} + +for test in tests: + try: + item = re.findall("--.*", test, re.MULTILINE)[0] + time_s = item.split(' ')[0] + uri = item.split(' ')[1] + date = datetime.strptime(time_s, '--%Y-%m-%d %H:%M:%S--') + + print date + print uri + + if uri in testDict: + speedList = testDict[uri] + else: + speedList = [] + testDict[uri] = speedList + + speeds = re.findall(".*%.*", test, re.MULTILINE) + + if len(speeds) == 0: + continue + else: + delta = float(test_duration) / len(speeds) + + speedList.append(SpeedObject(date + timedelta(0, -3), uri, "10K")) + + for speed in speeds: + speed = speed.split('% ')[1].strip().split(' ')[0] + + if "M" in speed: + speed_i = float(speed.split('M')[0]) * 1024 + if speed_i > MAX_SPEED: + continue + speed = str(speed_i) + 'K' + + speedList.append(SpeedObject(date, uri, speed)) + date = date + timedelta(0, delta) + print speed + speedList.append(SpeedObject(date + timedelta(0, 3), uri, "10K")) + + except IndexError as e: + pass + + +output_file = open(directory+'/'+name+'.htm', 'w') + +chart_name = "Speed Test" +chart = lineWithFocusChart(name=chart_name, width=1024, color_category='category20b', x_is_date=True, + x_axis_format="%d %b %Y %H") + +title = "\n\n