Skip to content

Commit

Permalink
Cleanup a little bit
Browse files Browse the repository at this point in the history
  • Loading branch information
Ketok4321 committed Aug 21, 2023
1 parent 5d40bf7 commit 17e7749
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 38 deletions.
72 changes: 36 additions & 36 deletions src/speedtest.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,37 @@

garbage = os.urandom(UPLOAD_SIZE * 1000 * 1000)

class GarbageReader(io.IOBase):
def __init__(self, read_callback=None):
self.__read_callback = read_callback
super().__init__()
self.length = len(garbage)
self.pos = 0

def seekable(self):
return True

def writable(self):
return False

def readable(self):
return True

def tell(self):
return self.pos

def read(self, size=None):
if not size:
size = self.length - self.tell()

old_pos = self.tell()
self.pos = old_pos + size

if self.__read_callback:
self.__read_callback(size)

return garbage[old_pos:self.pos]

class Server:
def __init__(self, name, server, pingURL, dlURL, ulURL, **_):
if not (server.startswith("https:") or server.startswith("http:")):
Expand All @@ -27,7 +58,7 @@ def __init__(self, name, server, pingURL, dlURL, ulURL, **_):
self.downloadURL = urljoin(server + "/", dlURL)
self.uploadURL = urljoin(server + "/", ulURL)

async def get_servers(): #TODO: do this in the background
async def get_servers():
async with aiohttp.ClientSession() as session:
async with session.get("https://librespeed.org/backend-servers/servers.php") as response:
servers = await response.json()
Expand All @@ -50,37 +81,6 @@ async def check_server(server):
except (aiohttp.ClientError, asyncio.TimeoutError):
server.ping = -1

class GarbageReader(io.IOBase):
def __init__(self, read_callback=None):
self.__read_callback = read_callback
super().__init__()
self.length = len(garbage)
self.pos = 0

def seekable(self):
return True

def writable(self):
return False

def readable(self):
return True

def tell(self):
return self.pos

def read(self, size=None):
if not size:
size = self.length - self.tell()

old_pos = self.tell()
self.pos = old_pos + size

if self.__read_callback:
self.__read_callback(size)

return garbage[old_pos:self.pos]

async def ping(server): #TODO: jitter and other stuff
async with aiohttp.ClientSession() as session:
pings = []
Expand All @@ -98,11 +98,11 @@ async def download(server, total):
total[0] += len(data)

async def upload(server, total):
def callback(size):
total[0] += size

async with aiohttp.ClientSession() as session:
while True:
def callback(size):
total[0] += size
reader = GarbageReader(callback)
async with session.post(server.uploadURL, headers=HEADERS, data=reader) as response:
while reader.tell() < reader.length - 1:
await asyncio.sleep(0)
await response.read()
2 changes: 0 additions & 2 deletions src/speedtest_worker.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import threading
import asyncio
import gi
import time

from gi.repository import GLib
Expand Down Expand Up @@ -79,7 +78,6 @@ def update(self, gauge, part_two):
return not self.stop_event.is_set()

async def perform_test(self, test, streams):
#GLib.idle_add(self.win.test_view.progress.set_fraction, 0)
GLib.idle_add(self.win.test_view.progress.set_visible, True)

self.start_time = time.time()
Expand Down

0 comments on commit 17e7749

Please sign in to comment.