From 5874e1731bd4c003cfdc0f10017d3418b5707e69 Mon Sep 17 00:00:00 2001 From: StevenRafft Date: Fri, 8 Sep 2023 19:33:12 +0300 Subject: [PATCH] midsave --- experiments/adminpanel/gui/general.py | 4 ++-- experiments/adminpanel/gui/views/index.py | 2 ++ experiments/adminpanel/gui/views/players.py | 17 +++++++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/experiments/adminpanel/gui/general.py b/experiments/adminpanel/gui/general.py index 23296e6..5101ca0 100644 --- a/experiments/adminpanel/gui/general.py +++ b/experiments/adminpanel/gui/general.py @@ -12,7 +12,7 @@ def disassemble_packet(message): else: return None -connection = None +connection: wsc.ClientConnection def websocket_loop(msgcallback, playercallback): global connection connection = wsc.connect("ws://localhost:1337") @@ -20,7 +20,7 @@ def websocket_loop(msgcallback, playercallback): while True: data = connection.recv() - ctype, content = disassemble_packet(data) + ctype, content = disassemble_packet(data) # type: ignore print(f"Packet type: {ctype}") print(f"Packet content: {content}") diff --git a/experiments/adminpanel/gui/views/index.py b/experiments/adminpanel/gui/views/index.py index 0d78da1..e2d3c86 100644 --- a/experiments/adminpanel/gui/views/index.py +++ b/experiments/adminpanel/gui/views/index.py @@ -2,6 +2,8 @@ from flet_route import Params, Basket def IndexView(page: ft.Page, params: Params, basket: Basket): + # TODO: disable when not connected yet + return ft.View( "/", controls=[ diff --git a/experiments/adminpanel/gui/views/players.py b/experiments/adminpanel/gui/views/players.py index 0c8cad9..b30a576 100644 --- a/experiments/adminpanel/gui/views/players.py +++ b/experiments/adminpanel/gui/views/players.py @@ -3,11 +3,11 @@ from general import websocket_send, assemble_packet import json, base64 -gpage = None -playersList = None +gpage: ft.Page +playersList: ft.ListView class Player(ft.Row): - def __init__(self, name: str, char: str, fur: str, roasts: int, deaths: int, team: int): + def __init__(self, name: str, char: str, fur: bytes, roasts: int, deaths: int, team: int): super().__init__() self.name = name @@ -19,11 +19,15 @@ def __init__(self, name: str, char: str, fur: str, roasts: int, deaths: int, tea furC = fur[2] furD = fur[3] - self.vertical_alignment = "start" + self.vertical_alignment = "start" # type: ignore self.controls = [ ft.Row([ ft.Image(src=f"https://jj2multiplayer.online/fur/?a={furA}&b={furB}&c={furC}&d={furD}&char={char}&frame=3"), - ft.Text(name, selectable=True), + ft.Text(name), + ft.Text(value=f"{roasts} roasts", text_align=ft.TextAlign.RIGHT), + ft.Text(value=f"{deaths} deaths", text_align=ft.TextAlign.RIGHT), + # TODO: green and yellow + ft.Text(value=f"{'red' if team == 1 else 'blue'} team", text_align=ft.TextAlign.RIGHT), ], tight=True, spacing=5) ] @@ -31,6 +35,7 @@ def __init__(self, name: str, char: str, fur: str, roasts: int, deaths: int, tea def on_player(content): global playersList, gpage players = json.loads(content) + playersList.controls = [] for data in players: print(json.dumps(data, indent=2)) @@ -46,7 +51,7 @@ def PlayersView(page: ft.Page, params: Params, basket: Basket): websocket_send(assemble_packet("request", "players")) return ft.View("/players", [ - ft.AppBar(leading=ft.Icon(ft.icons.PALETTE), + ft.AppBar(leading=ft.Icon(ft.icons.LIST_ROUNDED), leading_width=40, title=ft.Text("Player list"), center_title=False,