From 6631c7f120aa089a56e93dbc5bbe37c379e2a315 Mon Sep 17 00:00:00 2001 From: StevenRafft Date: Fri, 8 Sep 2023 19:48:01 +0300 Subject: [PATCH] todo: fix shit code --- experiments/adminpanel/gui/general.py | 27 +++++++++++++++++++++-- experiments/adminpanel/gui/main.py | 5 ++--- experiments/adminpanel/gui/views/index.py | 8 +++---- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/experiments/adminpanel/gui/general.py b/experiments/adminpanel/gui/general.py index 5101ca0..d9af641 100644 --- a/experiments/adminpanel/gui/general.py +++ b/experiments/adminpanel/gui/general.py @@ -1,4 +1,5 @@ import websockets.sync.client as wsc +import flet as ft def assemble_packet(type, content): return f"{type}:{content}" @@ -13,9 +14,31 @@ def disassemble_packet(message): return None connection: wsc.ClientConnection -def websocket_loop(msgcallback, playercallback): - global connection +isConnected = False + +def getIsConnected(): + return isConnected + +def websocket_loop(msgcallback, playercallback, page: ft.Page): + global connection, isConnected + isConnected = False connection = wsc.connect("ws://localhost:1337") + isConnected = True + + if page.route == "/": + if page.controls != None: + print("p") + for control in page.controls: # type: ignore + print("a control") + if isinstance(control, ft.Text): + print(f"constrained {control.key}") + if control.key == "isConnected": + print("isConnected!") + control: ft.Text = control + control.value = "Connected: true" + print("found") + + page.update() print("Connected!") while True: diff --git a/experiments/adminpanel/gui/main.py b/experiments/adminpanel/gui/main.py index ac2bfd3..3ae0997 100644 --- a/experiments/adminpanel/gui/main.py +++ b/experiments/adminpanel/gui/main.py @@ -4,7 +4,7 @@ import general import threading -gpage = None +gpage: ft.Page def onmessage(content): if gpage.route == "/chat": @@ -19,11 +19,10 @@ def onplayers(content): from views import players from views import index - threading.Thread(target=general.websocket_loop, args=(onmessage, onplayers)).start() - def main(page: ft.Page): global gpage gpage = page + threading.Thread(target=general.websocket_loop, args=(onmessage, onplayers, page)).start() app_routes = [ path(url="/", clear=False, view=index.IndexView), diff --git a/experiments/adminpanel/gui/views/index.py b/experiments/adminpanel/gui/views/index.py index e2d3c86..2d17fb3 100644 --- a/experiments/adminpanel/gui/views/index.py +++ b/experiments/adminpanel/gui/views/index.py @@ -1,14 +1,14 @@ import flet as ft from flet_route import Params, Basket +from general import getIsConnected def IndexView(page: ft.Page, params: Params, basket: Basket): - # TODO: disable when not connected yet - return ft.View( "/", controls=[ ft.Text("Home page"), - ft.ElevatedButton("Go to chat", on_click=lambda _: page.go("/chat")), - ft.ElevatedButton("Go to players", on_click=lambda _: page.go("/players")), + ft.Text(f"Connected: {getIsConnected()}", key="isConnected"), + ft.ElevatedButton("Go to chat", on_click=lambda _: page.go("/chat"), disabled=False), + ft.ElevatedButton("Go to players", on_click=lambda _: page.go("/players"), disabled=False), ] ) \ No newline at end of file