Commit graph

716 commits

Author SHA1 Message Date
derrod 865dd51e2b [cli] Fix and cleanup uninstaller wording/handling
Somebody made a little copy-paste mistake there...
2023-06-18 01:24:39 +02:00
derrod 6536473063 [cli] Support running uninstaller on Windows 2023-06-18 00:54:54 +02:00
derrod 6d7909c311 [core/models] Add uninstaller to game model 2023-06-18 00:39:11 +02:00
derrod 0e35b70941 [cli] Show uninstaller information in "info" command 2023-06-18 00:38:38 +02:00
derrod e0428b497e [core] Add EOS service warning 2023-06-18 00:28:55 +02:00
derrod 6500ea73af Bump version 2023-06-18 00:12:43 +02:00
derrod 96b155800a [downloader] Check if files exist before running analysis
This allows additional SDL tags to be installed without going through a repair.
It will also now redownload deleted files if there's an update rather than just
trusting what the old manifest says should be installed locally.
2023-06-18 00:11:59 +02:00
derrod 4145381b93 [cli/core/lfs] Add slightly janky lock for installed game data
In order to prevent multiple instances of Legendary mucking with installed game data
acquire a lock as soon as it is required and only release it (implicitly) when
Legendary exits.

This is a bit jank, but should prevent people from messing up their local data by
running two install commands at a time.

EGL sync is technically also affected by this, but in its case we simply skip the
sync/import/export and leave it to the next instance with a lock to do.
2023-06-17 23:46:52 +02:00
derrod e26b9e60ff [core/lfs] Use filelock for user data
Closes #566

Co-authored-by: Mathis Dröge <mathis.droege@ewe.net>
2023-06-17 22:58:16 +02:00
Mathis Dröge bdd53fb8f8 [cli] Search for game executable case-insensitively 2023-06-17 21:32:45 +02:00
derrod bbb19d6cb6 [cli] Update version even if no files changed
This happens mostly with DLCs that get version bumps with no file changes.
2023-06-17 21:31:12 +02:00
derrod 175168adcb [utils] Fix cloud save pattern matching to align with EGL
Match the pattern as a suffix, this is valid to catch all files with
that exact name in a directory.
2023-06-17 20:24:40 +02:00
derrod 8b2809779f [cli] Set non-tty output encoding to UTF-8
Closes #551 and #554
2023-05-28 00:16:21 +02:00
derrod 4bed49e7e1 [core] Ignore KeyError when updating game info
The retry logic may attempt to update metadata for an asset for
a different platform. This can cause an exception if it's not
also in the "still_needs_update" set.
2023-05-28 00:08:39 +02:00
derrod f97d799e87 [cli] Fix list_saves crash if game metadata is missing 2023-05-14 02:17:29 +02:00
derrod 09d39b3fe3 [cli] Only fetch save games for specified appname (if any) on sync 2023-05-14 02:17:02 +02:00
derrod a70ac2d1f9 [cli] Fix info not displaying install information
DLC would overwrite the app name and break the check for the installed game.
2023-05-04 13:28:46 +02:00
derrod ae05b4c1e5 Bump version 2023-01-05 17:30:27 +01:00
derrod 6b8273f983 [core] Strip name of game installation folder
Thanks Kerbal Space Program for having an invalid
directory name as your set folder!
2023-01-05 17:28:32 +01:00
derrod 00f025dcc9 [core] Add timeout and dumb exception handler to manifest download 2022-12-15 13:23:17 +01:00
derrod 87b01b77d8 [api] Handle "corrective action" errors on login 2022-12-14 16:16:21 +01:00
derrod f19a1ba69d [api] Log 4XX login responses without 'error' property 2022-12-13 17:01:15 +01:00
derrod c8a6e68bf4 Bump version 2022-11-06 17:28:22 +01:00
derrod 2ed9557b2c [cli] Add --accept-path flag to automatically use computed save path 2022-11-06 17:26:47 +01:00
derrod c3eb6b4fe6 [core/utils] Respect include/exclude filter when deleting save data
Not doing this would result in some titles that save their save data in
the install directory having their game data deleted...

