diff --git a/transphase/transphase.py b/transphase/transphase.py index 8d42555..4865bf0 100644 --- a/transphase/transphase.py +++ b/transphase/transphase.py @@ -1,17 +1,23 @@ import json import asyncio +import sys, time from quart import Quart, websocket peer_list = {} +TRANSFERRED_DATA = 0 app = Quart(__name__) +def get_var_size(var): + return sys.getsizeof(var) / (1024 * 1024) + @app.route("/") async def retmain(): return f"Ready to relay\n" @app.websocket("/ws") async def handle_websockets(): + global TRANSFERRED_DATA peer_group_id = None while True: try: @@ -25,9 +31,18 @@ async def handle_websockets(): for peer in peer_list[peer_group_id]: if peer != websocket._get_current_object(): await peer.send(message) + TRANSFERRED_DATA = round(TRANSFERRED_DATA + get_var_size(message)) except asyncio.exceptions.CancelledError: peer_list[peer_group_id].remove(websocket._get_current_object()) if len(peer_list[peer_group_id]) < 1: peer_list.pop(peer_group_id) +@app.route("/stats") +async def return_stats(): + process_start_time = time.process_time() + current_time = time.time() + uptime = current_time - process_start_time + resp = f"

Uptime: {uptime}

Transferred: {TRANSFERRED_DATA} MB

" + return resp + app.run() \ No newline at end of file