From 759327e932a331d50d89391bdbf42856ae71b815 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Thu, 23 Jan 2025 12:02:27 +0900 Subject: [PATCH] chore: prepare release --- CHANGELOG.md | 8 ++++++++ dzgui.sh | 6 +++--- helpers/funcs | 28 ++++++++++++++++++++++++++++ helpers/ui.py | 10 ++++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3956403..b3da467 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [5.6.2] 2024-01-22 +### Fixed +- Resolve regression introduced with IP resolution feature in 5.6.0 (restores functionality of right-click action: Add to My Servers) + +## [5.6.1] 2024-01-10 +### Fixed +- Add fallback support for jq 1.6 + ## [5.6.0] 2024-01-06 ### Added - Application header bar and controls diff --git a/dzgui.sh b/dzgui.sh index 43af009..dcd64af 100755 --- a/dzgui.sh +++ b/dzgui.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -o pipefail -version=5.6.1 +version=5.6.2 #CONSTANTS aid=221100 @@ -587,10 +587,10 @@ fetch_helpers_by_sum(){ [[ -f "$config_file" ]] && source "$config_file" declare -A sums sums=( - ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e" + ["ui.py"]="5a876efacf208d12b5fe761996425412" ["query_v2.py"]="55d339ba02512ac69de288eb3be41067" ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397" - ["funcs"]="6a1c7ce585d9b76e2e75dba9d4295f8d" + ["funcs"]="417bd5eaffbefc905a843985c691dc64" ["lan"]="c62e84ddd1457b71a85ad21da662b9af" ) local author="aclist" diff --git a/helpers/funcs b/helpers/funcs index 0c227c3..c747c82 100755 --- a/helpers/funcs +++ b/helpers/funcs @@ -130,6 +130,7 @@ declare -A funcs=( ["Remove from my servers"]="update_favs_from_table" ["Remove from history"]="remove_from_history" ["Force update local mods"]="force_update" +["Resolve IP"]="resolve_ip" ["Handshake"]="final_handshake" ["get_player_count"]="get_player_count" ["lan_scan"]="lan_scan" @@ -161,6 +162,33 @@ find_stale_mods(){ printf "" return 99 } +resolve_ip(){ + shift + local res + local record="$1" + local ip=$(<<< "$record" awk -F: '{print $1}') + local qport=$(<<< "$record" awk -F: '{print $3}') + res=$(a2s $ip $qport info) + if [[ ! $? -eq 0 ]]; then + printf "Server timed out \n" + return 1 + fi + local gport=$(<<< "$res" jq -r '.[].gameport') + if [[ -z $gport ]]; then + printf "Failed to resolve server metadata\n" + return 1 + fi + + # incoming input can only be 'remove' or 'add' + # record is in favs => implies deletion + # record not in favs => implies addition + resolved_record="$ip:$gport:$qport" + if [[ ${ip_list[*]} =~ $resolved_record ]]; then + remove_from_favs "$resolved_record" + else + add_to_favs "$resolved_record" + fi +} get_player_count(){ shift local res diff --git a/helpers/ui.py b/helpers/ui.py index c9aea79..ae28ede 100644 --- a/helpers/ui.py +++ b/helpers/ui.py @@ -1814,10 +1814,16 @@ class TreeView(Gtk.TreeView): def format_metadata(row_sel): + # this function is recycled for the add by ip/id methods + + # the right-click context menu (add/remove servers) + # in the latter case, there is no metadata to update + # see grid.update_statusbar(), so the returned row is None + row = None for i in RowType: if i.dict["label"] == row_sel: row = i prefix = i.dict["tooltip"] + break vals = { "branch": config_vals[0], "debug": config_vals[1], @@ -1827,6 +1833,8 @@ def format_metadata(row_sel): "preferred_client": config_vals[5], "fullscreen": config_vals[6] } + if row is None: + return None try: alt = row.dict["alt"] default = row.dict["default"] @@ -2396,6 +2404,8 @@ class Grid(Gtk.Grid): return True def update_statusbar(self, string): + if string is None: + return meta = self.bar.get_context_id("Statusbar") self.bar.push(meta, string)