mirror of
https://github.com/aclist/dztui.git
synced 2026-10-31 23:22:44 +01:00
fix: separate id/ip methods
This commit is contained in:
1 parent
f424b019ad
commit
f86e37dbe1
5 files changed
+43
-29
No files matched your search
+14
-10
@@ -460,18 +460,22 @@ def response_to_fq_ip(res: dict) -> str:
|
|||||||
return f"{ip}:{gameport}:{qport}"
|
return f"{ip}:{gameport}:{qport}"
|
||||||
|
|
||||||
|
|
||||||
def query_id_or_ip(addr: str, key: str) -> Optional[dict]:
|
# NOTE: Battlemetrics
|
||||||
# NOTE: Battlemetrics
|
def query_by_id(addr: str, key: str) -> Optional[dict]:
|
||||||
if addr.isdigit():
|
try:
|
||||||
try:
|
resolved = map_id_to_record(key, addr)
|
||||||
resolved = map_id_to_record(key, addr)
|
res = query_direct(resolved.ip, resolved.qport)
|
||||||
res = query_direct(resolved.ip, resolved.qport)
|
except Exception as e:
|
||||||
except Exception as e:
|
logger.critical(e)
|
||||||
logger.critical(e)
|
return None
|
||||||
return None
|
|
||||||
else:
|
def query_by_ip(addr: str) -> Optional[dict]:
|
||||||
|
try:
|
||||||
record = addr.split(":")
|
record = addr.split(":")
|
||||||
# TODO: create a Record object
|
# TODO: create a Record object
|
||||||
ip, qport = record[0], record[2]
|
ip, qport = record[0], record[2]
|
||||||
res = query_direct(ip, int(qport))
|
res = query_direct(ip, int(qport))
|
||||||
|
except Exception as e:
|
||||||
|
logger.critical(e)
|
||||||
|
return None
|
||||||
return res
|
return res
|
||||||
@@ -22,9 +22,8 @@ class ConnectionManager:
|
|||||||
self.thread_man = ThreadingManager(parent=controller)
|
self.thread_man = ThreadingManager(parent=controller)
|
||||||
|
|
||||||
@call_on_thread(dialog.querying)
|
@call_on_thread(dialog.querying)
|
||||||
def connect_by_id_or_ip(self, addr: str, key: str) -> None:
|
def connect_by_ip(self, addr: str) -> None:
|
||||||
res = Servers.query_id_or_ip(addr, key)
|
res = Servers.query_by_ip(addr)
|
||||||
print(res)
|
|
||||||
if res is None:
|
if res is None:
|
||||||
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
|
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
|
||||||
# TODO: add to history if successful
|
# TODO: add to history if successful
|
||||||
|
|||||||
@@ -59,20 +59,15 @@ class ContextMenuManager:
|
|||||||
self.controller.set_fav()
|
self.controller.set_fav()
|
||||||
|
|
||||||
# THREADED
|
# THREADED
|
||||||
|
case ContextMenu.ADD_SERVER:
|
||||||
|
record = self.treeview.get_record_string()
|
||||||
|
ServerModelManager(self.controller, self.treeview).add_by_ip(record)
|
||||||
|
# TODO: update tab with !
|
||||||
case ContextMenu.CONNECT:
|
case ContextMenu.CONNECT:
|
||||||
record = self.treeview.get_record_string()
|
record = self.treeview.get_record_string()
|
||||||
# FIXME: context menu connections do not require BM key
|
# FIXME: context menu connections do not require BM key
|
||||||
key = self.controller.get_config_man().lookup(Preferences.BM)
|
key = self.controller.get_config_man().lookup(Preferences.BM)
|
||||||
ConnectionManager(self.controller).connect_by_id_or_ip(record, key)
|
ConnectionManager(self.controller).connect_ip(record, key)
|
||||||
case ContextMenu.ADD_SERVER:
|
|
||||||
record = self.treeview.get_record_string()
|
|
||||||
ServerModelManager(self.controller, self.treeview).add_by_id_or_ip(
|
|
||||||
record
|
|
||||||
)
|
|
||||||
# add to saved servers model verbatim and sort in place
|
|
||||||
# update tab with !
|
|
||||||
# update config file with IP
|
|
||||||
pass
|
|
||||||
case ContextMenu.REFRESH_PLAYERS:
|
case ContextMenu.REFRESH_PLAYERS:
|
||||||
# get record
|
# get record
|
||||||
# call a2s on thread
|
# call a2s on thread
|
||||||
|
|||||||
+13
-2
@@ -187,8 +187,19 @@ class ServerModelManager:
|
|||||||
self._push_data(parsed)
|
self._push_data(parsed)
|
||||||
|
|
||||||
@call_on_thread(dialog.querying)
|
@call_on_thread(dialog.querying)
|
||||||
def add_by_id_or_ip(self, addr: str) -> None:
|
def add_by_id(self, addr: str) -> None:
|
||||||
res = Servers.query_id_or_ip(addr)
|
# KEY
|
||||||
|
config_man = self.controller.get_config_man()
|
||||||
|
key = config_man.lookup(Preferences.BM)
|
||||||
|
res = Servers.query_by_id(addr, key)
|
||||||
|
self.parse_single_record(res)
|
||||||
|
|
||||||
|
@call_on_thread(dialog.querying)
|
||||||
|
def add_by_ip(self, addr: str) -> None:
|
||||||
|
res = Servers.query_by_ip(addr)
|
||||||
|
self.parse_single_record(res)
|
||||||
|
|
||||||
|
def parse_single_record(self, record: dict) -> None:
|
||||||
if res is None:
|
if res is None:
|
||||||
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_on_failure))
|
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_on_failure))
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -123,7 +123,9 @@ class FavPanel(Gtk.Frame):
|
|||||||
emitter = self.controller.get_emitter()
|
emitter = self.controller.get_emitter()
|
||||||
emitter.connect("fav_server_changed", self._on_fav_server_changed)
|
emitter.connect("fav_server_changed", self._on_fav_server_changed)
|
||||||
|
|
||||||
self.server_name, self.server_ip = self.controller.get_config_man().get_favorite() #self.controller.get_favorite()
|
self.server_name, self.server_ip = (
|
||||||
|
self.controller.get_config_man().get_favorite()
|
||||||
|
) # self.controller.get_favorite()
|
||||||
server_name = (
|
server_name = (
|
||||||
f"{self.server_name} ({self.server_ip})"
|
f"{self.server_name} ({self.server_ip})"
|
||||||
if self.server_name is not None
|
if self.server_name is not None
|
||||||
@@ -206,10 +208,13 @@ class AddPanel(Gtk.Frame):
|
|||||||
ConnectionManager(self.controller).connect_by_id_or_ip(text)
|
ConnectionManager(self.controller).connect_by_id_or_ip(text)
|
||||||
|
|
||||||
def _submit_query(self) -> None:
|
def _submit_query(self) -> None:
|
||||||
text = self.entry.get_text()
|
addr = self.entry.get_text()
|
||||||
# TODO: grabs ServerTab.SAVED ServerTreeView
|
# TODO: grabs ServerTab.SAVED ServerTreeView
|
||||||
saved = self.controller.get_servers().get_saved()
|
tree = self.controller.get_servers().get_saved()
|
||||||
ServerModelManager(self.controller, saved)._add_by_id_or_ip(text)
|
if addr.isdigit():
|
||||||
|
ServerModelManager(self.controller, tree).add_by_id(addr)
|
||||||
|
else:
|
||||||
|
ServerModelManager(self.controller, tree).add_by_ip(addr)
|
||||||
|
|
||||||
def _on_activate(self, entry: Gtk.Entry) -> None:
|
def _on_activate(self, entry: Gtk.Entry) -> None:
|
||||||
if not self.add_server.is_sensitive():
|
if not self.add_server.is_sensitive():
|
||||||
|
|||||||
Reference in new issue
Block a user