mirror of
https://github.com/aclist/dztui.git
synced 2026-10-28 21:52:46 +01:00
chore: uncomment
This commit is contained in:
1 parent
dda35074fb
commit
3a47ee9057
6 files changed
+115
-53
No files matched your search
+24
-2
@@ -43,6 +43,7 @@ _cache_history="$cache_dir/$prefix.history"
|
||||
_cache_launch="$cache_dir/$prefix.launch_mods"
|
||||
_cache_address="$cache_dir/$prefix.launch_address"
|
||||
_cache_coords="$cache_path/$prefix.coords"
|
||||
_cache_cooldown="$cache_path/$prefix.cooldown"
|
||||
|
||||
#XDG
|
||||
freedesktop_path="$HOME/.local/share/applications"
|
||||
@@ -107,7 +108,9 @@ declare -A funcs=(
|
||||
["dump_servers"]="dump_servers"
|
||||
["get_unique_maps"]="get_unique_maps"
|
||||
["get_dist"]="get_dist"
|
||||
["test_cooldown"]="test_cooldown"
|
||||
["query_config"]="query_config"
|
||||
["start_cooldown"]="start_cooldown"
|
||||
["list_mods"]="list_mods"
|
||||
["delete"]="delete_local_mod"
|
||||
["show_server_modlist"]="show_server_modlist"
|
||||
@@ -117,7 +120,7 @@ declare -A funcs=(
|
||||
["gen_log"]="generate_log"
|
||||
["open_workshop_page"]="open_workshop_page"
|
||||
["Add to my servers"]="update_favs_from_table"
|
||||
["Remove from favorites"]="update_favs_from_table"
|
||||
["Remove from my servers"]="update_favs_from_table"
|
||||
["Remove from history"]="remove_from_history"
|
||||
["force_update"]="force_update"
|
||||
["Handshake"]="final_handshake"
|
||||
@@ -132,7 +135,8 @@ get_player_count(){
|
||||
res=$(a2s $ip $qport info)
|
||||
[[ ! $? -eq 0 ]] && return 1
|
||||
local players="$(<<< $res jq -r '.[].players')"
|
||||
printf "%s" "$players"
|
||||
local queue="$(<<< $res jq -r '.[].gametype|split("lqs")[1]|split(",")[0]')"
|
||||
printf "%s\n%s" "$players" "$queue"
|
||||
}
|
||||
|
||||
validate_and_connect(){
|
||||
@@ -252,6 +256,10 @@ connect_by_id(){
|
||||
fi
|
||||
#res contains modlist
|
||||
}
|
||||
start_cooldown(){
|
||||
logger WARN "API response empty. Started 60s cooldown at $(date +%s)"
|
||||
date +%s > $_cache_cooldown
|
||||
}
|
||||
initialize_remote_servers(){
|
||||
local file="$_cache_servers"
|
||||
[[ -f $file ]] && rm "$file"
|
||||
@@ -513,6 +521,7 @@ parse_server_json(){
|
||||
"\(if .gametype == null then "null" else (.gametype as $time|$time|test("[0-9]{2}:[0-9]{2}$") as $match|(if $match == true then ($time|scan("[0-9]{2}:[0-9]{2}$")) else "XXXX" end)) end)␞" +
|
||||
"\(.players)␞" +
|
||||
"\(.max_players)␞" +
|
||||
"\(if .gametype == null then "0" else .gametype|split("lqs")[1]|split(",")[0] end)␞" +
|
||||
"\(.addr|split(":")[0]):\(if .gameport == null then "XXXX" else .gameport end)␞" +
|
||||
"\(.addr|split(":")[1])"
|
||||
' | sort -k1
|
||||
@@ -526,6 +535,19 @@ delete_local_mod(){
|
||||
#SC2115
|
||||
rm -rf "${workshop_dir:?}/$dir" && unlink "$game_dir/$symlink" || return 1
|
||||
}
|
||||
test_cooldown(){
|
||||
[[ ! -f $_cache_cooldown ]] && return 0
|
||||
local old_time=$(< $_cache_cooldown)
|
||||
local cur_time=$(date +%s)
|
||||
local delta=$(($cur_time - $old_time))
|
||||
local suffix="seconds"
|
||||
if [[ $delta -lt 60 ]]; then
|
||||
local remains=$((60 - $delta))
|
||||
[[ $remains -eq 1 ]] && suffix="second"
|
||||
printf "Global API cooldown in effect. Please wait %s %s." "$remains" "$suffix"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
dump_servers(){
|
||||
local context="$1"
|
||||
local subcontext="$2"
|
||||
|
||||
+33
-17
@@ -36,12 +36,12 @@ checks = list()
|
||||
map_store = Gtk.ListStore(str)
|
||||
row_store = Gtk.ListStore(str)
|
||||
modlist_store = Gtk.ListStore(str, str, str)
|
||||
# Name, Symlink, ID, Size
|
||||
#cf. mod_cols
|
||||
mod_store = Gtk.ListStore(str, str, str, float)
|
||||
# Timestamp, Flag, Trace, Message
|
||||
#cf. log_cols
|
||||
log_store = Gtk.ListStore(str, str, str, str)
|
||||
# Name, Map, Perspective, Gametime, Players, Max, IP, Qport
|
||||
server_store = Gtk.ListStore(str, str, str, str, int, int, str, int)
|
||||
#cf. browser_cols
|
||||
server_store = Gtk.ListStore(str, str, str, str, int, int, int, str, int)
|
||||
|
||||
default_tooltip = "Select a row to see its detailed description"
|
||||
server_tooltip = [None, None]
|
||||
@@ -69,6 +69,7 @@ browser_cols = [
|
||||
"Gametime",
|
||||
"Players",
|
||||
"Maximum",
|
||||
"Queue",
|
||||
"IP",
|
||||
"Qport",
|
||||
]
|
||||
@@ -230,7 +231,7 @@ def parse_server_rows(data):
|
||||
reader = csv.reader(lines, delimiter=delimiter)
|
||||
hits = len(lines)
|
||||
try:
|
||||
rows = [[row[0], row[1], row[2], row[3], int(row[4]), int(row[5]), row[6], int(row[7])] for row in reader if row]
|
||||
rows = [[row[0], row[1], row[2], row[3], int(row[4]), int(row[5]), int(row[6]), row[7], int(row[8])] for row in reader if row]
|
||||
except IndexError:
|
||||
return 1
|
||||
for row in rows:
|
||||
@@ -690,7 +691,7 @@ class TreeView(Gtk.TreeView):
|
||||
|
||||
match context_menu_label:
|
||||
case "Add to my servers" | "Remove from my servers":
|
||||
record = "%s:%s" %(self.get_column_at_index(6), self.get_column_at_index(7))
|
||||
record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
|
||||
proc = call_out(parent, context_menu_label, record)
|
||||
if context == "Name (My saved servers)":
|
||||
iter = self.get_current_iter()
|
||||
@@ -698,21 +699,21 @@ class TreeView(Gtk.TreeView):
|
||||
msg = proc.stdout
|
||||
res = spawn_dialog(parent, msg, "NOTIFY")
|
||||
case "Remove from history":
|
||||
record = "%s:%s" %(self.get_column_at_index(6), self.get_column_at_index(7))
|
||||
record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
|
||||
call_out(parent, context_menu_label, record)
|
||||
iter = self.get_current_iter()
|
||||
server_store.remove(iter)
|
||||
case "Copy IP to clipboard":
|
||||
self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
||||
addr = self.get_column_at_index(6)
|
||||
qport = self.get_column_at_index(7)
|
||||
addr = self.get_column_at_index(7)
|
||||
qport = self.get_column_at_index(8)
|
||||
ip = addr.split(':')[0]
|
||||
record = "%s:%s" %(ip, qport)
|
||||
self.clipboard.set_text(record, -1)
|
||||
case "Refresh player count":
|
||||
self.refresh_player_count()
|
||||
case "Show server-side mods":
|
||||
record = "%s:%s" %(self.get_column_at_index(6), self.get_column_at_index(7))
|
||||
record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
|
||||
dialog = ModDialog(parent, "Enter/double click a row to open in Steam Workshop. ESC exits this dialog", "Modlist", record)
|
||||
modlist_store.clear()
|
||||
case "Delete mod":
|
||||
@@ -765,7 +766,7 @@ class TreeView(Gtk.TreeView):
|
||||
|
||||
for item in items:
|
||||
if subcontext == "Server browser" and item == "Add to my servers":
|
||||
record = "%s:%s" %(self.get_column_at_index(6), self.get_column_at_index(7))
|
||||
record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
|
||||
proc = call_out(widget, "is_in_favs", record)
|
||||
if proc.returncode == 0:
|
||||
item = "Remove from my servers"
|
||||
@@ -824,7 +825,7 @@ class TreeView(Gtk.TreeView):
|
||||
self.current_proc.terminate()
|
||||
|
||||
if "Name" in context:
|
||||
addr = self.get_column_at_index(6)
|
||||
addr = self.get_column_at_index(7)
|
||||
if addr is None:
|
||||
return
|
||||
if addr in cache:
|
||||
@@ -912,7 +913,11 @@ class TreeView(Gtk.TreeView):
|
||||
|
||||
def _background_player_count(self):
|
||||
def _load():
|
||||
server_store[path][4] = int(data.stdout)
|
||||
lines = data.stdout.splitlines()
|
||||
#update players
|
||||
server_store[path][4] = int(lines[0])
|
||||
#update queue
|
||||
server_store[path][6] = int(lines[1])
|
||||
wait_dialog.destroy()
|
||||
|
||||
parent = self.get_outer_window()
|
||||
@@ -925,8 +930,8 @@ class TreeView(Gtk.TreeView):
|
||||
return
|
||||
path = pathlist[0]
|
||||
tree_iter = model.get_iter(path)
|
||||
addr = server_store[path][6]
|
||||
qport = server_store[path][7]
|
||||
addr = server_store[path][7]
|
||||
qport = server_store[path][8]
|
||||
ip = addr.split(':')[0]
|
||||
qport = str(qport)
|
||||
|
||||
@@ -946,6 +951,13 @@ class TreeView(Gtk.TreeView):
|
||||
self.grab_focus()
|
||||
for column in self.get_columns():
|
||||
column.connect("notify::width", self._on_col_width_changed)
|
||||
if hits == 0:
|
||||
call_out(self, "start_cooldown", "", "")
|
||||
api_warn_msg = """\
|
||||
No servers returned. Possible network issue or API key on cooldown?
|
||||
Return to the main menu, wait 60s, and try again.
|
||||
If this issue persists, your API key may be defunct."""
|
||||
spawn_dialog(self.get_outer_window(), textwrap.dedent(api_warn_msg), "NOTIFY")
|
||||
|
||||
grid = self.get_outer_grid()
|
||||
right_panel = grid.right_panel
|
||||
@@ -1137,8 +1149,8 @@ class TreeView(Gtk.TreeView):
|
||||
|
||||
def _attempt_connection(self):
|
||||
transient_parent = self.get_outer_window()
|
||||
addr = self.get_column_at_index(6)
|
||||
qport = self.get_column_at_index(7)
|
||||
addr = self.get_column_at_index(7)
|
||||
qport = self.get_column_at_index(8)
|
||||
record = "%s:%s" %(addr, str(qport))
|
||||
|
||||
wait_dialog = GenericDialog(transient_parent, "Querying server and aligning mods", "WAIT")
|
||||
@@ -1166,6 +1178,10 @@ class TreeView(Gtk.TreeView):
|
||||
|
||||
if chosen_row == "Server browser":
|
||||
reinit_checks()
|
||||
cooldown = call_out(self, "test_cooldown", "", "")
|
||||
if cooldown.returncode == 1:
|
||||
spawn_dialog(self.get_outer_window(), cooldown.stdout, "NOTIFY")
|
||||
return 1
|
||||
else:
|
||||
for check in checks:
|
||||
if check.get_label() not in toggled_checks:
|
||||
|
||||
Reference in new issue
Block a user