mirror of
https://github.com/aclist/dztui.git
synced 2026-08-27 18:27:07 +02:00
fix: separate id/ip methods
This commit is contained in:
parent
f424b019ad
commit
f86e37dbe1
@ -460,18 +460,22 @@ def response_to_fq_ip(res: dict) -> str:
|
||||
return f"{ip}:{gameport}:{qport}"
|
||||
|
||||
|
||||
def query_id_or_ip(addr: str, key: str) -> Optional[dict]:
|
||||
# NOTE: Battlemetrics
|
||||
if addr.isdigit():
|
||||
try:
|
||||
resolved = map_id_to_record(key, addr)
|
||||
res = query_direct(resolved.ip, resolved.qport)
|
||||
except Exception as e:
|
||||
logger.critical(e)
|
||||
return None
|
||||
else:
|
||||
# NOTE: Battlemetrics
|
||||
def query_by_id(addr: str, key: str) -> Optional[dict]:
|
||||
try:
|
||||
resolved = map_id_to_record(key, addr)
|
||||
res = query_direct(resolved.ip, resolved.qport)
|
||||
except Exception as e:
|
||||
logger.critical(e)
|
||||
return None
|
||||
|
||||
def query_by_ip(addr: str) -> Optional[dict]:
|
||||
try:
|
||||
record = addr.split(":")
|
||||
# TODO: create a Record object
|
||||
ip, qport = record[0], record[2]
|
||||
res = query_direct(ip, int(qport))
|
||||
except Exception as e:
|
||||
logger.critical(e)
|
||||
return None
|
||||
return res
|
||||
|
||||
@ -22,9 +22,8 @@ class ConnectionManager:
|
||||
self.thread_man = ThreadingManager(parent=controller)
|
||||
|
||||
@call_on_thread(dialog.querying)
|
||||
def connect_by_id_or_ip(self, addr: str, key: str) -> None:
|
||||
res = Servers.query_id_or_ip(addr, key)
|
||||
print(res)
|
||||
def connect_by_ip(self, addr: str) -> None:
|
||||
res = Servers.query_by_ip(addr)
|
||||
if res is None:
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
|
||||
# TODO: add to history if successful
|
||||
|
||||
@ -59,20 +59,15 @@ class ContextMenuManager:
|
||||
self.controller.set_fav()
|
||||
|
||||
# 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:
|
||||
record = self.treeview.get_record_string()
|
||||
# FIXME: context menu connections do not require BM key
|
||||
key = self.controller.get_config_man().lookup(Preferences.BM)
|
||||
ConnectionManager(self.controller).connect_by_id_or_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
|
||||
ConnectionManager(self.controller).connect_ip(record, key)
|
||||
case ContextMenu.REFRESH_PLAYERS:
|
||||
# get record
|
||||
# call a2s on thread
|
||||
|
||||
@ -187,8 +187,19 @@ class ServerModelManager:
|
||||
self._push_data(parsed)
|
||||
|
||||
@call_on_thread(dialog.querying)
|
||||
def add_by_id_or_ip(self, addr: str) -> None:
|
||||
res = Servers.query_id_or_ip(addr)
|
||||
def add_by_id(self, addr: str) -> None:
|
||||
# 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:
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_on_failure))
|
||||
return
|
||||
|
||||
@ -123,7 +123,9 @@ class FavPanel(Gtk.Frame):
|
||||
emitter = self.controller.get_emitter()
|
||||
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 = (
|
||||
f"{self.server_name} ({self.server_ip})"
|
||||
if self.server_name is not None
|
||||
@ -206,10 +208,13 @@ class AddPanel(Gtk.Frame):
|
||||
ConnectionManager(self.controller).connect_by_id_or_ip(text)
|
||||
|
||||
def _submit_query(self) -> None:
|
||||
text = self.entry.get_text()
|
||||
addr = self.entry.get_text()
|
||||
# TODO: grabs ServerTab.SAVED ServerTreeView
|
||||
saved = self.controller.get_servers().get_saved()
|
||||
ServerModelManager(self.controller, saved)._add_by_id_or_ip(text)
|
||||
tree = self.controller.get_servers().get_saved()
|
||||
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:
|
||||
if not self.add_server.is_sensitive():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user