Compare commits

..
175 Commits
Author SHA1 Message Date
aclist b2f6abd667 Merge pull request #276 from aclist/chore/update-readme
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
chore: update readme
2026-03-30 20:56:32 +09:00
aclist f76985c79d chore: reword readme 2026-03-30 20:14:45 +09:00
aclist 3d3cd19892 chore: update readme 2026-03-30 20:13:20 +09:00
aclist c14fb10d23 Merge pull request #270 from aclist/prerelease/6.0.2
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
fix: dialogs in thread
2026-01-26 18:25:52 +09:00
aclist a8417d27d7 fix: dialogs in thread 2026-01-26 17:00:55 +09:00
aclist 2d58bb491e Merge pull request #264 from aclist/fix/explicit-version
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
fix: explicitly use python 3.13
2026-01-17 01:19:40 +09:00
aclist 2f123da63a fix: explicitly use python 3.13 2026-01-17 01:18:40 +09:00
aclist 7016edf7cd Merge pull request #259 from aclist/prerelease/6.0.0
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
Prerelease/6.0.0
2026-01-15 05:38:25 +09:00
aclist b630cf4080 fix: write file after wiping cache
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
2026-01-15 05:13:35 +09:00
aclist 1034a5ac04 fix: store source path 2026-01-15 05:04:10 +09:00
aclist ebc62b0b1b fix: steam deck compatible source path expansion 2026-01-15 04:30:44 +09:00
aclist 4b47ff1fe0 fix: remove duplicate line 2026-01-15 03:41:38 +09:00
aclist e3155ad7ee fix: patch changes from testing 2026-01-15 03:08:00 +09:00
aclist c45d9fb234 Update funcs 2026-01-15 03:02:24 +09:00
aclist 22e92e67a7 Merge branch 'dzgui' into prerelease/6.0.0 2026-01-15 03:01:14 +09:00
aclist 236a5dd0a3 Merge pull request #256 from aclist/fix/unlink-loop
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
chore: normalize checksums
2026-01-04 21:34:41 +09:00
aclist 4c10958d10 chore: normalize checksums 2026-01-04 21:33:56 +09:00
aclist 23f7140c66 Merge pull request #255 from aclist/fix/unlink-loop
fix: regression introduced in 5.8.1
2026-01-04 21:25:38 +09:00
aclist fbcfa1fb34 fix: regression introduced in 5.8.1. 2026-01-04 21:24:06 +09:00
aclist 52f36e0d0a Merge pull request #252 from aclist/fix/setup-whitespaces
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
fix: whitespaces during setup
2025-12-28 00:03:40 +09:00
aclist d90c069a73 chore: correct version number in changelog 2025-12-28 00:01:30 +09:00
aclist 203ca0d388 chore: update changelog 2025-12-27 23:44:54 +09:00
aclist 34ee8c6645 fix: enclose whitespaces during setup 2025-12-27 23:42:49 +09:00
aclist 0cd561b62a fix: enclose game_dir in quotes 2025-12-27 23:06:11 +09:00
aclist b9c30b4f52 fix: encapsulate paths 2025-12-27 21:06:44 +09:00
aclist 4bcf894704 chore: update installscript branch 2025-12-27 20:41:25 +09:00
aclist c37800795b fix: malformed vdf path discovery 2025-12-27 20:39:09 +09:00
aclist adf8a62e8a Merge pull request #238 from aclist/doc/port-contributing
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
Doc/port contributing
2025-10-30 11:50:23 +09:00
aclist a1d14669c7 Merge pull request #237 from aclist/doc/port-contributing
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
docs: add contributing file
2025-10-30 11:49:04 +09:00
aclist 46a54cef12 docs: add contributing file 2025-10-30 11:47:10 +09:00
aclist 321384dc7b Merge pull request #222 from aclist/release/5.8.0
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
chore: release 5.8.0
2025-07-07 10:28:57 +09:00
aclist e02f02b775 chore: update changelog
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
2025-07-07 10:18:25 +09:00
aclist de524bd2a5 chore: backports from testing 2025-07-06 12:37:29 +09:00
aclist edee9b6234 Merge pull request #219 from aclist/feat/coc2
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
feat: add code of conduct
2025-06-05 17:49:08 +09:00
aclist cefd041e08 feat: add code of conduct 2025-06-05 17:48:38 +09:00
aclist 881b0b3008 Merge pull request #218 from aclist/feat/coc
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
feat: add code of conduct
2025-06-05 17:48:05 +09:00
aclist 2a59441dbc feat: add code of conduct 2025-06-05 17:47:07 +09:00
aclist 5ab18d0796 Merge pull request #214 from aclist/release/5.7.0
Release/5.7.0
2025-04-17 22:13:38 +09:00
aclist 23e3d34947 chore: update IP checksum 2025-04-17 21:52:36 +09:00
aclist b86dd37b50 chore: bump minor version 2025-04-17 21:50:33 +09:00
aclist 59fdd30236 docs: update changelog 2025-04-17 21:49:35 +09:00
aclist a35bfda5f1 fix: constrain window to viewport 2025-04-17 21:47:47 +09:00
aclist 5393bf1f5f fix: more robust ping method 2025-04-17 21:43:43 +09:00
aclist 90b3aa8663 Merge pull request #209 from aclist/aclist-patch-1
chore: update CHANGELOG.md
2025-04-05 09:15:56 +09:00
aclist 728e4daf7c chore: update CHANGELOG.md 2025-04-05 09:15:23 +09:00
aclist 7a210c7f39 Merge pull request #208 from aclist/fix/test-connection
chore: drop pre-boot check
2025-04-05 09:08:35 +09:00
aclist 459dd69359 chore: bump version 2025-04-05 09:07:02 +09:00
aclist fbd1a355d5 chore: drop pre-boot api check 2025-04-05 09:03:29 +09:00
aclist 82d2afb1f2 Merge pull request #207 from aclist/chore/2025-03-ipdb
chore: update ip records
2025-03-16 12:18:52 +09:00
aclist 8193980878 chore: update ip records 2025-03-16 12:17:41 +09:00
aclist acdb34d36a Merge pull request #206 from aclist/chore/index-url
chore: update to new index url
2025-03-15 17:01:19 +09:00
aclist d6d0b241e0 chore: update to new index url 2025-03-15 17:00:08 +09:00
aclist f75ef947c9 Merge pull request #204 from aclist/fix/batch-queries
fix: batch queries
2025-03-05 11:15:31 +09:00
aclist 6dc9a719ee fix: split up batch queries 2025-03-05 11:13:20 +09:00
aclist 785df28f66 Merge pull request #202 from aclist/chore/backports
chore: backports
2025-02-12 20:15:51 +09:00
aclist 66e114a400 chore: backports 2025-02-10 17:54:45 +09:00
aclist 2ba07bbba8 Merge pull request #197 from aclist/dzgui
chore: merge stable onto archival branch
2025-02-09 19:55:27 +09:00
aclist 65eda05d9f Merge pull request #200 from aclist/chore/templates-stable
chore: back up templates from stable
2025-02-09 19:54:17 +09:00
aclist f3b3f79bfb chore: back up templates from main 2025-02-09 19:53:25 +09:00
aclist 28c7d7f949 Merge pull request #198 from aclist/fix/drop-files
chore: drop extraneous file
2025-02-09 19:02:02 +09:00
aclist d072c8107e chore: drop extraneous file 2025-02-09 19:01:30 +09:00
aclist 0629c8a6ba Merge pull request #196 from aclist/release/5.6.3
chore: update IP db
2025-02-09 18:56:13 +09:00
aclist 8aea4af687 chore: update IP db 2025-02-09 18:55:33 +09:00
aclist 0562d8230d Merge pull request #195 from aclist/release/5.6.2
chore: prepare release
2025-01-24 16:40:07 +09:00
aclist 759327e932 chore: prepare release 2025-01-23 12:02:27 +09:00
aclist 36753e02f1 Merge pull request #193 from aclist/release/5.6.1
Release/5.6.1
2025-01-10 22:48:54 +09:00
aclist 2ab2e23736 docs: update readme 2025-01-10 22:45:56 +09:00
aclist 34e7b2e480 fix: jq 1.6 support 2025-01-10 22:45:25 +09:00
aclist 540d0ad7e4 Update bug_report.yml 2025-01-09 23:32:28 +09:00
aclist 47bea45111 Update feature.yml 2025-01-09 23:32:27 +09:00
aclist d03346b56a Update trouble.yml 2025-01-09 23:32:26 +09:00
aclist 54e0762882 Update feature.yml 2025-01-09 23:31:21 +09:00
aclist 0834a86d33 Update trouble.yml 2025-01-09 23:30:54 +09:00
aclist c6a8841614 Update trouble.yml 2025-01-09 23:30:37 +09:00
aclist df92acb7dc Update bug_report.yml 2025-01-09 23:30:24 +09:00
aclist a333571f94 Update bug_report.yml 2025-01-09 23:28:46 +09:00
aclist 05f88b6019 Update trouble.yml 2025-01-09 23:27:08 +09:00
aclist 1f31c43fe4 Update trouble.yml 2025-01-09 20:39:35 +09:00
aclist 0763416903 Update feature.yml 2025-01-09 20:39:25 +09:00
aclist 3b384c5a4d Update bug_report.yml 2025-01-09 20:39:17 +09:00
aclist 3ab666a807 Merge pull request #190 from aclist/release/5.6.0
Release/5.6.0
2025-01-07 21:46:53 +09:00
aclist c8f7a32284 chore: update db checksum 2025-01-07 21:39:16 +09:00
aclist a070e9fc65 chore: drop unused log file 2025-01-07 20:54:03 +09:00
aclist 5f55e3c664 Merge branch 'release/5.6.0' of github.com:aclist/dztui into release/5.6.0 2025-01-07 20:52:58 +09:00
aclist 07606d8852 docs: update changelog 2025-01-07 20:51:57 +09:00
aclist afffc90abc Update trouble.yml 2025-01-07 19:55:31 +09:00
aclist 70db7b45b3 Update trouble.yml 2025-01-07 19:54:19 +09:00
aclist aac8558079 Update trouble.yml 2025-01-07 19:53:15 +09:00
aclist ac8ff2febf Update trouble.yml 2025-01-07 19:52:29 +09:00
aclist 6369d895fd Update feature.yml 2025-01-07 19:51:58 +09:00
aclist 7413f7c029 Update bug_report.yml 2025-01-07 19:51:46 +09:00
aclist 3f1d8cb24f Merge branch 'dzgui' into release/5.6.0 2025-01-07 00:59:57 +09:00
aclist 4df12605fc chore: update changelog 2025-01-07 00:55:58 +09:00
aclist 2c5da88e06 Update bug_report.yml 2025-01-06 20:28:34 +09:00
aclist 3cb6175436 Update feature.yml 2025-01-06 20:28:23 +09:00
aclist 3739f19ab2 Update trouble.yml 2025-01-06 20:28:12 +09:00
aclist 2da4d001d6 Update trouble.yml 2025-01-06 20:27:30 +09:00
aclist 5d61a1f513 Update trouble.yml 2025-01-06 20:26:29 +09:00
aclist 56c80d187b Update trouble.yml 2025-01-06 20:26:20 +09:00
aclist e08f66cdcb Update trouble.yml 2025-01-06 20:25:22 +09:00
aclist 48fee301bb Update trouble.yml 2025-01-06 20:24:47 +09:00
aclist 20511f5661 Update trouble.yml 2025-01-06 20:24:14 +09:00
aclist d2e8333ba9 Update trouble.yml 2025-01-06 20:21:10 +09:00
aclist 5d37039064 Update trouble.yml 2025-01-06 20:20:57 +09:00
aclist ce44cdbc54 Update trouble.yml 2025-01-06 20:20:36 +09:00
aclist 5b2738420e Create trouble.yml 2025-01-06 20:19:41 +09:00
aclist 1e29288e2a Update feature.yml 2025-01-06 20:10:08 +09:00
aclist 745cc06091 Update feature.yml 2025-01-06 20:09:08 +09:00
aclist 0311cc8a95 Create feature.yml 2025-01-06 20:08:29 +09:00
aclist 7c3521cf97 Delete .github/ISSUE_TEMPLATE/feature.md 2025-01-06 20:08:16 +09:00
aclist bb0eefadd2 Delete .github/ISSUE_TEMPLATE/test.yml 2025-01-06 20:03:41 +09:00
aclist 7eb5a4fac5 Update bug_report.yml 2025-01-06 20:02:52 +09:00
aclist ebce329c3d Delete .github/ISSUE_TEMPLATE/bug_report.md 2025-01-06 20:02:38 +09:00
aclist 23464d3b51 Update bug_report.yml 2025-01-06 20:01:30 +09:00
aclist 602a7b8edc Update bug_report.yml 2025-01-06 19:59:20 +09:00
aclist 59c58a1df5 Update bug_report.yml 2025-01-06 19:57:56 +09:00
aclist 830318d98e Update bug_report.yml 2025-01-06 19:57:00 +09:00
aclist 271c3e6197 Update bug_report.yml 2025-01-06 19:56:39 +09:00
aclist 1ab9634069 Update bug_report.yml 2025-01-06 19:54:29 +09:00
aclist 8666b0055a Update bug_report.yml 2025-01-06 19:53:52 +09:00
aclist 406554e011 Create bug_report.yml 2025-01-06 19:50:39 +09:00
aclist 5334d07f7f Create test.yml 2025-01-06 19:41:34 +09:00
aclist 6cab96d1f8 Create config.yml 2025-01-06 19:39:18 +09:00
aclist bc94d989d4 Delete .github/feature.md 2025-01-06 19:37:57 +09:00
aclist e4fff5f242 Create feature.md 2025-01-06 19:37:38 +09:00
aclist 53f2fe922a Create feature.md 2025-01-06 19:37:00 +09:00
aclist 800f68a1b7 Update bug_report.md 2025-01-06 19:32:55 +09:00
aclist c6c377e8b9 Update bug_report.md 2025-01-06 19:30:16 +09:00
aclist 7a68d7e097 Update issue templates 2025-01-06 19:27:44 +09:00
aclist f60a6edf2b Merge pull request #182 from aclist/patch/yaml
Patch/yaml
2024-12-25 14:21:49 +09:00
aclist 8c33a1b371 chore: drop branch logic 2024-12-25 14:21:24 +09:00
aclist e5f7391b89 chore: add YAML file 2024-12-25 14:20:36 +09:00
aclist a8f51280e8 Update mirror.yml 2024-12-25 14:19:04 +09:00
aclist c19346529b Update mirror.yml 2024-12-25 14:12:08 +09:00
aclist 85451f765b Update mirror.yml 2024-12-25 14:09:54 +09:00
aclist 5a144f7815 Merge pull request #179 from jiriks74/add_mirror_action
feat(ci): Add workflow for pushing to Codeberg
2024-12-25 12:42:58 +09:00
jiriks74 2370e81403 feat(ci): Add workflow for pushing to Codeberg 2024-12-17 17:24:32 +01:00
aclist c11511abff Merge pull request 'chore: backports into stable' (#5) from release/testing-backports into dzgui
Reviewed-on: https://codeberg.org/aclist/dztui/pulls/5
2024-12-13 01:50:01 +00:00
aclist bda7223ac8 Merge pull request #176 from aclist/release/testing-backports
Release/testing backports
2024-12-13 10:47:54 +09:00
aclist 6b48ee127d chore: backports into stable 2024-12-13 10:45:39 +09:00
aclist aa8a52bfc0 Merge pull request 'release/readme' (#4) from release/readme into dzgui
Reviewed-on: https://codeberg.org/aclist/dztui/pulls/4
2024-12-12 09:33:32 +00:00
aclist 8ea62434ee docs: update docs link 2024-12-12 18:32:44 +09:00
aclist baeaeb1b64 docs: update README 2024-12-12 17:57:27 +09:00
aclist 32b424da5c fix: update installscript 2024-12-12 12:25:26 +09:00
aclist d71110d0a1 fix: url syntax 2024-12-12 12:10:04 +09:00
aclist bc9178d2de fix: triage hotfix from testing 2024-12-12 11:56:10 +09:00
aclist 1533febf9a Merge pull request #172 from aclist/release/5.5.1
fix: backport hotfix (#168)
2024-12-03 20:10:29 +09:00
aclist c3c8872fad fix: backport hotfix (#168) 2024-12-03 20:09:19 +09:00
aclist bae6a57e1e Merge pull request #164 from aclist/dzgui
5.5.0 backports
2024-11-11 09:35:17 +09:00
aclist 3bdc0057a2 Merge pull request #163 from aclist/release/5.5.0-stable
Release/5.5.0 stable
2024-11-11 09:22:06 +09:00
aclist 5496f914f2 fix: correct typo 2024-11-11 09:17:47 +09:00
aclist cb9db55bcb Merge branch 'dzgui' into release/5.5.0-stable 2024-11-11 06:08:47 +09:00
aclist c0ab8111fd chore: bump version 2024-11-11 06:05:56 +09:00
aclist 10c6a79b17 chore: normalize changelog 2024-11-11 06:05:49 +09:00
aclist 2b4b533a5b Merge pull request #156 from aclist/release/5.4.2
Release/5.4.2
2024-10-06 03:31:10 +09:00
aclist dcb8be9132 chore: update checksum 2024-10-06 03:27:49 +09:00
aclist 278aa8c28a chore: update checksum 2024-10-06 03:26:24 +09:00
aclist 32e5bafb33 Merge branch 'dzgui' into release/5.4.2 2024-10-06 03:25:16 +09:00
aclist 59e19510e3 Merge pull request #152 from aclist/release/5.4.1
Release/5.4.1
2024-09-28 20:51:19 +09:00
aclist 45ab112970 Merge branch 'dzgui' into release/5.4.1 2024-09-25 23:11:28 +09:00
aclist ed07fd0343 chore: normalize changelog 2024-09-25 23:08:29 +09:00
aclist c2c7b37b90 Merge pull request #151 from aclist/release/5.3.0-backports
Release/5.3.0 backports
2024-09-09 17:16:31 +09:00
aclist 23798c91d3 Merge pull request #149 from aclist/release/5.3.0
chore: normalize version
2024-09-01 13:19:35 +09:00
aclist 659cbb83a3 chore: normalize version 2024-09-01 13:19:16 +09:00
aclist 32c467fc6d Merge pull request #147 from aclist/release/5.3.3
Release/5.3.3 (stable)
2024-09-01 13:13:54 +09:00
aclist d01add3573 docs: update changelog 2024-08-29 22:11:49 +09:00
aclist 0de89a3ef1 add: set WM_CLASS name 2024-08-28 08:44:13 +09:00
aclist 5686ea76c2 fix: boolean operator 2024-08-28 08:09:32 +09:00
aclist 5fda598173 chore: update url 2024-08-28 07:31:14 +09:00
aclist 049fb47019 chore: normalize version 2024-08-28 07:30:38 +09:00
aclist 81f269b71b chore: normalize changelog 2024-08-28 07:29:02 +09:00
aclist c97a7a260f Merge pull request #133 from aclist/docs/kb
docs: update API info
2024-07-14 22:26:03 +09:00
aclist b715eb5a3e Merge pull request #132 from aclist/docs/kb
docs: fix url
2024-07-06 20:45:12 +09:00
aclist 8e6cf7e792 Merge pull request #126 from aclist/dzgui
backports
2024-06-23 12:51:24 +09:00
aclist 98868073a5 Merge pull request #124 from aclist/dzgui
backports
2024-06-23 12:00:35 +09:00
7 changed files with 236 additions and 176 deletions

No files matched your search

+3
View File
@@ -1 +1,4 @@
tags
__pycache__
pre-commit
tests/
+18 -3
View File
@@ -1,5 +1,20 @@
# Changelog
## [6.0.2] 2026-01-26
## Fixed
- Explicitly use Python 3.13 when calling subprocesses
- Raise error correctly from module
- Do not spawn dialogs from inside of thread when fetching prereqs
## Changed
- Optimize time complexity of startup checks
- Optimize coordinate calculation by using local records first
- Rename some internal functions
- Wrap entire startup process in dialog
## [6.0.1] 2026-01-16
## Fixed
- Explicitly use Python 3.13 when calling subprocesses
## [6.0.0] 2026-01-14
## Added
- Support DayZ Experimental
@@ -373,7 +388,7 @@ As part of this change, version 4.0.0 introduces the ability to connect to or ad
If you encounter any problems with this new release or with the migration of configs, please do not hesitate to submit a bug report.
Attention Fedora 38 users: problems with upstream GNOME packages causing crashes have been reported to GNOME development and a fix has been issued. You have the choice of compiling the zenity package
Attention Fedora 38 users: problems with upstream GNOME packages causing crashes have been reported to GNOME development and a fix has been issued. You have the choice of compiling the zenity package
from source or waiting until the latest version is merged into Fedora's package manager.
### Added
@@ -398,7 +413,7 @@ from source or waiting until the latest version is merged into Fedora's package
- Store complete IP:Port instead of server IDs
- Make Battlemetrics API key optional: this is only used for the 'Connect by ID' and 'Add server by ID' methods and is not required. If you prefer, you can simply connect/add by IP.
- Prevent the application from launching in Game Mode on Steam Deck: Steam Deck's kiosk mode has problems sending keyboard input to third party applications. To prevent unintended usage, DZGUI now warns the user to launch the app in Desktop Mode if they attempt to use it from Game Mode. Adding DZGUI as a Non-Steam Game does work on desktop PCs, but is not recommended due to the way Steam handles subshells. For best results, launch DZGUI directly via the script/applications menu (PC) or via the desktop icon (Steam Deck).
- Omit null servers from list: servers that time out or send an empty response are now omitted entirely from the My Servers list, as they will not return meaningful metadata unless they are online.
- Omit null servers from list: servers that time out or send an empty response are now omitted entirely from the My Servers list, as they will not return meaningful metadata unless they are online.
The My Servers list thus shows online and accessible servers
## [3.3.0] 2023-05-16
@@ -417,7 +432,7 @@ from source or waiting until the latest version is merged into Fedora's package
- First-time setup: sudo escalation when checking system map count for the first time
### Fixed
- Steam Deck: non-ASCII delimiter causing setup menu to despawn on some devices
- Steam Deck: non-ASCII delimiter causing setup menu to despawn on some devices
- Don't add items in My Servers multiple times to array when the list of favorites is paginated
- Trigger progress dialogs sooner and in sequence to reduce appearance of visual lag
- First-time setup: break out of dialogs correctly when user backs out
+9 -1
View File
@@ -11,6 +11,15 @@ This overcomes certain limitations in the Linux client and helps prepare the gam
- Concatenate launch options to pass to Steam
- Connect to mod-enabled LAN servers
## Design philosophy
DZGUI follows a specific set of guidelines, enumerated below:
- Provide a free and open-source tool under GPL
- Do not use undocumented, third-party servers to aggregate data; no central "DZGUI" server
- All connections go to Steam and DayZ servers directly; the tool should function in perpetuity without intermediary endpoints
- Target Linux desktop and Steam deck specifically; not a cross-platform tool
## Setup and usage
Refer to the documentation for installation and setup instructions:
@@ -18,7 +27,6 @@ Refer to the documentation for installation and setup instructions:
- [GitHub](https://aclist.github.io/dzgui/index.html)
- [Mirror (Codeberg)](https://aclist.codeberg.page)
![A screenshot of DZGUI](/images/example.png)
## Attribution
+118 -70
View File
@@ -1,9 +1,8 @@
#!/usr/bin/env bash
set -o pipefail
src_path=$(realpath "$0")
version=6.0.0
src_path="$(readlink -e "$0")"
version=6.0.2
#CONSTANTS
aid=221100
@@ -41,6 +40,7 @@ cols_file="$state_path/$prefix.cols.json"
#CACHE FILES
coords_file="$cache_path/$prefix.coords"
src_path_file="$cache_path/$prefix.src"
#legacy paths
hist_file="$config_path/history"
@@ -117,6 +117,7 @@ setup_state_files(){
done
logger INFO "Wiped cache files"
fi
echo "$src_path" > "$src_path_file"
}
print_config_vals(){
local keys=(
@@ -141,7 +142,7 @@ test_gobject(){
python3.13 -c "import gi"
if [[ ! $? -eq 0 ]]; then
logger CRITICAL "Missing PyGObject"
quit_with_pdialog "Requires PyGObject (python-gobject)"
quit_with_help_dialog "Requires PyGObject (python-gobject)"
exit 1
fi
logger INFO "Found PyGObject in Python env"
@@ -246,7 +247,7 @@ open_url(){
xdg-open "$url"
fi
}
quit_with_pdialog(){
quit_with_help_dialog(){
local sel
msg="$1"
help_button="Open help page"
@@ -259,7 +260,7 @@ quit_with_pdialog(){
check_pyver(){
if [[ ! $(python3.13 --version) ]]; then
local msg="Requires Python 3.13"
quit_with_pdialog "$msg"
quit_with_help_dialog "$msg"
fi
}
watcher_deps(){
@@ -334,6 +335,7 @@ check_unmerged(){
fi
}
check_version(){
echo "# Checking version"
[[ -n $reference_branch ]] && return
local version_url=$(format_version_url)
local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
@@ -384,7 +386,7 @@ prompt_dl(){
Your branch: $branch
Your version: $version
Upstream version: $upstream
Version updates introduce important bug fixes and are encouraged. Attempt to download the latest version?
EOF
}
@@ -413,6 +415,7 @@ test_display_mode(){
fi
}
check_architecture(){
echo "# Checking system architecture"
local cpu=$(< /proc/cpuinfo awk -F": " '/AMD Custom APU [0-9]{4}$/ {print $2; exit}')
read -a APU_MODEL <<< "$cpu"
if [[ ${APU_MODEL[3]} != "0932" ]] && [[ ${APU_MODEL[3]} != "0405" ]]; then
@@ -429,6 +432,7 @@ check_architecture(){
logger INFO "Setting architecture to 'Steam Deck'"
}
check_map_count(){
echo "# Checking map count"
[[ $is_steam_deck -gt 0 ]] && return 0
local map_count_file="/proc/sys/vm/max_map_count"
local min_count=1048576
@@ -478,6 +482,7 @@ tdialog(){
$steamsafe_zenity --info --text="$1" "${zenity_flags[@]}"
}
steam_deps(){
echo "# Checking Steam"
local flatpak
local steam
[[ $(command -v flatpak) ]] && flatpak=$(flatpak list | grep valvesoftware.Steam)
@@ -488,16 +493,8 @@ steam_deps(){
exit 1
fi
}
migrate_files(){
if [[ ! -f $config_path/dztuirc.oldapi ]]; then
cp $config_file $config_path/dztuirc.oldapi
logger INFO "Migrated old API file"
fi
[[ ! -f $hist_file ]] && return
rm $hist_file
logger INFO "Wiped old history file"
}
stale_symlinks(){
echo "# Cleaning stale symlinks"
local game_dir="$steam_path/steamapps/common/DayZ"
readarray -t links < <(find "$game_dir" -xtype l)
for link in "${links[@]}"; do
@@ -511,7 +508,7 @@ check_availability() {
return 1
fi
local url=$1
local timeout_sec="3"
local timeout_sec="2"
if [[ $2 ]]; then
timeout_sec=$2
fi
@@ -522,6 +519,7 @@ check_availability() {
}
local_latlon(){
echo "# Checking coordinates"
if [[ -z $(command -v dig) ]]; then
local url_ipecho="https://ipecho.net/plain"
if ! check_availability "ipecho.net"; then
@@ -533,6 +531,9 @@ local_latlon(){
# TODO : implement checking remote
local local_ip=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
fi
if calc_local_coords "$local_ip"; then
return 0
fi
local url_ip_api="http://ip-api.com/json/$local_ip"
if ! check_availability "ip-api.com"; then
logger WARN "Failed to get local coordinates, ip-api.com service may be down."
@@ -547,6 +548,7 @@ local_latlon(){
}
lock(){
echo "# Setting up lock file"
[[ ! -f $lock_file ]] && touch $lock_file
local pid=$(cat $lock_file)
ps -p $pid -o pid= >/dev/null 2>&1
@@ -624,12 +626,12 @@ fetch_helpers_by_sum(){
[[ -f "$config_file" ]] && source "$config_file"
declare -A sums
sums=(
["funcs"]="8e281479d7b7e6bab9e81fcdf0205ce9"
["funcs"]="5523d933e9f0668fc14b3faf0d4aafd8"
["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
["servers.py"]="ed442c3aecf33f777d59dcf53650d263"
["ui.py"]="3d67e5e8e85a23dde1fd0e85a9be62a9"
["ui.py"]="d09b9d8bed3854efd51377289786c5ac"
["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
["pefile.py"]="21531f2c0d9dfa5f110cf6779f9d22c0"
["pefile.py"]="b452974a84bff1d821872fcebf59e380"
)
local author="aclist"
local repo="dztui"
@@ -689,11 +691,12 @@ fetch_km_helper(){
}
get_response_code(){
local url="$1"
curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
curl --connect-timeout 3 -Ls -I -o /dev/null -w "%{http_code}" "$url"
}
fetch_ip_db(){
parse_dl_url(){
curl -Ls "$url" \
curl --connect-timeout 3 -Ls "$url" \
| grep "csv.gz" \
| awk -F"['']" '{print $2}'
}
@@ -709,6 +712,9 @@ fetch_ip_db(){
fetch(){
logger INFO "Triggering fetch routine"
local url="$1"
local ip_file="${state_path}/ips.csv"
local base_file="${state_path}/${this_month}.csv.gz"
local extracted_file="${state_path}/${this_month}.csv"
curl -Ls "$url" > "$base_file"
if [[ $? -ne 0 ]]; then
@@ -728,7 +734,7 @@ fetch_ip_db(){
logger WARN "Abnormal exit while parsing IPs"
return
fi
rm "${state_path}/${month}.csv"
rm "${state_path}/${this_month}.csv"
readarray -t records < <(cat $ip_file | awk -F, 'NR==1 {print $1} END {print $1}')
if [[ ${records[0]} != "0.0.0.0" ]] && [[ ${records[1]} != "224.0.0.0" ]]; then
@@ -743,55 +749,57 @@ fetch_ip_db(){
rm "$ip_file"
fi
echo "$month" > "$month_file"
logger INFO "Wrote '$month' to stub '$month_file'"
echo "$this_month" > "$month_file"
logger INFO "Wrote '$this_month' to stub '$month_file'"
logger INFO "Updated '$ip_file'"
}
check_remote(){
local url="$1"
local res=$(get_response_code "$url")
if [[ $res -ne 200 ]]; then
logger WARN "Failed to retrieve remote resource: '$url' ($res)"
return
fi
logger INFO "Resolved remote URL: '$url'"
# test dl url
local dl_url="$(parse_dl_url)"
local res=$(get_response_code "$dl_url")
if [[ $res -ne 200 ]]; then
logger WARN "Remote resource unavailable: '$dl_url' ($res)"
return
fi
logger INFO "Resolved download URL: '$dl_url'"
fetch "$dl_url"
}
local url="https://db-ip.com/db/download/ip-to-city-lite"
local month_file="${state_path}/.month"
local ip_file="${state_path}/ips.csv"
# test main url
local res=$(get_response_code "$url")
if [[ $res -ne 200 ]]; then
logger WARN "Failed to retrieve remote resource: '$url' ($res)"
return
fi
logger INFO "Resolved remote URL: '$url'"
# test dl url
local dl_url="$(parse_dl_url)"
local res=$(get_response_code "$dl_url")
if [[ $res -ne 200 ]]; then
logger WARN "Remote resource unavailable: '$dl_url' ($res)"
return
fi
logger INFO "Resolved download URL: '$dl_url'"
local month=$(parse_dl_url_date "$dl_url")
local base_file="${state_path}/${month}.csv.gz"
local extracted_file="${state_path}/${month}.csv"
month_file="${state_path}/.month"
this_month=$(date +%Y-%m)
# no stub file
if [[ ! -f $month_file ]]; then
logger WARN "No stub file '$month_file' present"
fetch "$dl_url"
return
fi
# local needs update
local last_month=$(< "$month_file")
if [[ $last_month != "$month" ]]; then
logger WARN "Local stub '$last_month' does not match remote stub '$month'"
fetch "$dl_url"
check_remote "$url"
return
fi
# if stub is same date, abort
logger INFO "Local stub '$last_month' is identical to remote, skipping"
local last_month=$(< "$month_file")
if [[ $last_month == "$this_month" ]]; then
logger INFO "Local stub '$last_month' is identical to remote, skipping"
return
fi
# local needs update
logger WARN "Local stub '$last_month' does not match '$this_month'"
check_remote "$url"
return
}
fetch_helpers(){
echo "# Checking helper files"
fetch_a2s
fetch_dzq
fetch_km_helper
@@ -890,7 +898,7 @@ file_picker(){
}
find_library_folder(){
local search_path="$1"
readarray -t paths < <(python3 "$helpers_path/vdf2json.py" -i "$1/steamapps/libraryfolders.vdf" \
readarray -t paths < <(python3.13 "$helpers_path/vdf2json.py" -i "$1/steamapps/libraryfolders.vdf" \
| jq -r '.libraryfolders[]|select(.apps|has("221100")).path')
if [[ ! $? -eq 0 ]]; then
logger WARN "Failed to parse Steam path using '$search_path'"
@@ -979,6 +987,7 @@ create_config(){
done
}
varcheck(){
echo "# Checking config file"
local msg="Config file '$config_file' missing. Start first-time setup now?"
local msg2="The Steam paths set in your config file appear to be invalid (DayZ was moved or uninstalled). Restart first-time setup now?"
if [[ ! -f $config_file ]]; then
@@ -1005,12 +1014,14 @@ varcheck(){
fi
}
is_dzg_downloading(){
echo "# Checking DayZ"
if [[ -d $steam_path ]] && [[ -d $steam_path/downloading/$aid ]]; then
logger WARN "DayZ may be scheduling updates"
return 0
fi
}
is_steam_running(){
echo "# Checking Steam"
local res=$(ps aux | grep "steamwebhelper" | grep -v grep)
if [[ -z $res ]]; then
logger WARN "Steam may not be running"
@@ -1023,6 +1034,7 @@ get_response_code(){
curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
}
test_connection(){
echo "# Testing connection"
declare -A hr
local res1
local res2
@@ -1056,6 +1068,7 @@ legacy_cols(){
mv $cols_file.new $cols_file
}
stale_mod_signatures(){
echo "# Checking stale mods"
[[ ! -f "$versions_file" ]] && return
local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
if [[ -d $workshop_dir ]]; then
@@ -1069,18 +1082,48 @@ stale_mod_signatures(){
}
create_new_links(){
echo "# Setting up symlinks"
"$func_helper" "update_symlinks"
}
calc_local_coords(){
local ip="$1"
[[ ! -f "$geo_helper" ]] && return 1
IFS="." read -ra split <<< "$ip"
[[ ${#split[@]} -ne 4 ]] && return 1
prefix="^${split[0]}.${split[1]}."
readarray -t res < <(grep "$prefix" "$geo_helper")
for address in "${res[@]}"; do
IFS="," read -ra fields <<< "$address"
upper="${fields[1]}"
IFS="." read -ra upper_digits <<< "$upper"
if [[ ${split[2]} -gt ${upper_digits[2]} ]]; then
continue
fi
if [[ ${split[2]} -eq ${upper_digits[2]} ]]; then
if [[ ${split[3]} -gt ${upper_digits[3]} ]]; then
continue
fi
if [[ ${split[3]} -eq ${upper_digits[3]} ]]; then
echo "${fields[-2]}" >> "$coords_file"
echo "${fields[-1]}" >> "$coords_file"
return 0
fi
fi
if [[ ${split[2]} -lt ${upper_digits[2]} ]]; then
echo "${fields[-2]}" >> "$coords_file"
echo "${fields[-1]}" >> "$coords_file"
return 0
fi
done
return 1
}
initial_setup(){
setup_dirs
setup_state_files
depcheck
check_pyver
test_gobject
watcher_deps
check_architecture
test_connection
fetch_helpers > >(pdialog "Checking helper files")
fetch_helpers
varcheck
source "$config_file"
lock
@@ -1089,14 +1132,12 @@ initial_setup(){
check_version
check_map_count
steam_deps
migrate_files
stale_symlinks
stale_mod_signatures
create_new_links
local_latlon
is_steam_running
is_dzg_downloading
print_config_vals
}
uninstall(){
_full(){
@@ -1198,8 +1239,15 @@ main(){
set_im_module
printf "Initializing setup...\n"
initial_setup
printf "Checking dependencies...\n"
setup_dirs
setup_state_files
depcheck
check_pyver
test_gobject
watcher_deps
initial_setup > >(pdialog "Initializing setup")
printf "All OK. Kicking off UI...\n"
python3.13 "$ui_helper" "--init-ui" "$version" "$is_steam_deck"
+8 -7
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -o pipefail
version="6.0.0"
version="6.0.2"
#CONSTANTS
aid=221100
@@ -51,6 +51,7 @@ _cache_binary="$cache_dir/$prefix.binary"
_cache_coords="$cache_path/$prefix.coords"
_cache_cooldown="$cache_path/$prefix.cooldown"
_cache_lan="$cache_path/$prefix.lan"
_cache_src_path="$cache_path/$prefix.src"
#XDG
freedesktop_path="$HOME/.local/share/applications"
@@ -285,7 +286,7 @@ a2s(){
local mode="$3"
logger INFO "Querying '$ip:$qport' with mode '$mode'"
local res
res=$(python3 "$query_helper" "$ip" "$qport" "$mode")
res=$(python3.13 "$query_helper" "$ip" "$qport" "$mode")
if [[ $? -eq 1 ]]; then
res=$(try_fallback "$ip" "$qport" "$mode")
if [[ $? -eq 1 ]]; then
@@ -308,7 +309,7 @@ is_in_favs(){
find_id(){
local file="$default_steam_path/config/loginusers.vdf"
[[ ! -f $file ]] && return 1
local res=$(python3 "$helpers_path/vdf2json.py" \
local res=$(python3.13 "$helpers_path/vdf2json.py" \
-i "$file" \
| jq -r '.users
|to_entries[]
@@ -337,7 +338,7 @@ list_mods(){
name=$(awk -F\" '/name/ {print $2}' "${dir}/meta.cpp")
base_dir=$(basename $(readlink -f $game_dir/$symlink))
size=$(du -s "$(readlink -f "$game_dir/$symlink")" | awk '{print $1}')
size=$(python3 -c "n=($size/1024) +.005; print(round(n,4))")
size=$(python3.13 -c "n=($size/1024) +.005; print(round(n,4))")
LC_NUMERIC=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
done | sort -k1)
# user may have manually pruned mods out-of-band
@@ -396,6 +397,7 @@ get_dist(){
logger INFO "Distance: $dist km"
fi
}
query_config(){
[[ -n $2 ]] && local key=$2
keys=(
@@ -421,6 +423,7 @@ query_config(){
echo "${!i}"
done
}
align_versions_file(){
shift
local mod="$1"
@@ -586,9 +589,6 @@ default_steam_path="$default_steam_path"
#Preferred Steam launch command (for Flatpak support)
preferred_client="$preferred_client"
#DZGUI source path
src_path="$src_path"
END
}
format_version_url(){
@@ -642,6 +642,7 @@ download_new_version(){
return 1
fi
local version_url="$(format_version_url)"
local src_path="$(< "$_cache_src_path")"
mv "$src_path" "$src_path.old"
curl -Ls "$version_url" > "$src_path"
rc=$?
+1 -1
View File
@@ -295,7 +295,7 @@ def get_dayz_version(file: Path) -> DayZVersion | Exception:
try:
version = get_version(file)
except Exception as e:
return e
raise e
patch = str(version.build) + str(version.revision)
dz_vers = DayZVersion(version.major, version.minor, int(patch))
return dz_vers
+79 -94
View File
@@ -19,7 +19,7 @@ from collections.abc import Callable
from concurrent.futures import wait
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
from typing import Literal, Self, Any
from typing import Literal, Self, Any, TYPE_CHECKING
import servers as Servers # noqa E402
import pefile as PeFile # noqa E402
@@ -32,10 +32,12 @@ from pefile import (
)
from pefile import VersionMatch
if TYPE_CHECKING:
from servers import Prereqs
locale.setlocale(locale.LC_ALL, "")
import gi # noqa E402
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
@@ -1027,13 +1029,7 @@ def process_tree_option(choice: RowType) -> None:
return
record = str_to_record(record)
thread_new_with_dialog(
App.treeview.prepare_connection,
parse_shell_output,
"Querying server",
command,
[record],
)
prepare_connection(command, record)
return
match command.dict["type"]:
@@ -1061,48 +1057,54 @@ def parse_shell_output(proc: subprocess.CompletedProcess, row: RowType):
process_shell_return_code(msg, proc.returncode, row)
def thread_new_with_dialog(
func: Callable,
callback: Callable | None,
msg: str,
row: RowType | None,
args: list,
def prepare_connection(rowtype: RowType, record: Record) -> None:
def background(rowtype: RowType, record: Record) -> None:
def cleanup() -> None:
App.treeview.wait_dialog.destroy()
# NOTE: When using RowType.CONN_BY_IP, the gameport needs to be interpolated
record.gameport = prereqs.gameport
addr = record_to_str(record)
if proceed is False:
spawn_dialog(msg, Popup.NOTIFY)
return
if msg != "":
res = spawn_dialog(msg, Popup.CONFIRM)
if res is False:
try_connect(addr, str(prereqs.appid), str(pefile_path), rowtype)
else:
try_connect(addr, str(prereqs.appid), str(pefile_path), rowtype)
proceed, msg, pefile_path, prereqs = App.treeview.get_prereqs(record)
GLib.idle_add(cleanup)
msg = "Checking prerequisites"
App.treeview.dialog_show(msg)
thread = threading.Thread(target=background, args=(rowtype, record))
thread.start()
def try_connect(
addr: str,
appid: str,
path: str,
row: RowType
) -> None:
"""
Pop a GenericDialog transient to App.treeview and
call a function on a thread, with optional callback.
Chiefly used for connection-related subprocesses.
After completion, the dialog is destroyed in the main event loop
and additional exception handling occurs.
This is intended as a bridge between legacy shell methods and the UI.
A more abstracted version of call_on_thread() for when extra threaded
processing occurs before calls to shell subprocesses.
"""
def background(*args):
def background(addr, appid, path):
def cleanup():
App.treeview.dialog_hide()
if exception is not None:
spawn_dialog(str(exception), Popup.NOTIFY)
process_user_input(row)
return
if callback is not None and proc is not None:
callback(proc, row)
parse_shell_output(proc, row)
exception = None
proc = None
try:
proc = func(*args)
proc = call_out("try_connect", addr, appid, path)
except Exception as e:
exception = e
logger.critical(e)
GLib.idle_add(cleanup)
return
GLib.idle_add(cleanup)
msg = "Querying server"
App.treeview.dialog_show(msg)
thread = threading.Thread(target=background, args=(args))
thread = threading.Thread(target=background, args=(addr, appid, path))
thread.start()
@@ -1142,27 +1144,31 @@ def record_to_str(record: Record) -> str:
def connect_by_ip(enum: RowType, response: str) -> None:
def _prep(response: str) -> None:
try:
record = Servers.validate_ip(response)
proc = App.treeview.prepare_connection(record)
return proc
thread_new_with_dialog(
_prep, parse_shell_output, "Querying IP", enum, [response]
)
return
except Exception as e:
spawn_dialog(str(e), Popup.NOTIFY)
return
prepare_connection(enum, record)
def connect_by_id(enum: RowType, response: str, key: str) -> None:
def _prep(key: str, response: str) -> None:
record = Servers.query_bm_api(key, response)
proc = App.treeview.prepare_connection(record)
return proc
def cleanup() -> None:
App.treeview.dialog_hide()
prepare_connection(enum, record)
thread_new_with_dialog(
_prep, parse_shell_output, "Querying API", enum, [key, response]
)
return
try:
record = Servers.query_bm_api(key, response)
except Exception as e:
spawn_dialog(str(e), Popup.NOTIFY)
App.treeview.dialog_hide()
return
GLib.idle_add(cleanup)
msg = "Validating ID"
App.treeview.dialog_show(msg)
thread = threading.Thread(target=_prep, args=(key, response))
thread.start()
def process_user_input(enum: RowType) -> None:
@@ -2493,6 +2499,8 @@ class TreeView(Gtk.TreeView):
def _dump_servers(self, ips: list) -> list | None:
if len(ips) == 0:
return []
# NOTE: block malformed records
ips = [ip for ip in ips if len(ip.split(":")) == 3 and ip.split(":")[2] != "" ]
with ThreadPoolExecutor() as executor:
futures = [
executor.submit(
@@ -2943,9 +2951,9 @@ class TreeView(Gtk.TreeView):
def get_view(self):
return self.view
def prepare_connection(
def get_prereqs(
self, record: Record
) -> subprocess.CompletedProcess | None:
) -> tuple[bool, str, str|None, "Prereqs"]:
"""
Always called on a thread with a dialog on the transient parent window
"""
@@ -2953,8 +2961,7 @@ class TreeView(Gtk.TreeView):
if prereqs.appid is None:
logger.warning(f"Query to '{record.ip}:{record.qport}' timed out")
msg = "Timed out when querying server, check IP or try again later"
spawn_dialog(msg, Popup.NOTIFY)
return None
return (False, msg, None, prereqs)
build = "DayZ" if prereqs.appid == APPID_DAYZ else "DayZ Experimental"
steam_path = query_config("default_steam_path")[0]
@@ -2964,8 +2971,7 @@ class TreeView(Gtk.TreeView):
"Config file has no value set for 'default_steam_path'"
)
msg = "Local Steam installation is not set, possibly malformed config file."
spawn_dialog(msg, Popup.NOTIFY)
return None
return (False, msg, None, prereqs)
try:
pefile_path = PeFile.get_pefile_path(steam_path, prereqs.appid)
@@ -2979,8 +2985,7 @@ class TreeView(Gtk.TreeView):
f"If you recently installed {build} or moved it to a different drive, "
"restart Steam to allow these changes to synchronize, then try again."
)
spawn_dialog(msg, Popup.NOTIFY)
return None
return (False, msg, None, prereqs)
except AppMovedError:
logger.critical(
f"Library folder synch error for '{prereqs.appid}'"
@@ -2990,13 +2995,11 @@ class TreeView(Gtk.TreeView):
f"If you recently installed {build} or moved it to a different drive, "
"restart Steam to allow these changes to synchronize, then try again."
)
spawn_dialog(msg, Popup.NOTIFY)
return None
return (False, msg, None, prereqs)
except (VDFLoadError, PeFileError, Exception) as e:
logger.critical(e)
msg = "Steam settings or DayZ installation may be corrupted. Try restarting Steam."
spawn_dialog(msg, Popup.NOTIFY)
return None
return (False, msg, None, prereqs)
try:
local_vers = PeFile.get_dayz_version(pefile_path)
@@ -3008,7 +3011,7 @@ class TreeView(Gtk.TreeView):
local_vers = None
try:
remote_vers = PeFile.dayz_version_from_str(prereqs.version)
remote_vers = PeFile.dayz_version_from_str(prereqs)
except Exception:
remote_vers = None
@@ -3021,18 +3024,15 @@ class TreeView(Gtk.TreeView):
f"This server is running a newer build ({prereqs.version}) of {build} than "
f"your local version. You may be unable to connect. Proceed anyway?"
)
res = spawn_dialog(msg, Popup.CONFIRM)
if res is True:
return None
return (True, msg, pefile_path, prereqs)
case VersionMatch.LOCAL_NEWER:
msg = (
f"This server is running an out-of-date build ({prereqs.version}) of {build}. "
"You may be unable to connect. Proceed anyway?"
)
res = spawn_dialog(msg, Popup.CONFIRM)
if res is True:
return None
return (True, msg, pefile_path, prereqs)
case VersionMatch.SAME_VERSION:
return (True, "", pefile_path, prereqs)
pass
if prereqs.password is True:
@@ -3040,19 +3040,10 @@ class TreeView(Gtk.TreeView):
"This server is password-protected and you will be "
"prompted when connecting. Do you want to proceed?"
)
res = spawn_dialog(msg, Popup.CONFIRM)
if res is True:
return None
return (True, msg, pefile_path, prereqs)
return (True, "", pefile_path, prereqs)
"""
When using RowType.CONN_BY_IP, the gameport needs to be interpolated
"""
record.gameport = prereqs.gameport
addr = record_to_str(record)
proc = call_out(
"try_connect", addr, str(prereqs.appid), str(pefile_path)
)
return proc
@signal_emission
@update_window_labels
@@ -3122,13 +3113,7 @@ class TreeView(Gtk.TreeView):
record = self.get_record()
if record is None:
return
thread_new_with_dialog(
self.prepare_connection,
parse_shell_output,
"Querying server",
None,
[record],
)
prepare_connection(None, record)
case _: # any other non-server option from the main menu
process_tree_option(output)