diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0ad8d65..e572b50 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,6 +5,10 @@ labels: ["bug"] assignees: - aclist body: + - type: markdown + attributes: + value: | + ### WARNING: When posting log/config data, redact any sensitive information like API keys. - type: checkboxes id: kb attributes: diff --git a/.github/ISSUE_TEMPLATE/trouble.yml b/.github/ISSUE_TEMPLATE/trouble.yml index 1c25e69..e890c62 100644 --- a/.github/ISSUE_TEMPLATE/trouble.yml +++ b/.github/ISSUE_TEMPLATE/trouble.yml @@ -5,6 +5,10 @@ labels: ["troubleshooting"] assignees: - aclist body: + - type: markdown + attributes: + value: | + ### WARNING: When posting log/config data, redact any sensitive information like API keys. - type: dropdown id: device attributes: diff --git a/CHANGELOG.md b/CHANGELOG.md index 917347e..86a1e0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,85 +1,52 @@ # Changelog -## [6.0.0-beta.17] 2026-01-14 -## Added -- More descriptive help dialogs when initial dependencies are missing - -## [6.0.0-beta.16] 2026-01-04 -## Fixed -- Regression introduced in previous hotfix - -## [6.0.0-beta.15] 2025-12-27 -## Fixed -- Path discovery during first-time setup when parsing filepaths with whitespaces -- First-time setup dialog continuously triggering when DayZ install path had whitespaces in it - -## [6.0.0-beta.14] 2025-12-09 -## Fixed -- Dialogs with newlines breaking output in log table - -## [6.0.0-beta.13] 2025-11-29 -## Fixed -- Server filter panel not being hidden when entering other page contexts -- Path to remote changelog being constructed incorrectly - -## [6.0.0-beta.12] 2025-11-14 -## Changed -- Require Python 3.13 -## Fixed -- Normalize beta version - -## [6.0.0-beta.11] 2025-11-13 -## Added -- Support sandboxed flatpak - -## Changed -- Preferred client from radio toggle to combobox - -## Fixed -- Config file erroneously getting updated when populating settings menu - -## [6.0.0-beta.10] 2025-11-10 -## Fixed -- Python 3.14 error in finally block -- Require Python version between 3.11 and 3.12 - -## [6.0.0-beta.9] 2025-11-05 -## Fixed -- UI not being constructed correctly if CHANGELOG.md was missing - -## [6.0.0-beta.8] 2025-11-04 -## Added -- Internal flag to allow distribution packaged releases to disable in-app updates -- Pre-boot check to test whether script was invoked directly -- Commandline usage help text - -## Fixed -- ESC key destroying wait dialogs while a thread is pending -- Tooltip signals being erroneously drawn on main menu -- Leaky variable name in dialog titles -- Prevent extraneous signals from propagating when column width is adjusted -- Script failing to start when remote endpoints are unavailable (GaryBlackbourne) - -## Changed -- Optimize time complexity of pre-boot checks (GaryBlackbourne) -- Moved location of notes file -- Rewrote distance calculation module (GaryBlackbourne) - -## [6.0.0-beta.7] 2025-09-20 -## Added -- Users can save text notes to describe servers - -## Changed -- State file serialization methods - -## [6.0.0-beta.6] 2025-09-12 +## [6.0.0] 2026-01-14 ## Added - Support DayZ Experimental -- Show additional client information in Options menu -- Warn user of client version mismatches -- Support clickable hyperlinks +- Ping display on server tables +- Save descriptive text notes on a per-server basis +- Speed up load time and navigation of server tables +- More robust threading and cache system when filtering servers +- Show additional DayZ client information in Options menu +- Warn user of DayZ client version mismatches +- Support clickable hyperlinks in dialogs +- Rich server metadata details dialog (right-click on server table) +- Filter by modded servers +- Breadcrumbs showing current menu context +- Dedicated changelog page +- Dedicated keybindings page +- Dedicated settings page ("Options") +- Support sandboxed version of Flatpak +- Vim-style navigation keybindings +- Added "Return to main menu" button to dialog windows when failing to load server table +- Dynamic context menus for modded servers +- Additional keybindings for new filter toggles +- If a server is locked, prompt user when connecting +- Internal flag to allow distro-packaged releases to disable in-app updates +- Pre-boot checks to test whether script was invoked directly +- Commandline usage help text (GaryBlackbourne) +- More descriptive help dialogs when initial dependencies are missing ## Fixed +- Script failing to start when remote endpoints are unavailable (GaryBlackbourne) +- Key stickiness when quickly navigating through entries in tables +- Servers returning malformed A2S_INFO blocking server browser from loading +- Normalized buttons in dialogs and restored proper padding +- GTK errors being emitted to stdout when inserting debug table +- Entry dialog sensitivity when validating API keys +- Additional validation on entry dialogs to prevent submitting empty text +- Suppress errors during pre-boot checks when mods are not installed +- Centered filter checkboxes within panel +- Do not pop unhighlight/select stale buttons if no stale mods exist +- Improved keybinding interaction with side panels +- Suppress typeahead search in mod dialogs +- Do not trigger global API cooldown if no LAN/favorite servers are found +- Fix table column expansion in server mod dialogs +- Missing parameters when closing application via window decorations +- Statusbar contents not updating on certain pages +- Prevent debug button from activating when in certain input fields +- Window size not updating correctly when unmaximizing window after changing "fullscreen at boot" setting +- Branch toggle signal being emitted when entering Options menu from other contexts - Mods rarely not appearing in local mod list if download completed too quickly - Statusbar not updating when clicking a row after spamming keyboard input - Extraneous logs being generated when subscribing to mods @@ -87,342 +54,188 @@ - Newline terminators in history file - Floating point number calculation - Window resizing too small if no prior resolution was set - -## [6.0.0-beta.5] 2025-08-20 -## Fixed -- Servers returning malformed A2S_INFO blocking server browser from loading - -## [6.0.0-beta.4] 2025-08-13 -## Fixed -- Branch toggle signal being emitted when entering Options menu from other contexts - -## [6.0.0-beta.3] 2025-08-08 -## Added -- Additional server metadata to details dialog -- Prompt user when connecting if a server is locked -- Dedicated settings page ("Options") - -## Fixed -- Statusbar contents not updating on certain pages -- Breadcrumbs not updating when returning from keybindings page -- Wrap long descriptions in server details -- Prevent debug button from activating when in certain input fields -- Window size not updating correctly when unmaximizing window after changing "fullscreen at boot" setting - -## Dropped -- Extraneous information from right statusbar - -## [6.0.0-beta.2] 2025-07-29 -## Fixed -- Missing parameters when closing application via window decorations - -## [6.0.0-beta.1] 2025-07-29 -## Added -- Ping column to server browsing contexts -- Server details dialog to server browsing contexts -- Filter by modded servers -- Breadcrumbs showing current menu context to top of window -- Speed up load time and navigation of server tables -- More robust threading and cache system when filtering servers -- Dedicated changelog page -- Dedicated keybindings page -- Vim-style navigation keybindings -- Additional validation on entry dialogs to prevent submitting empty text -- Added "Return to main menu" button to dialog windows when failing to load server table -- Dynamic context menus for modded servers -- Additional keybindings for filter toggles - -## Fixed -- Entry dialog sensitivity when validating API keys -- Normalized buttons in dialogs and restored proper padding -- GTK errors being emitted to stdout when inserting debug table -- Suppress errors during pre-boot checks when mods are not installed -- Centered filter checkboxes within panel -- Do not pop unhighlight/select stale buttons if no stale mods exist -- Improved keybinding interaction with side panels -- Key stickiness when quickly navigating through entries in tables -- Suppress typeahead search in mod dialogs -- Do not trigger global API cooldown if no LAN/favorite servers are found -- Fix table column expansion in server mod dialogs +- ESC key destroying wait dialogs while a thread is pending +- Tooltip signals being erroneously emitted on main menu +- UI not being constructed correctly if CHANGELOG.md was missing +- Config file erroneously getting updated when populating settings menu +- Leaky variable name in dialog titles +- Prevent extraneous signals from propagating when column width is adjusted +- Server filter panel not being hidden when entering other page contexts +- Path to remote changelog being constructed incorrectly +- Dialogs with newlines breaking output in log table +- Path discovery during first-time setup when parsing filepaths with whitespaces +- First-time setup dialog continuously triggering when DayZ install path had whitespaces in it ## Changed +- Require Python 3.13 - Reduced global API cooldown from 60s to 30s - Clarify dialog messages when DayZ path could not be found - Auto-focus first item when opening context menus - Opacity setting on side buttons when in a different context - Refactored BM API key validation to account for new key format +- State file serialization methods +- Optimize time complexity of pre-boot checks (GaryBlackbourne) +- Rewrote distance calculation module (GaryBlackbourne) +- Changed preferred client setting from radio toggle to combobox ## Dropped - Ping readout in statusbar +- Extraneous information from right statusbar -## [5.8.0-beta.2] 2025-07-06 +## [5.8.3] 2026-01-04 +## Fixed +- Normalize checksum numbers and dates + +## [5.8.2] 2026-01-04 +## Fixed +- Fix regression in symlink routine introduced by previous hotfix + +## [5.8.1] 2025-12-27 +## Fixed +- Path discovery during first-time setup when parsing filepaths with whitespaces +- First-time setup dialog continuously triggering when DayZ install path had whitespaces in it + +## [5.8.0] 2025-07-06 ## Added - Filter servers by official/unofficial status +- Automatically fetch geolocation records ## Changed - Updated internal versioning of helper files - -## [5.8.0-beta.1] 2025-06-05 -## Added -- Automatically fetch geolocation records ## Fixed - Corrected erroneous 2024 date in prior changelog entries -## [5.7.1-beta.1] 2025-04-17 -## Changed -- Updated geolocation records - -## [5.7.0-beta.13] 2025-04-17 +## [5.7.0] 2025-04-17 +## Added +- Save application dimensions when quitting and restore on subsequent boot ## Fixed -- Updated checksum for UI helper file +- Issues with the window exceeding the bounds of the screen when displaying some table contexts +## Changed +- More direct server ping query method that should return marginally more accurate times -## [5.7.0-beta.12] 2025-04-04 +## [5.6.7] 2025-04-04 ## Dropped - Removed extraneous pre-boot API checks that could cause error messages to be printed if the user had not set up an API key yet -## [5.7.0-beta.11] 2025-03-20 -## Fixed -- Reduce startup time when testing remote APIs - -## [5.7.0-beta.10] 2025-03-15 -## Added -- Restore application size on subsequent startup -## Fixed -- Grid scaling causes table to exceeds bounds of display viewport -- Window exceeds taskbar on Steam Deck -- Reduce possibility of timeouts when pinging servers +## [5.6.6] 2025-03-16 ## Changed -- Packed filter checkbox buttons into a 3x3 grid -- Updated IP database to 2025-03 records +- Update IP database records for 2025-03 -## [5.7.0-beta.9] 2025-03-04 +## [5.6.5] 2025-03-04 ## Fixed - Livonia server results being dropped from batch queries -## [5.7.0-beta.8] 2025-02-10 -## Changed +## [5.6.4] 2025-02-10 +### Changed - Drop launch flag and check for invocation through Steam automatically -## [5.7.0-beta.7] 2025-02-09 -## Changed +## [5.6.3] 2025-02-09 +### Changed - Update IP database records for 2025-02 -## [5.7.0-beta.6] 2025-01-10 -## Fixed -- Resolve regression introduced with IP resolution feature in 13c6813 - -## [5.7.0-beta.5] 2025-01-10 -## Changed -- Stricter redacting of usernames (again) - -## [5.7.0-beta.4] 2025-01-10 -## Fixed -- Clerical hotfix - -## [5.7.0-beta.3] 2025-01-10 -## Changed -- Support legacy jq syntax for Ubuntu variants - -## [5.7.0-beta.2] 2025-01-07 -## Fixed -- Stricter redacting of usernames -- Omit nested directories when traversing symlinks - -## [5.7.0-beta.1] 2025-01-07 -### Changed -- Normalize version number - -## [5.6.0-beta.21] 2025-01-06 -### Added -- Add in-app documentation link to Codeberg mirror -- Hover tooltips to most buttons +## [5.6.2] 2025-01-22 ### Fixed -- Prevent ArrowUp/ArrowDown input when inside keyword field +- Resolve regression introduced with IP resolution feature in 5.6.0 (restores functionality of right-click action: Add to My Servers) + +## [5.6.1] 2025-01-10 +### Fixed +- Add fallback support for jq 1.6 + +## [5.6.0] 2025-01-06 +### Added +- Application header bar and controls +- Menu context subtitle in header bar +- Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode +- Highlight stale mods in mods list +- Added --steam launch parameter +- Open Steam workshop subscriptions dialog when switching from Manual to Auto mode +- Hover tooltips to most buttons +- Add in-app documentation link to Codeberg mirror +- Additional logging +### Fixed +- Avoid sudo escalation if system map count is sufficient (jiriks74) +- Duplicate dialog title on Steam Deck +- Resolve remote IP when saving records for game servers with multiple hosts +- More performant symlink traversal when checking for legacy links +- Only iterate on missing symlinks at boot (400% performance uplift) +- Fix for server list truncation causing some servers to not appear in results +- Empty dialog popups if user manually deletes local mods while application is running +- Update statusbar when removing servers from list/repopulating +- Abort DayZ path discovery if Steam files are not synched +- Race condition when checking for installed mods +- Favorite server message not updating correctly +- Improved handling for cases where there are no locally installed mods +- Set up mod symlinks at boot, rather than only on server connect +- Prevent context menus from opening when table is empty +- When reloading table in-place, prevent duplicate panel elements from being added if already present +- Clean up local mod signatures from versions file when deleting mods +- Focus first row when opening mods list ### Changed +- Redact usernames in log files +- Prevent ArrowUp/ArrowDown input when inside keyword field +- Admonish user to restart Steam in error dialog if DayZ path could not be found +- Refactor control flow for more robust contextual parsing +- Stop sending modal dialog hints to outer window +- Clean up signal emission +- Clarify some error messages and normalize text formatting - Update forum URL -- Reword Help section links to include destination - Update README.md - Update IP database to 2025-01 - Reduce IP database size by 50% - Update documentation to 5.6.x standard ### Dropped -- Removed temporary mod ID output in debug logs -- Removed Hall of Fame section from button links, moved inside documentation -- Remove unused imports +- Hall of Fame section from button links, to be moved inside documentation +- Unused imports -## [5.6.0-beta.20] 2024-12-23 -### Added -- Output real and resolved mod ids to logs (temporary) -- Added -steam launch parameter -### Fixed -- Only iterate on missing symlinks -- Move logging up - -## [5.6.0-beta.19] 2024-12-18 -### Added -- Redact usernames in log files -### Fixed -- More performant symlink traversal when checking for legacy links - -## [5.6.0-beta.18] 2024-12-14 -### Added -- Open Steam workshop subscriptions dialog -- Additional logging -### Fixed -- Empty dialog popups if user manually deletes local mods while application is running -- Abort DayZ path discovery if VDF if Steam files are not synched -- Avoid sudo escalation if system map count is sufficient (jiriks74) -### Changed -- Admonish user to restart Steam in error dialog if DayZ path could not be found - -## [5.6.0-beta.17] 2024-12-14 -### Added -- Additional logging - -## [5.6.0-beta.16] 2024-12-13 +## [5.5.3] 2024-12-13 ### Fixed - Add remote resource health checks before downloading updates ### Added - Add fallback repository -## [5.6.0-beta.11] 2024-12-07 +## [5.5.1] 2024-12-03 ### Fixed -- Add missing function definition +- Support localized decimal separators when parsing installed mod sizes -## [5.6.0-beta.10] 2024-12-04 -### Fixed -- Untoggle highlight button when repopulating mod list -- Resolve remote IP when saving records for game servers with multiple hosts -- Update statusbar when removing servers from list/repopulating -### Added: -- "Select stale" button to bulk select mods marked as obsolete - -## [5.6.0-beta.9] 2024-12-03 -### Fixed -- Normalize user locale when parsing floats - -## [5.6.0-beta.8] 2024-11-28 -### Fixed -- Normalize user locale when parsing floats - -## [5.6.0-beta.7] 2024-11-28 -### Changed -- Add additional logging when fetching installed mods - -## [5.6.0-beta.6] 2024-11-28 -### Fixed -- Race condition when checking for installed mods - -## [5.6.0-beta.5] 2024-11-21 -### Added -- Highlight stale mods in mods list -### Fixed -- Duplicate dialog title on Steam Deck - -## [5.6.0-beta.4] 2024-11-20 -### Added -- Application header bar and controls -- Menu context subtitle in header bar -### Changed -- Refactor control flow for more robust contextual parsing -- Stop sending modal dialog hints to outer window -### Fixed -- Favorite server message not updating correctly - -## [5.6.0-beta.3] 2024-11-18 -### Fixed -- Improved handling for cases where there are no locally installed mods -- Set up mod symlinks at boot, rather than only on server connect -- Prevent context menus from opening when table is empty -- When reloading table in-place, prevent duplicate panel elements from being added if already present -- Clean up signal emission - -## [5.6.0-beta.2] 2024-11-15 -### Fixed -- Clean up local mod signatures from versions file when deleting mods - -## [5.6.0-beta.1] 2024-11-12 -### Added -- Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode -### Fixed -- Fix for server list truncation causing some servers to not appear in results -- Suppress signal emission when switching menu contexts -- Focus first row when opening mods list -### Changed -- Clarify some error messages and normalize text formatting - -## [5.5.0-beta.5] 2024-11-03 -### Changed -- Use updated A2S_RULES logic -### Fixed -- Servers in saved servers list would populate context menu with same option when right-clicking in server browser - -## [5.5.0-beta.4] 2024-10-31 -### Added -- Expose a toggle setting for whether to launch the application in fullscreen -### Fixed -- Enable adding/removing servers to/from My Saved Servers when in Recent Servers context - -## [5.5.0-beta.3] 2024-10-31 -### Fixed -- Prevent maps combobox from duplicating contents - -## [5.5.0-beta.2] 2024-10-31 -### Fixed -- Restore keyboard input to keyword entry field - -## [5.5.0-beta.1] 2024-10-30 +## [5.5.0] 2024-11-10 ### Added - Support servers running DLC content (fixes Frostline servers) -- Text autocompletion in maps search field -- Add disk space warning to popup dialog +- Expose a toggle setting for whether to launch the application in fullscreen +- Text autocompletion in maps search field (partial search) +- Add disk space warning to popup dialog when downloading mods ### Fixed +- Servers in saved servers list would populate context menu with same option when right-clicking in server browser +- Enable adding/removing servers to/from My Saved Servers when in Recent Servers context +- Prevent maps combobox from duplicating contents +- Restore keyboard input to keyword entry field +### Changed - Abort fallback query method if DLC is required -## [5.4.2-beta.1] 2024-10-05 +## [5.4.2] 2024-10-05 ### Fixed - Sanitize third-party API IDs to remove UGC collisions -## [5.4.1-beta.2] 2024-09-12 -### Fixed -- Use fallback logic for modlist queries when user traverses networks - -## [5.4.1-beta.2] 2024-09-10 -### Fixed -- Fix signal handling control flow for checkbox toggles - -## [5.4.1-beta.1] 2024-09-10 +## [5.4.1] 2024-09-25 ### Added - Pre-boot validation check for users with self-compiled version of jq ### Fixed +- Use fallback logic for modlist queries when user traverses networks +- Fix signal handling control flow for checkbox toggles - When reloading the server browser, the map combobox selection would revert to the last selected map instead of All Maps - Server filter toggle signals were accessible from the main menu when switching between menu contexts - Global cooldown dialog could sometimes block filter toggles after cooldown reset - Normalized minor version number due to a previous clerical error -## [5.4.0-beta.5] 2024-08-27 -### Added -- Freedesktop application icons for system taskbar, tray, and other dialogs -### Fixed -- Errors being printed to the console when Exit button was explicitly clicked - -## [5.4.0-beta.4] 2024-08-21 -### Added -- Emit CPU model name when exporting system debug log -### Fixed -- Detect Steam Deck OLED APU variant during initial setup - -## [5.4.0-beta.3] 2024-08-04 +## [5.4.0] 2024-08-27 ### Added - Scan local area network for DayZ servers - -## [5.4.0-beta.2] 2024-08-03 -### Fixed -- Clerical hotfix for previous player names fix -- Test if DayZ directory is empty at startup, implying that the game was moved to a new library collection - -## [5.4.0-beta.1] 2024-07-16 +- Freedesktop application icons for system taskbar, tray, and other dialogs +- Emit CPU model name when exporting system debug log ### Fixed +- Errors being printed to the console when Exit button was explicitly clicked +- Detect Steam Deck OLED APU variant during initial setup - Encapsulate player names correctly so that names with whitespace in them are supported +- Test if DayZ directory is empty at startup, implying that the game was moved to a new library collection +- Report WM_CLASS name to the window manager ## [5.3.2] 2024-07-02 ### Fixed diff --git a/dzgui.sh b/dzgui.sh index 0d5d8bc..16080d6 100755 --- a/dzgui.sh +++ b/dzgui.sh @@ -3,7 +3,7 @@ set -o pipefail src_path=$(realpath "$0") -version=6.0.0.beta-17 +version=6.0.0 #CONSTANTS aid=221100 @@ -624,10 +624,10 @@ fetch_helpers_by_sum(){ [[ -f "$config_file" ]] && source "$config_file" declare -A sums sums=( - ["funcs"]="3c35e4d19b8c69971c564afb6ac22728" + ["funcs"]="8e281479d7b7e6bab9e81fcdf0205ce9" ["query_v2.py"]="55d339ba02512ac69de288eb3be41067" ["servers.py"]="ed442c3aecf33f777d59dcf53650d263" - ["ui.py"]="8edf48e6780460bd8ea7b01614592296" + ["ui.py"]="3d67e5e8e85a23dde1fd0e85a9be62a9" ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397" ["pefile.py"]="21531f2c0d9dfa5f110cf6779f9d22c0" ) diff --git a/helpers/funcs b/helpers/funcs index 4a5f786..8bd58d4 100755 --- a/helpers/funcs +++ b/helpers/funcs @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -o pipefail -version="6.0.0-beta.17" +version="6.0.0" #CONSTANTS aid=221100