refactor: full refactor of how webclient data is handled

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-04-06 15:09:33 +02:00
parent 1484ebf445
commit 06801a47eb
20 changed files with 543 additions and 369 deletions

View File

@@ -16,9 +16,10 @@ from components.moonraker.moonraker_utils import (
)
from components.webui_client.client_utils import (
backup_client_data,
load_client_data,
backup_client_config_data,
)
from components.webui_client.fluidd_data import FluiddData
from components.webui_client.mainsail_data import MainsailData
from core.menus.base_menu import BaseMenu
from utils.common import backup_printer_config_dir
from utils.constants import COLOR_CYAN, RESET_FORMAT, COLOR_YELLOW
@@ -81,16 +82,16 @@ class BackupMenu(BaseMenu):
backup_moonraker_db_dir()
def backup_mainsail(self, **kwargs):
backup_client_data(load_client_data("mainsail"))
backup_client_data(MainsailData().get())
def backup_fluidd(self, **kwargs):
backup_client_data(load_client_data("fluidd"))
backup_client_data(FluiddData().get())
def backup_mainsail_config(self, **kwargs):
backup_client_config_data(load_client_data("mainsail"))
backup_client_config_data(MainsailData().get())
def backup_fluidd_config(self, **kwargs):
backup_client_config_data(load_client_data("fluidd"))
backup_client_config_data(FluiddData().get())
def backup_klipperscreen(self, **kwargs):
pass

View File

@@ -13,6 +13,8 @@ from components.klipper import klipper_setup
from components.moonraker import moonraker_setup
from components.webui_client import client_setup
from components.webui_client.client_config import client_config_setup
from components.webui_client.fluidd_data import FluiddData
from components.webui_client.mainsail_data import MainsailData
from core.menus.base_menu import BaseMenu
from utils.constants import COLOR_GREEN, RESET_FORMAT
@@ -69,13 +71,13 @@ class InstallMenu(BaseMenu):
moonraker_setup.install_moonraker()
def install_mainsail(self, **kwargs):
client_setup.install_client(client_name="mainsail")
client_setup.install_client(MainsailData())
def install_mainsail_config(self, **kwargs):
client_config_setup.install_client_config(client_name="mainsail")
client_config_setup.install_client_config(MainsailData())
def install_fluidd(self, **kwargs):
client_setup.install_client(client_name="fluidd")
client_setup.install_client(FluiddData())
def install_fluidd_config(self, **kwargs):
client_config_setup.install_client_config(client_name="fluidd")
client_config_setup.install_client_config(FluiddData())

View File

@@ -14,9 +14,10 @@ from components.log_uploads.menus.log_upload_menu import LogUploadMenu
from components.moonraker.moonraker_utils import get_moonraker_status
from components.webui_client.client_utils import (
get_client_status,
load_client_data,
get_current_client_config,
)
from components.webui_client.fluidd_data import FluiddData
from components.webui_client.mainsail_data import MainsailData
from core.menus import FooterType
from core.menus.advanced_menu import AdvancedMenu
from core.menus.backup_menu import BackupMenu
@@ -92,15 +93,11 @@ class MainMenu(BaseMenu):
self.mr_status = self.format_status_by_code(mr_code, mr_status, mr_instances)
self.mr_repo = f"{COLOR_CYAN}{moonraker_status.get('repo')}{RESET_FORMAT}"
# mainsail
mainsail_client_data = load_client_data("mainsail")
self.ms_status = get_client_status(mainsail_client_data)
self.ms_status = get_client_status(MainsailData())
# fluidd
fluidd_client_data = load_client_data("fluidd")
self.fl_status = get_client_status(fluidd_client_data)
self.fl_status = get_client_status(FluiddData())
# client-config
self.cc_status = get_current_client_config(
[mainsail_client_data, fluidd_client_data]
)
self.cc_status = get_current_client_config([MainsailData(), FluiddData()])
def format_status_by_code(self, code: int, status: str, count: str) -> str:
if code == 1:

View File

@@ -13,7 +13,8 @@ from components.klipper.menus.klipper_remove_menu import KlipperRemoveMenu
from components.moonraker.menus.moonraker_remove_menu import (
MoonrakerRemoveMenu,
)
from components.webui_client.client_utils import load_client_data
from components.webui_client.fluidd_data import FluiddData
from components.webui_client.mainsail_data import MainsailData
from components.webui_client.menus.client_remove_menu import ClientRemoveMenu
from core.menus.base_menu import BaseMenu
from utils.constants import COLOR_RED, RESET_FORMAT
@@ -76,7 +77,7 @@ class RemoveMenu(BaseMenu):
MoonrakerRemoveMenu(previous_menu=self).run()
def remove_mainsail(self, **kwargs):
ClientRemoveMenu(previous_menu=self, client=load_client_data("mainsail")).run()
ClientRemoveMenu(previous_menu=self, client=MainsailData()).run()
def remove_fluidd(self, **kwargs):
ClientRemoveMenu(previous_menu=self, client=load_client_data("fluidd")).run()
ClientRemoveMenu(previous_menu=self, client=FluiddData()).run()

