Compare commits

...

127 Commits

Author SHA1 Message Date
aclist
5654b327d4 fix: early abort if local coords are missing 2025-10-17 04:20:13 +09:00
Gergely Koloszar
0ad6366f0a Fix unintended deletion 2025-10-16 20:53:14 +02:00
Gergely Koloszar
a7c647aa6b Add availability checks for local_latlon function 2025-10-16 20:51:46 +02:00
Gergely Koloszar
3d32721683 Add availability checker for remote services based on ping and timeout 2025-10-16 20:50:42 +02:00
aclist
881b0b3008
Merge pull request #218 from aclist/feat/coc
Some checks failed
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
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
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
10 changed files with 346 additions and 173 deletions

53
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@ -0,0 +1,53 @@
name: Bug report
description: Submit bugs that affect functionality here
title: "[BUG] Your title here"
labels: ["bug"]
assignees:
- aclist
body:
- type: checkboxes
id: kb
attributes:
label: Did you check if this issue already exists?
options:
- label: I have checked the [Knowledge Base](https://aclist.github.io/dzgui/kb.html) and searched through [past issues](https://github.com/aclist/dztui/issues?q=is%3Aissue+is%3Aclosed) and did not find my issue there.
required: true
- type: dropdown
id: device
attributes:
label: Device type
options:
- Desktop PC
- Steam Deck
default: 0
validations:
required: true
- type: input
id: version
attributes:
label: DZGUI version
validations:
required: true
placeholder: "5.6.0"
- type: input
id: distro
attributes:
label: Linux distribution
validations:
required: true
placeholder: "Arch Linux"
- type: textarea
id: what-happened
attributes:
label: Describe the bug
description: What did you expect to happen?
placeholder: "E.g., When doing X, Y occurred. Include as much detail as possible."
validations:
required: true
- type: textarea
id: logs
attributes:
label: Additional log output
description: Attach the file `$HOME/.local/state/dzgui/DZGUI_DEBUG.log` by clicking this area to highlight it and then dragging the file in.
validations:
required: false

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1 @@
blank_issues_enabled: false

47
.github/ISSUE_TEMPLATE/feature.yml vendored Normal file
View File

@ -0,0 +1,47 @@
name: Feature suggestion
description: Submit requests for new features here
title: "[FEAT] Your title here"
labels: ["enhancement"]
assignees:
- aclist
body:
- type: dropdown
id: device
attributes:
label: Device type
options:
- Desktop PC
- Steam Deck
default: 0
validations:
required: true
- type: input
id: version
attributes:
label: DZGUI version
validations:
required: true
placeholder: "5.6.0"
- type: input
id: distro
attributes:
label: Linux distribution
validations:
required: true
placeholder: "Arch Linux"
- type: textarea
id: what-happened
attributes:
label: Describe the feature
description: A clear and detailed description
placeholder: "E.g., Add a dialog to the Options menu that automatically lets the user do Y"
validations:
required: true
- type: textarea
id: why
attributes:
label: Describe the benefit
description: How will this feature benefit large numbers of users?
placeholder: "E.g., Currently, users have to manually do X to achieve Y. Implementing this feature would achieve A, B, and C."
validations:
required: true

46
.github/ISSUE_TEMPLATE/trouble.yml vendored Normal file
View File

@ -0,0 +1,46 @@
name: Troubleshooting
description: Submit user error/troubleshooting questions here
title: "[HELP] Your title here"
labels: ["troubleshooting"]
assignees:
- aclist
body:
- type: dropdown
id: device
attributes:
label: Device type
options:
- Desktop PC
- Steam Deck
default: 0
validations:
required: true
- type: input
id: version
attributes:
label: DZGUI version
validations:
required: true
placeholder: "5.6.0"
- type: input
id: distro
attributes:
label: Linux distribution
validations:
required: true
placeholder: "Arch Linux"
- type: textarea
id: what-happened
attributes:
label: Describe the issue
description: A detailed description. What did you expect to happen?
placeholder: "Include as much detail as possible and state the steps leading up to the problem. E.g., First I do this, then I do this, then this happens."
validations:
required: true
- type: textarea
id: logs
attributes:
label: Additional log output
description: Attach the file `$HOME/.local/state/dzgui/DZGUI_DEBUG.log` by clicking this area to highlight it and then dragging the file in.
validations:
required: false

View File

@ -1,197 +1,113 @@
# Changelog
## [5.6.0-beta.21] 2024-01-06
### Added
- Add in-app documentation link to Codeberg mirror
- Hover tooltips to most buttons
### Fixed
- Prevent ArrowUp/ArrowDown input when inside keyword field
## [5.6.6] 2024-02-09
### Changed
- Update IP database records for 2025-02
## [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
- 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

34
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,34 @@
# Preamble
This project is free and open source software (FOSS) that is improved upon through the collaborative efforts of its community.
To foster a collegial and productive atmosphere, all interactions with this project and its members shall be subject to these standards.
"Members" refers to all project maintainers, contributors, developers, and end-users.
Bear in mind that members may come from different countries, age groups, and backgrounds, and have differing experience levels.
# Standards
- Do not engage in antagonistic, offensive, discriminatory, threatening, or inflammatory behavior or trolling towards other members under any circumstances.
- Engage in professional communication and stay on topic. Keep banter and jokes to a minimum, as they are liable to be misconstrued.
- Do not post offensive or inflammatory off-site content, or content violating the above standards or the terms of service of this site.
- Do not post spam. The site operator implements anti-spam measures that may lead to your account being revoked.
- While this project relates to the DayZ computer game, it is not a forum for non-technical discussion about the game, or a place to post unsolicited links.
- Do not use images, emoji reactions, or other non-verbal gags as justification for skirting the above standards.
# Off-site content
From time to time, it may be necessary to include off-site reference material or links. Use discretion when selecting this content and provide
the minimum necessary for a technical discussion of the matter. Do not willfully include content that violates the above standards.
# Enforcement
Violations of the above standards will be subject to moderation decisions.
Project maintainers reserve the right to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are
not aligned with these standards, and will communicate reasons for moderation decisions when appropriate.
Depending on the nature of the violation, or if the violation is not corrected after a warning has been issued, the user may be permanently barred from further interaction with the project.
# Technical support
This project is free software, but this does not imply a guarantee of free, unlimited tech support and troubleshooting in perpetuity.
The software is provided as-is, and no warranty is made as to its fitness for a given purpose or that it is free from defects.
Project members volunteer their time. Do not disparage other members when they attempt to assist you.
Be aware that if you cannot provide enough information when filing a ticket, this may lead to the ticket being closed as non-actionable.

View File

@ -15,7 +15,7 @@ This overcomes certain limitations in the Linux client and helps prepare the gam
Refer to the documentation for installation and setup instructions:
- [GitHub](https://aclist.github.io/dzgui/dzgui.html)
- [GitHub](https://aclist.github.io/dzgui/index.html)
- [Mirror (Codeberg)](https://aclist.codeberg.page)

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -o pipefail
version=5.6.0-beta.21
version=5.6.3
#CONSTANTS
aid=221100
@ -76,6 +76,9 @@ set_im_module(){
return
fi
}
redact(){
sed 's@\(/home/\)[^/]*@\1REDACTED@g'
}
logger(){
local date="$(date "+%F %T,%3N")"
local tag="$1"
@ -83,8 +86,8 @@ logger(){
local self="${BASH_SOURCE[0]}"
local caller="${FUNCNAME[1]}"
local line="${BASH_LINENO[0]}"
self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
| redact >> "$debug_log"
}
setup_dirs(){
for dir in "$state_path" "$cache_path" "$share_path" "$helpers_path" "$freedesktop_path" "$config_path" "$log_path"; do
@ -492,20 +495,47 @@ stale_symlinks(){
unlink "$l"
done
}
check_availability() {
if [[ -z $1 ]]; then
return 1
fi
local url=$1
local timeout_sec="3"
if [[ $2 ]]; then
timeout_sec=$2
fi
if ! ping -w "$timeout_sec" "$url"; then
logger WARN "Failed to reach $url, service may be down."
return 1
fi
}
local_latlon(){
if [[ -z $(command -v dig) ]]; then
local local_ip=$(curl -Ls "https://ipecho.net/plain")
local url_ipecho="https://ipecho.net/plain"
if ! check_availability "ipecho.net"; then
logger WARN "Failed to get external ip address, ipecho.net service may be down."
return 1
fi
local local_ip=$(curl -Ls "$url_ipecho")
else
# todo : implement checking remote
local local_ip=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
fi
local url="http://ip-api.com/json/$local_ip"
local res=$(curl -Ls "$url" | jq -r '"\(.lat)\n\(.lon)"')
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."
return 1
fi
local res=$(curl -Ls "$url_ip_api" | jq -r '"\(.lat)\n\(.lon)"')
if [[ -z "$res" ]]; then
logger WARN "Failed to get local coordinates"
return 1
fi
echo "$res" > "$coords_file"
}
lock(){
[[ ! -f $lock_file ]] && touch $lock_file
local pid=$(cat $lock_file)
@ -584,10 +614,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"]="5624b1e44a43c318775caa5d0ceef1f0"
["funcs"]="417bd5eaffbefc905a843985c691dc64"
["lan"]="c62e84ddd1457b71a85ad21da662b9af"
)
local author="aclist"
@ -636,7 +666,7 @@ fetch_helpers_by_sum(){
}
fetch_geo_file(){
# for binary releases
local geo_sum="7b6668eb4535bb432acb42016ba9cc47"
local geo_sum="9824e9b9a75a4830a2423932cc188b06"
local km_sum="b038fdb8f655798207bd28de3a004706"
local gzip="$helpers_path/ips.csv.gz"
if [[ ! -f $geo_file ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then

View File

@ -30,7 +30,6 @@ log_path="$state_path/logs"
debug_log="$log_path/DZGUI_DEBUG.log"
system_log="$log_path/DZGUI_SYSTEM.log"
mod_log="$log_path/DZGUI_MODIDS.log"
meta_log="$log_path/DZGUI_META.log"
#STATE FILES
history_file="$state_path/$prefix.history"
@ -131,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"
@ -162,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
@ -398,6 +425,10 @@ local_latlon(){
get_dist(){
shift
local given_ip="$1"
if [[ ! -f $_cache_coords ]]; then
printf "Unknown"
return
fi
readarray -t coords < "$_cache_coords"
readarray -t n < <(<<< "$given_ip" awk 'BEGIN{RS="."}{$1=$1}1')
@ -448,7 +479,9 @@ get_remote_servers(){
_fetch "${params[$i]}" > $_cache_temp.${i}
done
jq -n '[ [inputs]|add ].[]' $_cache_temp.* && rm $_cache_temp.*
# ubuntu variants do not support jq 1.7 chained operators
# https://github.com/jqlang/jq/releases/tag/jq-1.7
jq -n '[ [inputs]|add ][]' $_cache_temp.* && rm $_cache_temp.*
}
get_unique_maps(){
shift
@ -736,6 +769,9 @@ dump_servers(){
logger INFO "Server context is '$subcontext', reading from file '$file'"
filter_servers "$file" "$@"
}
redact(){
sed 's@\(/home/\)[^/]*@\1REDACTED@g'
}
logger(){
local date="$(date "+%F %T,%3N")"
local tag="$1"
@ -743,8 +779,8 @@ logger(){
local self="${BASH_SOURCE[0]}"
local caller="${FUNCNAME[1]}"
local line="${BASH_LINENO[0]}"
self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
| redact >> "$debug_log"
}
test_ping(){
shift
@ -1244,8 +1280,8 @@ symlinks(){
done
}
readarray -t mods < <(find $workshop_dir -mindepth 1 -name meta.cpp | awk -F/ 'NF=NF-1{print $NF}')
readarray -t links < <(find $game_dir -type l)
readarray -t mods < <(find "$workshop_dir" -mindepth 1 -name meta.cpp | awk -F/ 'NF=NF-1{print $NF}')
readarray -t links < <(find "$game_dir" -maxdepth 1 -type l)
if [[ ${#mods[@]} -eq 0 ]]; then
logger INFO "No mods present, aborting"

View File

@ -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)