diff --git a/dzgui/api/servers.py b/dzgui/api/servers.py index 5255e9f..7debbf3 100644 --- a/dzgui/api/servers.py +++ b/dzgui/api/servers.py @@ -436,13 +436,6 @@ def get_rules(record: Record) -> list[int]: return [] -def response_to_fq_ip(res: dict) -> str: - ip = res["addr"].split(":")[0] - gameport = res["gameport"] - qport = res["addr"].split(":")[1] - return f"{ip}:{gameport}:{qport}" - - def query_by_id(addr: str, key: str) -> Optional[dict]: """ Used with numeric Battlemetrics IDs @@ -495,3 +488,17 @@ def fqip_to_record(addr: str) -> Optional[Record]: if len(r) != 3: return None return Record(r[0], int(r[1]), int(r[2])) + + +def response_to_fqip(res: dict) -> str: + ip = res["addr"].split(":")[0] + gameport = res["gameport"] + qport = res["addr"].split(":")[1] + return f"{ip}:{gameport}:{qport}" + + +def response_to_record(res: dict) -> Record: + ip = res["addr"].split(":")[0] + gameport = res["gameport"] + qport = res["addr"].split(":")[1] + return Record(ip, gameport, qport) diff --git a/dzgui/model/proxy_model.py b/dzgui/model/proxy_model.py index 13e89e2..dad8609 100644 --- a/dzgui/model/proxy_model.py +++ b/dzgui/model/proxy_model.py @@ -48,14 +48,6 @@ class ProxyModelManager: self.control_model.append(row) self.filter(FilterMode.INITIAL, skip_cache=True) - def remove_row_from_control(self, row: list) -> None: - for record in self.control_model: - if row[7] == record[7] and row[8] == record[8]: - self.control_model.remove(record) - break - self.wipe_cache() - self.filter(FilterMode.INITIAL, skip_cache=True) - def update_playercount(self, playercount: "NewPlayerCount") -> None: treeiter = playercount.treeiter self.proxy_model[treeiter][4] = playercount.players @@ -66,8 +58,7 @@ class ProxyModelManager: # del self.control_model[0] # self.control_model.append(row) - # TODO: consolidate with remove_row_from_control() - def remove_from_history(self, record: "Record") -> None: + def remove_row_from_control(self, record: "Record") -> None: addr = f"{record.ip}:{record.gameport}" qport = record.qport for record in self.control_model: diff --git a/dzgui/model/servers.py b/dzgui/model/servers.py index 6cd978f..67102a5 100644 --- a/dzgui/model/servers.py +++ b/dzgui/model/servers.py @@ -210,7 +210,7 @@ class ServerModelManager: def remove_from_history(self, record: Servers.Record) -> None: """Fully unthreaded, just removes a row""" proxy_man = self._get_proxy_man() - proxy_man.remove_from_history(record) + proxy_man.remove_row_from_control(record) control_model = proxy_man.get_control() config_man = self.controller.get_config_man() @@ -259,10 +259,12 @@ class ServerModelManager: # NOTE: expected to only contain one item records = Servers.parse_json([response]) - record = records[0] + server = records[0] proxy_man = self._get_proxy_man() - fqip = Servers.response_to_fq_ip(response) + fqip = Servers.response_to_fqip(response) + record = Servers.response_to_record(response) + config_man = self.controller.get_config_man() # TODO: less convoluted @@ -283,7 +285,7 @@ class ServerModelManager: if proxy_man.has_control_model() is False: self._get_proxy_man().push(records) else: - proxy_man.append_row_to_control(record) + proxy_man.append_row_to_control(server) control_model = proxy_man.get_control() self._sort_unique_maps(control_model) diff --git a/dzgui/views/trees/tree_log.py b/dzgui/views/trees/tree_log.py index 6208393..0cd093f 100644 --- a/dzgui/views/trees/tree_log.py +++ b/dzgui/views/trees/tree_log.py @@ -32,7 +32,6 @@ class LogTreeView(ContextMixin, TreeView): self.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) self.set_model(None) - # self.filter: Gtk.TreeModelFilter # TODO: strings # NOTE: default filters that should be shown on startup