View File

@@ -22,9 +22,10 @@ from components.webui_client.client_setup import update_client
from components.webui_client.client_utils import (
get_local_client_version,
get_remote_client_version,
load_client_data,
get_client_config_status,
)
from components.webui_client.fluidd_data import FluiddData
from components.webui_client.mainsail_data import MainsailData
from core.menus.base_menu import BaseMenu
from utils.constants import (
COLOR_GREEN,
@@ -69,6 +70,9 @@ class UpdateMenu(BaseMenu):
self.fc_local = f"{COLOR_WHITE}{RESET_FORMAT}"
self.fc_remote = f"{COLOR_WHITE}{RESET_FORMAT}"
self.mainsail_cient = MainsailData()
self.fluidd_client = FluiddData()
def print_menu(self):
self.fetch_update_status()
@@ -114,16 +118,16 @@ class UpdateMenu(BaseMenu):
update_moonraker()
def update_mainsail(self, **kwargs):
update_client(load_client_data("mainsail"))
update_client(self.mainsail_cient)
def update_mainsail_config(self, **kwargs):
update_client_config(load_client_data("mainsail"))
update_client_config(self.mainsail_cient)
def update_fluidd(self, **kwargs):
update_client(load_client_data("fluidd"))
update_client(self.fluidd_client)
def update_fluidd_config(self, **kwargs):
update_client_config(load_client_data("fluidd"))
update_client_config(self.fluidd_client)
def update_klipperscreen(self, **kwargs): ...
@@ -153,25 +157,23 @@ class UpdateMenu(BaseMenu):
self.mr_local = f"{COLOR_YELLOW}{self.mr_local}{RESET_FORMAT}"
self.mr_remote = f"{COLOR_GREEN}{self.mr_remote}{RESET_FORMAT}"
# mainsail
mainsail_client_data = load_client_data("mainsail")
self.ms_local = get_local_client_version(mainsail_client_data)
self.ms_remote = get_remote_client_version(mainsail_client_data)
self.ms_local = get_local_client_version(self.mainsail_cient)
self.ms_remote = get_remote_client_version(self.mainsail_cient)
if self.ms_local == self.ms_remote:
self.ms_local = f"{COLOR_GREEN}{self.ms_local}{RESET_FORMAT}"
else:
self.ms_local = f"{COLOR_YELLOW}{self.ms_local}{RESET_FORMAT}"
self.ms_remote = f"{COLOR_GREEN if self.ms_remote != 'ERROR' else COLOR_RED}{self.ms_remote}{RESET_FORMAT}"
# fluidd
fluidd_client_data = load_client_data("fluidd")
self.fl_local = get_local_client_version(fluidd_client_data)
self.fl_remote = get_remote_client_version(fluidd_client_data)
self.fl_local = get_local_client_version(self.fluidd_client)
self.fl_remote = get_remote_client_version(self.fluidd_client)
if self.fl_local == self.fl_remote:
self.fl_local = f"{COLOR_GREEN}{self.fl_local}{RESET_FORMAT}"
else:
self.fl_local = f"{COLOR_YELLOW}{self.fl_local}{RESET_FORMAT}"
self.fl_remote = f"{COLOR_GREEN if self.fl_remote != 'ERROR' else COLOR_RED}{self.fl_remote}{RESET_FORMAT}"
# mainsail-config
mc_status = get_client_config_status(load_client_data("mainsail"))
mc_status = get_client_config_status(self.mainsail_cient)
self.mc_local = mc_status.get("local")
self.mc_remote = mc_status.get("remote")
if self.mc_local == self.mc_remote:
@@ -180,7 +182,7 @@ class UpdateMenu(BaseMenu):
self.mc_local = f"{COLOR_YELLOW}{self.mc_local}{RESET_FORMAT}"
self.mc_remote = f"{COLOR_GREEN}{self.mc_remote}{RESET_FORMAT}"
# fluidd-config
fc_status = get_client_config_status(load_client_data("fluidd"))
fc_status = get_client_config_status(self.fluidd_client)
self.fc_local = fc_status.get("local")
self.fc_remote = fc_status.get("remote")
if self.fc_local == self.mc_remote: