mirror of
https://github.com/aclist/dztui.git
synced 2026-08-25 17:32:36 +02:00
Merge pull request #221 from aclist/feat/filter-official
Some checks failed
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
Some checks failed
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
feat: filter official
This commit is contained in:
commit
6d7b2a1d19
@ -1,5 +1,11 @@
|
||||
# Changelog
|
||||
|
||||
## [5.8.0-beta.2] 2025-07-06
|
||||
## Added
|
||||
- Filter servers by official/unofficial status
|
||||
## Changed
|
||||
- Updated internal versioning of helper files
|
||||
|
||||
## [5.8.0-beta.1] 2025-06-05
|
||||
## Added
|
||||
- Automatically fetch geolocation records
|
||||
|
||||
6
dzgui.sh
6
dzgui.sh
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -o pipefail
|
||||
|
||||
version=5.8.0-beta.1
|
||||
version=5.8.0-beta.2
|
||||
|
||||
#CONSTANTS
|
||||
aid=221100
|
||||
@ -585,10 +585,10 @@ fetch_helpers_by_sum(){
|
||||
[[ -f "$config_file" ]] && source "$config_file"
|
||||
declare -A sums
|
||||
sums=(
|
||||
["ui.py"]="a6fdbf3e3eb92b7bc78e6ae23882b10b"
|
||||
["ui.py"]="f128a97e744e9e11036d707198feb8a8"
|
||||
["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
|
||||
["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
|
||||
["funcs"]="f6e8b113e586a4bb2ea40c9ee56ebc95"
|
||||
["funcs"]="94287c75a5ae0a06a95dd439711e6fba"
|
||||
["lan"]="c62e84ddd1457b71a85ad21da662b9af"
|
||||
)
|
||||
local author="aclist"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -o pipefail
|
||||
version=5.6.0
|
||||
version="5.8.0"
|
||||
|
||||
#CONSTANTS
|
||||
aid=221100
|
||||
@ -605,6 +605,20 @@ filter_servers(){
|
||||
<<< "$filtered" awk -F$separator '!seen[$1]++'
|
||||
fi
|
||||
}
|
||||
filter_official(){
|
||||
if [[ ${filters[*]} =~ Official ]]; then
|
||||
echo -n "$filtered"
|
||||
else
|
||||
<<< "$filtered" awk -F$separator '$10 == "Community"'
|
||||
fi
|
||||
}
|
||||
filter_community(){
|
||||
if [[ ${filters[*]} =~ Unoffic ]]; then
|
||||
echo -n "$filtered"
|
||||
else
|
||||
<<< "$filtered" awk -F$separator '$10 == "Official"'
|
||||
fi
|
||||
}
|
||||
|
||||
filtered=$(filter_perspective)
|
||||
filtered=$(filter_full)
|
||||
@ -615,6 +629,8 @@ filter_servers(){
|
||||
filtered=$(filter_ascii)
|
||||
filtered=$(filter_duplicates)
|
||||
filtered=$(filter_keyword)
|
||||
filtered=$(filter_official)
|
||||
filtered=$(filter_community)
|
||||
|
||||
if [[ -z "$filtered" ]]; then
|
||||
logger WARN "Filter result is empty"
|
||||
@ -652,7 +668,8 @@ parse_server_json(){
|
||||
"\(.max_players)␞" +
|
||||
"\(if .gametype == null then "0" elif .gametype|split("lqs")[1] == 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])"
|
||||
"\(.addr|split(":")[1])␞" +
|
||||
"\(if .gametype == null then "null" else (.gametype|split(",")|if any(. == "external") then "Community" else "Official" end) end)"
|
||||
' | sort -k1
|
||||
}
|
||||
align_versions_file(){
|
||||
|
||||
@ -17,7 +17,6 @@ import gi
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk, GLib, Gdk, GObject, Pango
|
||||
|
||||
# 5.7.0
|
||||
app_name = "DZGUI"
|
||||
|
||||
cache = {}
|
||||
@ -38,7 +37,7 @@ mod_store = Gtk.ListStore(str, str, str, float, str)
|
||||
#cf. log_cols
|
||||
log_store = Gtk.ListStore(str, str, str, str)
|
||||
#cf. browser_cols
|
||||
server_store = Gtk.ListStore(str, str, str, str, int, int, int, str, int)
|
||||
server_store = Gtk.ListStore(str, str, str, str, int, int, int, str, int, str)
|
||||
|
||||
default_tooltip = "Select a row to see its detailed description"
|
||||
server_tooltip = [None, None]
|
||||
@ -96,7 +95,9 @@ filters = {
|
||||
"Full": False,
|
||||
"Low pop": True,
|
||||
"Non-ASCII": False,
|
||||
"Duplicate": False
|
||||
"Duplicate": False,
|
||||
"Official": True,
|
||||
"Unoffic.": True,
|
||||
}
|
||||
|
||||
|
||||
@ -553,7 +554,7 @@ def parse_server_rows(data):
|
||||
lines = data.stdout.splitlines()
|
||||
reader = csv.reader(lines, delimiter=delimiter)
|
||||
try:
|
||||
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]
|
||||
rows = [[row[0], row[1], row[2], row[3], int(row[4]), int(row[5]), int(row[6]), row[7], int(row[8]), row[9]] for row in reader if row]
|
||||
except IndexError:
|
||||
return 1
|
||||
for row in rows:
|
||||
@ -1609,7 +1610,8 @@ class TreeView(Gtk.TreeView):
|
||||
if (column_title == "Map"):
|
||||
column.set_fixed_width(300)
|
||||
|
||||
self.append_column(column)
|
||||
if i != 10:
|
||||
self.append_column(column)
|
||||
|
||||
self.update_first_col(mode.dict["label"])
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user