Fixes #497
2022-11-06 17:14:02 +01:00
derrod 6709e8aa4f [api] Use dedicated graphql host 2022-11-03 09:23:59 +01:00
derrod 2ffd183554 [core] Add note about difference to EGL save path resolver 2022-10-31 12:31:49 +01:00
derrod d59e973816 Bump Version (hotfix #4) 2022-10-26 18:31:43 +02:00
derrod f80ceb50f3 [utils] Fix webview login on Windows 2022-10-26 18:25:44 +02:00
derrod cf22de2bcf [models] Improve manifest serialisation support
Manifests up to version 21 can now be serialised with all
new features enabled.*

*SHA256 hash of EGL and Legendary serialised manifest matched,
but new features weren't used yet, so at empty placeholder data
works correctly.
2022-10-26 15:17:33 +02:00
derrod ddb7e1c3ca [models] Add support for Manifest version 21
This adds an uninstall "action". As yet unused.

Not sure if the order is correct, we'll have to see.
(Legendary won't support it until Epic does anyway)
2022-10-26 15:16:25 +02:00
derrod 36e6e5f08a [core/models] Make manifest merge part of Manifest class 2022-10-25 15:46:34 +02:00
derrod 0e23b8e4f0 Cherry-pick some Sourcery refactoring suggestions 2022-10-25 15:38:55 +02:00
derrod 85f6bd3220 Move some files from utils to more sensible locations 2022-10-25 15:14:26 +02:00
derrod 9e5fbaf21a [api] Fix Ticket based manifest URL retrieval
Based on latest EOS Helper service implementation.
Works when using the helper's credentials to create an
anonymous session.
2022-10-24 23:35:02 +02:00
derrod ecb405172b [core] Fix incompatible DLCs being returned 2022-10-23 14:46:31 +02:00
derrod 3ab31561bf Bump version 2022-09-16 13:10:43 +02:00
derrod 66ef0f3d5e [cli] Remove redundant conditional 2022-09-16 13:10:34 +02:00
derrod c0d67882bb [utils] Replace some instances of time() with perf_counter()
In these cases only relative time is important, and sufficiently
fast computers could run into zero division errors.
2022-09-16 13:09:39 +02:00
derrod 338fef2fac [api] Pin store user-agent until better solution is found
For some reason using a newer version gives users a Cloudflare error page.
That is of course not possible to resolve in this context, and until I can
figure out a better way to solve this, we'll just use an old version that
does still work.
2022-09-16 12:56:53 +02:00
Mathis Dröge 0eec8472a4 [core] Try all manifest URLs until one works
Co-authored-by: derrod <xlnedder@gmail.com>
2022-09-11 16:33:49 +02:00
Mathis Dröge abd3a9d496 [core] Save path resolution: Fallback to reading wine prefix from env vars
This is mainly something for Heroic, since we don't touch config.ini
2022-09-01 02:35:13 +02:00
derrod 53e2accbb0 [api] Add helper to get auth URL
Not currently used, may be useful in the future.
2022-09-01 02:28:40 +02:00
derrod e111ae56fc Bump version 2022-09-01 02:25:23 +02:00
derrod b136748168 [core/cli/api] Use authorization code for login
This still seems to work.

Fixes #468
2022-09-01 02:23:38 +02:00
derrod 5a20f12461 [cli/utils] Fix webview login on Windows
Now using exchange code every time!
2022-09-01 02:00:35 +02:00
derrod f26c8ab0a1 [core] Change locale env variable order
Fixes #457
2022-07-21 18:25:06 +02:00
Mathis Dröge 0d23775337 [cli] Fix typo 2022-07-18 08:00:26 +02:00
Mathis Dröge d8af06c936 [cli] Rename "yes" -> "skip_prereqs" in _handle_postinstall
The name "yes" was a little confusing, you'd think it means
"Yes, install all prerequisites" while it actually skips them
2022-07-18 08:00:26 +02:00
derrod a73d0694f6 [core] Handle ConnectionError exception on login
Fixes #447
2022-07-06 16:35:30 +02:00