This program calculates up and downspeed of a given connection for as long as it is running.
#upspeed/downspeed indicator
#written by Chubak -> aurlito@riseup.net
import requests
import time
import os
def get_seconds(datetime):
    time = datetime.split(' ')[3].split(':')
    time_hours = int(time[0])
    time_minutes = int(time[1])
    time_seconds = int(time[2])
    return time_hours*360 + time_minutes*60 + time_seconds
def downspeed():
    url = "http://speedtest.ftp.otenet.gr/files/test100k.db"
    current_seconds = get_seconds(time.asctime())
    file = requests.get(url)
    headers = file.headers
    file_size = int(headers['Content-Length'])/1000
    dl_seconds = get_seconds(time.asctime())
    time_difference = dl_seconds - current_seconds
    return round(file_size / time_difference)
def upspeed():
    current_seconds = get_seconds(time.asctime())
    dummy_file = os.path.join(os.getenv('APPDATA'), 'dummy.txt')
    post_url = 'http://httpbin.org/post'
    with open(dummy_file, 'wb') as dummy:
        for i in range (1500):
            dummy.write(str.encode('This is a dummy text. Its sole propose is being uploaded to a server. '))
        dummy.close()
    files = {'file' : open(dummy_file, 'rb')}
    request = requests.post(post_url, data=files)
    headers = request.headers
    file_size = int(headers['Content-Length'])/1000
    dl_seconds = get_seconds(time.asctime())
    time_difference = dl_seconds - current_seconds
    return round(file_size / time_difference)
if __name__ == '__main__':
    while True:
        up = None
        down = None
        if up == None and down == None:
            up = upspeed()
            down = downspeed()
            print('At {0} your Downspeed is: {1}, and your Upspeed is: {2}'.format(time.asctime(), down, up))
            time.sleep(5)
            up = None
            down = None
I'd appreciate it if your dropped any hints about turning this into a desktop widget.
No comments:
Post a Comment
Thanks for your comments