mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 22:52:42 +01:00
chore: clear linting errors
This commit is contained in:
1 parent
4cd900b42f
commit
2aca6c3fa3
6 files changed
+51
-31
No files matched your search
@@ -1,5 +1,4 @@
|
|||||||
import ipaddress
|
import ipaddress
|
||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
import math
|
import math
|
||||||
import os
|
import os
|
||||||
@@ -23,6 +22,7 @@ import dayzquery
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# TODO: confirm that patches from testing are incorporated here
|
# TODO: confirm that patches from testing are incorporated here
|
||||||
|
# particularly around malformed values. check commit log
|
||||||
|
|
||||||
params = [
|
params = [
|
||||||
r"\nor\1\map\chernarusplus\nor\1\map\sakhal\nor\1\map\enoch\empty\1\nor\1\map\namalsk", # noqa
|
r"\nor\1\map\chernarusplus\nor\1\map\sakhal\nor\1\map\enoch\empty\1\nor\1\map\namalsk", # noqa
|
||||||
@@ -180,7 +180,7 @@ def parse_json(json: list) -> list:
|
|||||||
return rows
|
return rows
|
||||||
|
|
||||||
|
|
||||||
def query_direct(ip: str, qport: int, TIMEOUT: float=3.0) -> dict | None:
|
def query_direct(ip: str, qport: int, TIMEOUT: float = 3.0) -> dict | None:
|
||||||
try:
|
try:
|
||||||
info = a2s.info((ip, qport), TIMEOUT)
|
info = a2s.info((ip, qport), TIMEOUT)
|
||||||
|
|
||||||
@@ -248,6 +248,7 @@ class Record:
|
|||||||
"""
|
"""
|
||||||
The gameport field is manipulated by the RowType.CONN_BY_IP method
|
The gameport field is manipulated by the RowType.CONN_BY_IP method
|
||||||
"""
|
"""
|
||||||
|
|
||||||
ip: str
|
ip: str
|
||||||
gameport: int
|
gameport: int
|
||||||
qport: int
|
qport: int
|
||||||
@@ -391,7 +392,7 @@ def ping(iteration: int, row: list) -> Ping:
|
|||||||
def query_api(key: str, appid: int, param: str) -> Res:
|
def query_api(key: str, appid: int, param: str) -> Res:
|
||||||
LIMIT = 10000
|
LIMIT = 10000
|
||||||
payload: dict[str, Union[int, str]] = {
|
payload: dict[str, Union[int, str]] = {
|
||||||
"filter": r"\appid" + fr"\{appid}" + param,
|
"filter": r"\appid" + rf"\{appid}" + param,
|
||||||
"limit": LIMIT,
|
"limit": LIMIT,
|
||||||
"key": key,
|
"key": key,
|
||||||
}
|
}
|
||||||
@@ -401,7 +402,7 @@ def query_api(key: str, appid: int, param: str) -> Res:
|
|||||||
res.raise_for_status()
|
res.raise_for_status()
|
||||||
parsed = True
|
parsed = True
|
||||||
data = res.json()
|
data = res.json()
|
||||||
except Exception as e:
|
except Exception:
|
||||||
status = res.status_code
|
status = res.status_code
|
||||||
parsed = False
|
parsed = False
|
||||||
data = None
|
data = None
|
||||||
@@ -435,6 +436,7 @@ def validate_ip(addr: str) -> Record:
|
|||||||
record = Record(ip, 0, qport)
|
record = Record(ip, 0, qport)
|
||||||
return record
|
return record
|
||||||
|
|
||||||
|
|
||||||
def get_rules(ip: str, qport: int) -> list[int]:
|
def get_rules(ip: str, qport: int) -> list[int]:
|
||||||
try:
|
try:
|
||||||
mods = dayzquery.dayz_rules((ip, int(qport))).mods
|
mods = dayzquery.dayz_rules((ip, int(qport))).mods
|
||||||
|
|||||||
+17
-7
@@ -92,7 +92,7 @@ class Controller:
|
|||||||
self.model_man = ModelManager()
|
self.model_man = ModelManager()
|
||||||
|
|
||||||
# TODO: poc
|
# TODO: poc
|
||||||
self.loaded = False
|
# self.loaded = False
|
||||||
|
|
||||||
def register_widget(self, attr: str, widget: Gtk.Widget) -> None:
|
def register_widget(self, attr: str, widget: Gtk.Widget) -> None:
|
||||||
try:
|
try:
|
||||||
@@ -231,9 +231,6 @@ class Controller:
|
|||||||
|
|
||||||
Gtk.main_quit()
|
Gtk.main_quit()
|
||||||
|
|
||||||
def get_statusbar(self) -> str:
|
|
||||||
return self.mediator.statusbar.get_text()
|
|
||||||
|
|
||||||
@deprecated("use statusbar internal contexts")
|
@deprecated("use statusbar internal contexts")
|
||||||
def remove_statusbar(self, context: str) -> None:
|
def remove_statusbar(self, context: str) -> None:
|
||||||
c = self.mediator.statusbar.statusbar.get_context_id(context)
|
c = self.mediator.statusbar.statusbar.get_context_id(context)
|
||||||
@@ -264,6 +261,7 @@ class Controller:
|
|||||||
if haversine is None:
|
if haversine is None:
|
||||||
dist = "Unknown"
|
dist = "Unknown"
|
||||||
else:
|
else:
|
||||||
|
# FIXME: always opens file; cache distance pref
|
||||||
if self.query_config(Preferences.DIST) is True:
|
if self.query_config(Preferences.DIST) is True:
|
||||||
raw = round(haversine.as_miles())
|
raw = round(haversine.as_miles())
|
||||||
separated = number(raw)
|
separated = number(raw)
|
||||||
@@ -711,10 +709,9 @@ class Controller:
|
|||||||
|
|
||||||
def get_player_count(self) -> str:
|
def get_player_count(self) -> str:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
context = treeview.get_enum()
|
|
||||||
model = treeview.get_model()
|
model = treeview.get_model()
|
||||||
status = format_player_count(model)
|
count = format_player_count(model)
|
||||||
return status
|
return count
|
||||||
|
|
||||||
def get_statusbar(self) -> None:
|
def get_statusbar(self) -> None:
|
||||||
return self.mediator.statusbar
|
return self.mediator.statusbar
|
||||||
@@ -777,3 +774,16 @@ class Controller:
|
|||||||
# TODO: deprecated in favor of map/unmap
|
# TODO: deprecated in favor of map/unmap
|
||||||
def toggle_lan_panel(self, state: bool) -> None:
|
def toggle_lan_panel(self, state: bool) -> None:
|
||||||
self.mediator.grid.conpan.set_visible(state)
|
self.mediator.grid.conpan.set_visible(state)
|
||||||
|
|
||||||
|
# TODO: use model manager, map and keyword caches
|
||||||
|
def get_filters(self) -> list:
|
||||||
|
self.mediator.filters.get_filters()
|
||||||
|
|
||||||
|
def get_keyword(self) -> str:
|
||||||
|
self.mediator.filters.get_keyword_filter()
|
||||||
|
|
||||||
|
def get_map(self) -> str:
|
||||||
|
self.mediator.filters.get_selected_map()
|
||||||
|
|
||||||
|
def get_prio_map(self) -> str:
|
||||||
|
self.mediator.filters.get_prior_map()
|
||||||
@@ -1,15 +1,20 @@
|
|||||||
import re
|
import re
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Self
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from dzgui.const.enum import FilterMode
|
from dzgui.const.enum import FilterMode
|
||||||
from dzgui.util import strings
|
from dzgui.util import strings
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository.Gtk import ListStore # noqa E402
|
from gi.repository.Gtk import ListStore # noqa E402
|
||||||
from gi.repository import GObject, GLib # noqa E402
|
from gi.repository import GObject, GLib # noqa E402
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from dzgui.controllers.mc import Controller
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True, frozen=True)
|
@dataclass(slots=True, frozen=True)
|
||||||
class ServerColumns:
|
class ServerColumns:
|
||||||
name: str
|
name: str
|
||||||
@@ -35,7 +40,8 @@ class FilteredModelManager:
|
|||||||
A FilteredModelManager is attached to each ServerTreeView.
|
A FilteredModelManager is attached to each ServerTreeView.
|
||||||
Filter methods are not thread-safe in themselves.
|
Filter methods are not thread-safe in themselves.
|
||||||
"""
|
"""
|
||||||
def __init__(self) -> None:
|
|
||||||
|
def __init__(self, controller: "Controller") -> None:
|
||||||
self.filter_cache: tuple
|
self.filter_cache: tuple
|
||||||
self.ping_cache: dict[str, int] = {}
|
self.ping_cache: dict[str, int] = {}
|
||||||
|
|
||||||
@@ -63,13 +69,15 @@ class FilteredModelManager:
|
|||||||
Native Gtk.TreeView.refilter() method was not performant enough
|
Native Gtk.TreeView.refilter() method was not performant enough
|
||||||
when running in the main loop with 40k+ records
|
when running in the main loop with 40k+ records
|
||||||
"""
|
"""
|
||||||
filters = AppNav.right_panel.filters_vbox.get_filters()
|
filters = self.controller.get_filters()
|
||||||
|
|
||||||
if filters in self.filter_cache:
|
if filters in self.filter_cache:
|
||||||
cache = self.filter_cache[filters]
|
cache = self.filter_cache[filters]
|
||||||
self.set_store(cache[0])
|
self.set_store(cache[0])
|
||||||
self.set_filtered(cache[1])
|
self.set_filtered(cache[1])
|
||||||
GLib.idle_add(AppNav.treeview._filter_cleanup)
|
GLib.idle_add(
|
||||||
|
self.controller.mediator.get_active_treeview()._filter_cleanup
|
||||||
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
match mode:
|
match mode:
|
||||||
@@ -77,8 +85,7 @@ class FilteredModelManager:
|
|||||||
rows = self.filter_initial(filters)
|
rows = self.filter_initial(filters)
|
||||||
|
|
||||||
case FilterMode.MAP:
|
case FilterMode.MAP:
|
||||||
panel = AppNav.right_panel.filters_vbox
|
prior_map = self.controller.get_prior_map()
|
||||||
prior_map = panel.get_prior_map()
|
|
||||||
|
|
||||||
if prior_map == "All maps":
|
if prior_map == "All maps":
|
||||||
rows = self.filter_map(filters)
|
rows = self.filter_map(filters)
|
||||||
@@ -111,7 +118,7 @@ class FilteredModelManager:
|
|||||||
|
|
||||||
self.set_cache(filters, clone, rows)
|
self.set_cache(filters, clone, rows)
|
||||||
self.set_store(clone)
|
self.set_store(clone)
|
||||||
GLib.idle_add(AppNav.treeview._filter_cleanup)
|
GLib.idle_add(self.controller.mediator.get_active_treeview()._filter_cleanup)
|
||||||
|
|
||||||
def sort_rows(self, rows: list) -> list:
|
def sort_rows(self, rows: list) -> list:
|
||||||
rows.sort(key=lambda x: re.sub(r"[^A-Za-z0-9]+", "", x[0].lower()))
|
rows.sort(key=lambda x: re.sub(r"[^A-Za-z0-9]+", "", x[0].lower()))
|
||||||
@@ -131,7 +138,7 @@ class FilteredModelManager:
|
|||||||
Multi-filtration for any context starts by narrowing by map
|
Multi-filtration for any context starts by narrowing by map
|
||||||
"""
|
"""
|
||||||
rows = self.filtered
|
rows = self.filtered
|
||||||
panel = AppNav.right_panel.filters_vbox
|
panel = self.controller.get_map()
|
||||||
sel_map = panel.get_selected_map()
|
sel_map = panel.get_selected_map()
|
||||||
|
|
||||||
if sel_map == "All maps":
|
if sel_map == "All maps":
|
||||||
@@ -141,7 +148,7 @@ class FilteredModelManager:
|
|||||||
return rows
|
return rows
|
||||||
|
|
||||||
def filter_keyword(self, filters: tuple) -> list:
|
def filter_keyword(self, filters: tuple) -> list:
|
||||||
keyword = AppNav.right_panel.filters_vbox.get_keyword_filter()
|
keyword = self.controller.get_keyword()
|
||||||
rows = self.filtered
|
rows = self.filtered
|
||||||
|
|
||||||
if keyword == "":
|
if keyword == "":
|
||||||
@@ -163,7 +170,7 @@ class FilteredModelManager:
|
|||||||
pairs = {
|
pairs = {
|
||||||
strings.filter_3pp: strings.filter_1pp,
|
strings.filter_3pp: strings.filter_1pp,
|
||||||
strings.filter_day: strings.filter_night,
|
strings.filter_day: strings.filter_night,
|
||||||
strings.filter_official: strings.filter_unofficial
|
strings.filter_official: strings.filter_unofficial,
|
||||||
}
|
}
|
||||||
for k, v in pairs.items():
|
for k, v in pairs.items():
|
||||||
if k in filters and v in filters:
|
if k in filters and v in filters:
|
||||||
@@ -217,9 +224,7 @@ class FilteredModelManager:
|
|||||||
self.set_filtered(self.filter_toggle_off(filters, f))
|
self.set_filtered(self.filter_toggle_off(filters, f))
|
||||||
return self.filtered
|
return self.filtered
|
||||||
|
|
||||||
def set_cache(
|
def set_cache(self, filters: tuple, model: ListStore | None, rows: list) -> None:
|
||||||
self, filters: tuple, model: ListStore | None, rows: list
|
|
||||||
) -> None:
|
|
||||||
self.filter_cache[filters] = (model, rows)
|
self.filter_cache[filters] = (model, rows)
|
||||||
|
|
||||||
def resync_model(self, addr: str, qport: int) -> None:
|
def resync_model(self, addr: str, qport: int) -> None:
|
||||||
@@ -233,11 +238,11 @@ class FilteredModelManager:
|
|||||||
self.control_model.remove(row)
|
self.control_model.remove(row)
|
||||||
|
|
||||||
self.wipe_cache()
|
self.wipe_cache()
|
||||||
filters = AppNav.right_panel.filters_vbox.get_filters()
|
filters = self.controller.get_filters()
|
||||||
refiltered = self.filter_toggle_on(filters)
|
refiltered = self.filter_toggle_on(filters)
|
||||||
self.set_filtered(refiltered)
|
self.set_filtered(refiltered)
|
||||||
self.set_success(True)
|
self.set_success(True)
|
||||||
GLib.idle_add(AppNav.treeview._filter_cleanup)
|
GLib.idle_add(self.controller.mediator.get_active_treeview()._filter_cleanup)
|
||||||
|
|
||||||
def convert_model_to_list(self, model: ListStore) -> list:
|
def convert_model_to_list(self, model: ListStore) -> list:
|
||||||
return [[el for el in row] for row in model]
|
return [[el for el in row] for row in model]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from warnings import deprecated
|
from warnings import deprecated
|
||||||
from typing import Self, Union, TYPE_CHECKING
|
from typing import Self, Union, TYPE_CHECKING
|
||||||
|
|
||||||
from dzgui.const.enum import NotebookPage, RowType
|
from dzgui.const.enum import NotebookPage, Preferences, RowType
|
||||||
from dzgui.util import strings
|
from dzgui.util import strings
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|||||||
@@ -3,20 +3,23 @@ from dzgui.views.trees.tree_base import TreeView
|
|||||||
from dzgui.const.enum import ContextMenu
|
from dzgui.const.enum import ContextMenu
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ContextMixin(TreeView):
|
class ContextMixin(TreeView):
|
||||||
def present_menu(self,
|
def present_menu(
|
||||||
|
self,
|
||||||
widget: Gtk.Widget,
|
widget: Gtk.Widget,
|
||||||
event: Gdk.EventButton | Gdk.EventKey,
|
event: Gdk.EventButton | Gdk.EventKey,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
||||||
#if self.is_selection_empty():
|
if self.is_selection_empty():
|
||||||
# return
|
return
|
||||||
|
|
||||||
if event.type is Gdk.EventType.BUTTON_PRESS:
|
if event.type is Gdk.EventType.BUTTON_PRESS:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class ServerTreeView(TreeView):
|
|||||||
self.query_func: Callable = None
|
self.query_func: Callable = None
|
||||||
|
|
||||||
self.filter_man = FilteredModelManager()
|
self.filter_man = FilteredModelManager()
|
||||||
model = self.filter_man.get_model()
|
model = self.filter_man.get_model(controller)
|
||||||
self.set_model(model)
|
self.set_model(model)
|
||||||
|
|
||||||
self.menu = Gtk.Menu()
|
self.menu = Gtk.Menu()
|
||||||
|
|||||||
Reference in new issue
Block a user