Commit graph

740 commits

Author SHA1 Message Date
derrod efaf25b9d9 [cli/core/lfs] Add EOS overlay management command/backend
- Supports installing and updating the overlay
- Supports enabling/disabling the overlay
- Can find existing EGL overlay for enabling/disabling
- Should work!
2021-12-28 17:47:48 +01:00
derrod 21d62dcd76 [downloader/mp] Fix status message formatting for odd cache usage 2021-12-28 17:39:10 +01:00
derrod b6cb31df8b [cli/models/utils] Move strtobool into legendary utils
Fixes deprecation warning on Python 3.10+
2021-12-28 17:37:26 +01:00
derrod 1fd8acdee4 [cli] Use argparse choices instead of manual check 2021-12-28 14:21:11 +01:00
derrod 599e4766b2 [cli] Fix some formatting 2021-12-28 14:03:26 +01:00
derrod e60c3f7aa7 [utils] Add EOS Overlay utilities
- Registry adding/removal code
- Dummy Game()s for downloading
2021-12-28 13:55:10 +01:00
derrod a4c1f0e670 [utils] Add Windows registry helpers 2021-12-28 13:53:59 +01:00
derrod d941b9d61e [api] Fix API URL and add some comments clarifying argument names 2021-12-28 11:12:54 +01:00
derrod 6b91c5779b [cli] Add get-token flag to get bearer token rather than exchange code 2021-12-28 10:57:22 +01:00
derrod fbb4acbc88 [core] Add option to force refresh token instead of session resumption 2021-12-28 10:57:22 +01:00
derrod ed0ac1e0b2 [api] Add currently unused artifact APIs found in EOS Windows service 2021-12-28 10:57:22 +01:00
derrod 3c831da310 [api] Add support for anonymous EOS sessions
These can be used to download the launcher and overlay/service updates
without actually having to authenticate an account.
2021-12-28 10:11:26 +01:00
derrod 335619ff79 [cli] Do not override platform in "info" command
Also improve missing asset error.
2021-12-28 10:09:08 +01:00
derrod 363ac15faa [cli] Error out if no asset exists for specified platform 2021-12-28 10:04:37 +01:00
derrod d61946d15d [lfs] Explicitly set UTF-8 encoding for EGL files
Should fix #383
2021-12-23 07:22:41 +01:00
derrod 352d3d2d0d [cli] Hide -c/--config-file option
Using it can cause a bunch of problems, and I don't want to
encourage its use, so deprecate/hide it for now, then remove
it once I have a better solution.
2021-12-22 08:28:23 +01:00
derrod 0e72950382 [cli] Add -H/--full-help and only show command list by default
The full help has gotten too long, just print the commands by default.
2021-12-22 08:24:23 +01:00
derrod 11850228a8 Bump version 2021-12-22 00:05:48 +01:00
derrod 8c087fc90e [cli] Add external activation to "info" 2021-12-21 23:59:00 +01:00
derrod 508c6a3a58 [cli] Add "get-token" debug command 2021-12-21 23:58:40 +01:00
derrod 71633333b7 [cli] Remove non-functional Origin activation on Linux 2021-12-21 23:28:24 +01:00
derrod 3e4c70ece2 [core] Only use installed manifest for repair if it actually exists
Fixes #380
2021-12-20 23:15:47 +01:00
derrod c3ade2994e [cli/core/utils] Re-enable SDL for Mac platform
Currently, this only affects Fortnite and UE.
2021-12-17 01:25:24 +01:00
derrod 6c35504058 [cli] Fix wrong type in cleanup command
Fixes #378
2021-12-14 14:30:33 +01:00
derrod fa02ed396e Bump version (hotfix #2) 2021-12-12 23:34:10 +01:00
derrod 48cab6af57 [cli] Also activate Ubisoft DLC (untested) 2021-12-11 18:50:30 +01:00
derrod 01ec2ccd89 [cli] Error out if no game files are found, suggest corrected path 2021-12-11 16:34:07 +01:00
derrod 797598322d [cli] Fix checking for game executable on import 2021-12-11 16:23:12 +01:00
derrod 803fc46249 Bump version (hotfix) 2021-12-08 00:49:31 +01:00
derrod 57d88b2db4 [core] Fix non-threaded metadata updates 2021-12-08 00:44:24 +01:00
derrod 6106433153 [cli] Disable SDL for Mac titles 2021-12-08 00:22:44 +01:00
derrod e0ad2171bf [cli] Add notice about Ubisoft activation to list-games 2021-12-06 19:33:55 +01:00
derrod db5cd43047 [cli] Add Origin activation process to "activate" command 2021-12-06 19:33:36 +01:00
derrod eb8bc3713b [cli] Rename --include-non-installable to -T/--third-party 2021-12-06 19:31:39 +01:00
derrod 9d18ef03fa [cli/core/models] Add property for partner link id/type 2021-12-06 18:10:30 +01:00
derrod 4dd495e2f5 [cli] Add aliases for --uplay 2021-12-06 13:20:48 +01:00
derrod 8c50f051a7 Bump version 2021-12-03 23:02:12 +01:00
derrod 82376e3d57 [cli] Allow setting default platform via config 2021-12-03 21:01:30 +01:00
derrod 694a275dac [core] Fix platform linking warning 2021-12-03 18:08:21 +01:00
derrod e11dd8734f [cli] Make pre-installation check results stand out more 2021-12-03 18:01:24 +01:00
derrod db1a6706e4 [cli] I a word when opening the auth/link URLs 2021-12-03 17:54:14 +01:00
derrod e1b5245252 [cli] Improve Ubisoft activation messaging 2021-12-03 17:23:24 +01:00
derrod c8189460c2 [cli/core] Fix some plurals 2021-12-03 17:21:48 +01:00
derrod 1c8349a28e [core] Do not show fetching metadata message unless there's data to fetch 2021-12-03 17:14:45 +01:00
derrod 20f934dc12 [core] Avoid unnecessary copy() 2021-12-03 16:27:19 +01:00
derrod 8dadf3c1a1 [core] Do not delete unused asset information when updating
Previously this would remove asset information for platforms not
currently in-use. This change retains those, but doesn't update
them if they're not required.
2021-12-03 16:27:00 +01:00
derrod d737ca57a7 [core/egs] Use thread pool for fetching metadata 2021-12-03 16:23:48 +01:00
derrod 5671448264 [core] Rework Uplay warning 2021-12-03 14:30:01 +01:00
derrod e71ab3155e [cli/api/models] Add "activate" command to redeem Uplay games 2021-12-03 14:07:57 +01:00
derrod a8e35e9f3b [cli] Show download url for PyInstaller build updates 2021-12-03 12:47:07 +01:00
derrod c33f9a0084 [cli] Enable save-sync of Mac titles 2021-12-02 17:06:08 +01:00
derrod 90a4efdfbf [core] Fix path expansion for macOS savegame variables 2021-12-02 17:05:50 +01:00
derrod 32e9ef1cd3 [core] Fix wrong property name for SaveGame 2021-12-02 16:55:02 +01:00
derrod 9511d9d65b [core] Fix metadata prune removing required data 2021-12-02 16:53:09 +01:00
derrod 6f7989ab50 [cli/core/utils/lfs] Also enable update notification on macOS 2021-12-02 16:51:48 +01:00
derrod 9e21a81c96 [cli] install: Set platform when getting game metadata 2021-12-02 16:16:52 +01:00
derrod 1dfc5aabe7 [cli/core/models/utils] macOS cloud save support 2021-12-02 15:24:01 +01:00
derrod 4eaa608370 [cli] Set default platform to Mac when running on macOS 2021-12-02 15:23:16 +01:00
derrod aeecaa4d3e [cli] Show warning if platform may be invalid 2021-12-02 15:22:13 +01:00
derrod 7151470197 [core] Fix getting game metadata for new titles 2021-12-02 15:10:54 +01:00
derrod 8fb4c56730 [cli] Fix some remaining platform-unawareness 2021-12-02 14:34:29 +01:00
derrod 4fd50a93a0 [core] Always update asset information for all in-use platforms 2021-12-02 14:29:08 +01:00
derrod 356f0f84f5 [cli/core/models] Access namespace/catalog item id directly 2021-12-02 14:28:21 +01:00
derrod 999ff36667 [cli] Include platform in installed list
Also remove stray debug print
2021-12-02 13:35:56 +01:00
derrod fe912246a5 [cli] Fix variable overlap 2021-12-02 13:31:55 +01:00
derrod 2ff6712932 [cli] Fix help text for --platform options 2021-12-01 22:14:49 +01:00
derrod 260c0e97a2 [cli] Include platform in status output 2021-12-01 22:04:30 +01:00
derrod 42aae4eccf [core] Do not show locale error on macOS 2021-12-01 21:59:53 +01:00
derrod f00d23c8c4 [core] Cleanup imports 2021-12-01 21:58:56 +01:00
derrod 0fb3d39a0a [core] Check if game is not-None before updating asset info 2021-12-01 21:38:44 +01:00
derrod c83bf7218c [core] Remove remaining hardcoded platform strings 2021-12-01 21:30:41 +01:00
derrod 24832ea074 [cli] Add --platform to import 2021-12-01 21:30:15 +01:00
derrod 8c56bd93d5 [core/lfs] Include platform in saved manifest name 2021-12-01 21:26:21 +01:00
derrod 081cca2c19 [core] Check all platforms for metadata prune 2021-12-01 21:20:11 +01:00
derrod de24ee8157 [cli] Do not crash if DLC is missing metadata for some reason
Fixes #371
2021-12-01 21:19:40 +01:00
derrod 0d1592266b [cli] Set platform argument default 2021-12-01 21:06:39 +01:00
derrod e8207d53cd [cli/core] Ensure update checks use the right platform(s) 2021-12-01 21:02:38 +01:00
derrod f280d53496 [cli/core/lfs] Add support for mixing platforms 2021-12-01 20:57:43 +01:00
derrod ee3f9a3e07 [models] Migrate app info to dataclasses, split platforms 2021-12-01 20:46:10 +01:00
derrod d0d37c40e7 [models/downloader] Add task flag to make file executable 2021-12-01 20:45:17 +01:00
derrod c43833146a [core] Subtract reusable size from required disk space
Fixes #362
2021-10-29 17:30:16 +02:00
derrod 926e89c89a [models] Explicitly specify serialisation version
Newer features may not be supported, so don't use the (potentially unsupported)
ones we read from the input.
2021-10-29 14:27:15 +02:00
derrod 3145fdb534 [models] Make manifest deserializer skip unknown data instead of failing 2021-10-29 14:19:52 +02:00
derrod eacb8eb006 [models] Add tentative support for new file manifest fields
Why on earth would anybody want MD5 hashes?
2021-10-29 14:04:17 +02:00
derrod b27879f21f Bump version 2021-10-29 12:43:00 +02:00
derrod 22b9c5c932 [models] Skip over unknown data in manifest 2021-10-29 12:40:18 +02:00
derrod 33ad64f0a4 [core] Only fail if absolutely no base-url can be found
Overrides without a known base-url should work.
2021-10-28 10:34:28 +02:00
derrod 07415d944c Bump version 2021-10-22 04:37:34 +02:00
derrod aaf7e0934f [core/utils] Attempt to find save path case-insensitively 2021-10-22 04:29:39 +02:00
derrod 106ed16a49 [cli/core] Do not delete merely incomplete saves unless user says so 2021-10-21 14:27:08 +02:00
derrod 658cc94dbe [core] Include app name in clean-saves command for specific game 2021-10-21 14:11:53 +02:00
derrod 8181f9faeb [core] Log number of deleted files (if any) 2021-10-21 14:10:14 +02:00
derrod 964ee08d05 [core] Add references to "clean-saves" in error message 2021-10-21 13:28:33 +02:00
derrod 355b1107e6 [cli/core] Add "clean-saves" command to remove obsolete/broken cloud save data 2021-10-21 13:26:36 +02:00
derrod 85a275950d [core] Show warnings and error out if save data is corrupted 2021-10-21 13:26:00 +02:00
derrod d5ec14b556 [core] Fix resolving "{AppData}" in save path
Why did they decide that {AppData} should match to %LOCALAPPDATA%?
2021-10-21 12:15:44 +02:00
derrod 2146a45104 [cli] Explicitly set CSV/TSV line terminator
Fixes #358
2021-10-21 11:39:11 +02:00
derrod 856c5ef2ee [cli] Abort install if game is managed by third party store 2021-10-16 19:47:19 +02:00
derrod 0ef916e9c5 [cli/lfs] Prune game metadata that's no longer needed 2021-10-16 19:44:48 +02:00
derrod 8c002a76e0 [cli/core] Replace old manual game store query with new property 2021-10-16 19:44:15 +02:00
derrod 9462aa331f [models] Add "third_party_store" property to Game 2021-10-16 19:42:47 +02:00
derrod 7f53746ee6 [cli] Show note when no game information is available 2021-10-16 19:33:59 +02:00
derrod b57735abf3 [core] Show warning in "info" if game asset is unavailable
Also disable manifest download as that will probably fail.
2021-10-16 18:59:54 +02:00
derrod 841db6bcb6 [core] Add "asset_available" helper function 2021-10-16 18:59:18 +02:00
derrod fa9e650ea1 [cli] Ensure "info" JSON output items are null if empty 2021-10-16 18:58:20 +02:00
derrod e6bb64f16f [core] Only delete files that are actually installed (based on tags) 2021-10-12 15:24:49 +02:00
derrod 07ae84c6a0 [lfs/utils] Prevent app name colliding with itself 2021-10-12 15:00:11 +02:00
derrod 054a3ea7eb Bump version 2021-10-10 17:27:15 +02:00
derrod 27c92e3555 [cli] Add more descriptive error message when directory no longer exists
Fixes #258
2021-10-10 17:17:42 +02:00
derrod 6d3a8af70b [cli] Make it possible to uninstall DLC 2021-10-10 17:08:05 +02:00
derrod 205f960ed4 [utils] Disable webview on Windows if Edgium renderer not available
CEF should also work, but is untested.
2021-10-10 12:59:03 +02:00
derrod 6cef1a1410 [cli] Fix "info" command for games without asset data (e.g. Origin) 2021-10-10 12:36:38 +02:00
derrod 9693a0b8ff [cli] Do not print empty info items 2021-10-10 12:36:16 +02:00
derrod 8da4b55987 [cli] Fix --dry-run for Origin launch 2021-10-10 12:33:42 +02:00
derrod 0bc543518c [core] Properly construct Origin launch URI 2021-10-10 12:30:25 +02:00
derrod 74bc2fecc0 [core] Check if base path exists, add failure condition if it doesn't 2021-10-10 08:36:36 +02:00
derrod 3aad87e1a9 [cli] "info" command: break down install/download size by install tag 2021-10-09 17:33:56 +02:00
derrod 115ac27b79 Bump version 2021-10-09 14:41:53 +02:00
derrod 55ec1707ef [utils] Catch WebView exceptions and tell user how to disable it 2021-10-09 14:39:04 +02:00
derrod 674793b808 [utils] Fix unhandled exception in alias generation 2021-10-09 14:31:00 +02:00
derrod aafba86a94 [core] Validate session expiry time before skipping login 2021-10-08 10:36:32 +02:00
derrod 5d4beeb27d Bump version 2021-10-08 10:22:35 +02:00
derrod ea01cb6302 [cli] Add "--skip-dlc" flag to install command 2021-10-08 10:20:39 +02:00
derrod ce89965274 [cli] Add automatic DLC import to "import-game" 2021-10-08 10:20:23 +02:00
derrod 9471ca41e1 [core] Do not check egstore folder for DLC 2021-10-08 10:17:15 +02:00
derrod b3b5470947 [core] Make auth() return immediately if already logged in 2021-10-08 10:15:07 +02:00
derrod 2f6f043716 [cli] Do not import DLC if base game is not installed
Fixes #351
2021-10-08 09:43:36 +02:00
derrod 6486d02daa [cli] Resolve app name alias when adding new alias 2021-10-07 17:06:39 +02:00
derrod 75cc194424 [downloader.mp] Fix exponential backoff calculation and log as info 2021-10-07 11:16:39 +02:00
derrod 2d366a7704 [downloader.mp] Add exponential backoff to retries
Fixes #347
2021-10-07 10:46:17 +02:00
derrod b857967dfa [cli/core] Add WebView killswitch to Legendary update data
In case epic breaks it, this at least lets us disable it remotely.
2021-10-07 05:20:08 +02:00
derrod b78b4f49c1 [utils] Show error if callback result is None
Most likely happens due to user-abort.
2021-10-07 05:18:46 +02:00
derrod 96ff42f05a [cli/utils] Skip logout when using Qt/GTK, faster logout on Windows 2021-10-07 05:10:14 +02:00
derrod 917cfc259e [utils] Use JS to get SID response to work on GTK WebKit 2021-10-06 20:36:14 +02:00
derrod c89f9d82c7 [utils] Fix opening external URL on Linux (GTK) 2021-10-06 17:14:00 +02:00
derrod 15591a1e2d [cli/utils] Add support for logging in via web view
Also adds pywebview as optional dependency to setup.py
2021-10-06 10:54:25 +02:00
derrod 26715695d8 [cli] Load JSON if user pastes full response rather than just SID 2021-10-06 07:24:33 +02:00
derrod 4e539c4fd5 [cli] Print manifest install tags in "info" command 2021-10-05 09:47:59 +02:00
derrod a029fc6fdb Bump version 2021-10-05 09:40:00 +02:00
derrod c4695d2b99 [cli/models/lfs] Clean up some old code/comments 2021-10-05 09:22:17 +02:00
derrod ead2bdc16c [cli] Add global "-J" option to pretty-print JSON 2021-10-05 08:47:28 +02:00
derrod 56fdfba787 [cli] Add JSON output to "info" command 2021-10-05 08:41:57 +02:00
derrod f2639a7e67 [lfs] Make lowercase app name an alias rather than conflict 2021-10-05 08:18:53 +02:00
derrod 8460fdfd2a [cli/core/lfs] Add support for trying multiple encryption keys
Should Epic change the key used for EGL in the future we want to
be backwards-compatible to existing (outdated) EGL installs as well
as new ones without having to push out a new release.

Also forces updating of version data before attempting the import to
get the latest key(s) and adds a log message when auth data is deleted.
2021-10-05 07:34:52 +02:00
derrod 82f38d279d [utils] Split name on dashes for alias generation 2021-10-05 07:19:15 +02:00
derrod 02c83405fb [lfs] Fix old aliases not being cleared when regenerating 2021-10-05 07:11:33 +02:00
derrod 638578283b [core/utils/lfs] Fix auth import with now encrypted EGL user data
It took way too long to find the key.
It's not even hidden, I'm just dumb.
2021-10-04 09:26:44 +02:00
derrod 2f4ad78e27 [lfs] Prevent aliases from shadowing app names
This is probably somewhat unlikely to actually happen given
that app names are largely random strings and only some are
actual words, but just to be sure we declare app names to be
collisions.
2021-10-04 01:28:22 +02:00
derrod a116013f05 [utils] Also make raw game name (lowercase) a valid alias 2021-10-02 23:48:44 +02:00
derrod 5960cb8699 Bump version 2021-10-02 23:23:28 +02:00
derrod 09c52b66ff [cli] Log app title/name when preparing download 2021-10-02 23:09:59 +02:00
derrod 0b97cdeeef [cli] Add alias management commands 2021-10-02 22:54:56 +02:00
derrod 3f04de448b [utils] Improve alias generation and fix explanation 2021-10-02 22:19:11 +02:00
derrod e7ce2e5cb7 [core] Force-refresh aliases when fetching games without assets 2021-10-02 21:21:46 +02:00
derrod 0d8b74a9e0 [cli/core/utils/lfs] Add automatic alias generation 2021-10-02 21:10:25 +02:00
derrod d70d5a6521 [downloader] Fix ETA calculation for runtimes >= 1 hour
Closes #345
2021-10-02 19:00:09 +02:00
derrod d15b882929 Bump version 2021-10-02 07:41:29 +02:00
derrod 8f6cb9c856 [cli] Add alias feature for app names 2021-10-02 07:41:11 +02:00
derrod 55f9f05206 [utils] Change wording of SDL prompt, support space-separated list 2021-09-29 09:04:09 +02:00
derrod f22c8d0ab6 [cli] Add --skip-sdl and --disable-sdl options
--skip-sdl simply skips the prompt and selects the defaults.
--disable-sdl disables selective downloading for the title and
will reset existing SDL settings (if any). Can be re-enabled
with --reset-sdl or by removing the config option manually.

The combination "--reset-sdl --disable-sdl" is allowed and will
reset existing tags while keeping SDL disabled.
2021-09-29 08:05:37 +02:00
derrod f9dad549c3 [cli] Add manifest size and fix crash with no DLC 2021-09-28 09:43:49 +02:00
derrod ff29b949cb [cli] Add "--with-dlcs" flag to automatically install all DLCs 2021-09-28 08:07:28 +02:00
derrod 3a608610f3 [cli] Add "info" command for app metadata 2021-09-28 07:58:50 +02:00
derrod 4706a42cee [cli] Verify app name to be an Origin title when using --origin 2021-09-28 05:57:39 +02:00
derrod 7509550eb1 [cli/core] Add option to force refresh game metadata 2021-09-28 05:56:19 +02:00
derrod dbc4131ec2 [cli] Use new launch command method in Origin launch
By doing this support for wrappers (e.g. Proton) is now also included.
2021-09-28 05:23:39 +02:00
derrod a1993eb568 [core] Refactor getting wine/wrapper launch command into its own function 2021-09-28 05:21:16 +02:00
derrod 156b4716f4 [cli] Add --json to Origin launch as well 2021-09-28 05:20:40 +02:00
derrod b5d4224664 [cli/core] Only return legendary-defined environment variables 2021-09-28 05:07:06 +02:00
derrod 888d62a96d [cli/core/models] Refactor launch parameters and add --json option
Primarily intended to make it easier for third-party applications
(mainly Heroic) to handle launch options on their own by simply
taking the necessary information from legendary and ignoring
user-defined stuff.

Also useful for debugging.
2021-09-28 04:06:54 +02:00
derrod ee2432c443 [cli/core/lfs] Allow specifying custom config file 2021-09-28 03:07:15 +02:00
derrod b319cb505c [cli/downloader.mp] Explicitly set UTF-8 encoding for resume/repair file
Fixes #297
2021-09-28 02:42:17 +02:00
derrod e881e42d5f [core] Save non-install game metadata 2021-09-18 20:02:52 +02:00
derrod 730225c06b [cli] Include DLC install size 2021-09-10 20:36:51 +02:00
derrod fbd0df1ecc [cli/core] Include DLCs in installed games list
This should be replaced later on by including information
about the main game in the InstalledGame metadata.
2021-09-10 20:30:53 +02:00
derrod cffd9040f7 [cli] Strip whitespace from game titles
Yoku's Island Express has a \t for some reason...
2021-09-10 16:09:15 +02:00
derrod 6b4cf6558b [core] Warn if parsing manifest-defined launch parameters fails 2021-09-09 09:55:48 +02:00
derrod a725dd0ad8 Bump version 2021-09-08 11:10:42 +02:00
derrod 21eac6ecfa [cli] Enable (very manual) Origin linking on Linux 2021-09-08 10:43:30 +02:00
derrod 0bf7110653 [core] Move getting env vars to separate method 2021-09-08 10:37:40 +02:00
derrod e8a3a3ec8d [cli] Use pyinstaller check rather than OS name only 2021-09-08 10:27:26 +02:00
derrod b12798e6b0 [cli/core/lfs/utils] Fetch SDL data from API 2021-09-05 09:41:54 +02:00
derrod 82a2706e4c [api] Add method for downloading SDL data 2021-09-05 09:06:57 +02:00
derrod 72aea19853 [api] Add version to API urls 2021-09-05 08:40:12 +02:00
derrod 791bc77c7c [core/lfs] Enable update notification for PyInstaller on Linux 2021-09-05 00:49:11 +02:00
derrod 43bb09a1ad [utils] Add helper to determine if running PyInstaller package 2021-09-05 00:49:04 +02:00
derrod 39bfa3df15 [api] Update Legendary API host 2021-09-04 10:06:26 +02:00
derrod 5a8de3a3bc [core/utils] Update auth EGL version and game workarounds from API 2021-09-03 23:20:17 +02:00
derrod ba6ec3ecca [cli/core] Add option to launch games via Origin (Windows only) 2021-09-03 22:59:47 +02:00
derrod 6876371325 [cli] Disable update notice if JSON/CSV/TSV output are used 2021-09-03 21:11:09 +02:00
derrod d82870a5d3 [cli] Show notice on non-Windows about update delays 2021-09-03 20:14:00 +02:00
derrod d21e002272 [cli] Force check for updates when trying to login 2021-09-03 20:12:37 +02:00
derrod b33396915e [lfs] Fix get_cached_version() reading from disk every time 2021-09-03 20:11:29 +02:00
derrod 5fe35c7008 [lfs] Add options with comments for update opt-out to config 2021-09-03 20:11:11 +02:00
derrod 315bdfb4a4 [cli/core/lfs] Enable update check by default, make notice optional
This will allow legendary to force checking for updates in critical
situations where it may be required. Also enables updating configuration
data on Linux by default.
2021-09-03 20:10:30 +02:00
derrod 0acfc47b33 [cli] Properly catch exception on import 2021-09-03 20:08:20 +02:00
derrod ad2912a88e [lfs] Move optionxform to custom config parser 2021-09-03 19:58:06 +02:00
derrod dd5f77c3d1 Bump version 2021-09-03 19:25:32 +02:00
derrod c53ac14c64 [cli] Catch exception if EGL path resolution fails 2021-09-03 19:23:25 +02:00
derrod d3026672d1 [core] Fix for epic authentication API changes 2021-09-03 19:16:37 +02:00
derrod d6e9c5ef46 [cli] Fix EGL Local AppData resolution with newer WINE versions
Closes #332
2021-09-03 19:00:56 +02:00
derrod f3991d3ee2 [api] Clean up imports and add OS name to User-Agent 2021-09-03 10:58:57 +02:00
derrod 65085e5b4a Bump version 2021-09-02 19:48:24 +02:00
derrod a465966954 [api/cli/core/lfs] Add Legendary update check 2021-09-02 19:31:04 +02:00
derrod 69eeccec21 [api.egs] Add method to update EGL version/credentials 2021-09-02 19:31:04 +02:00
derrod 4d5539c889 [cli/utils] Automatically create missing config sections 2021-09-02 19:31:04 +02:00
derrod 0416b472d3 [api] Add support for fetching launcher manifest 2021-09-02 18:10:26 +02:00
derrod 8726843bdb [lfs] Fix first time config creation 2021-09-02 17:31:58 +02:00
derrod 87d55c5d31 Bump version to 0.20.7 2021-09-01 15:46:11 +02:00
derrod f78674b3ed [core] Formatting and type hint fixes 2021-09-01 15:29:25 +02:00
derrod a80244ed37 [cli/core] Add flag to show non-installable games/DLCs
This primarily means titles that have to be activated on external stores
such as Battlefront II which has to be installed via Origin.

Addresses half of #202
2021-09-01 15:28:25 +02:00
derrod 6746ce85a1 [downloader] Fix wrong property being used
This caused re-using old files to fail.
2021-09-01 02:38:58 +02:00
derrod 7ff16aad44 [core/downloader] Move downloader to new sub-package
Preparing to add a new AIO based downloader
2021-08-14 05:12:10 +02:00
derrod 9e01ae1c5b [downloader] Update to use new dataclasses 2021-08-14 05:10:31 +02:00
derrod 1fe0dab78b [models] Further adjustments to new dataclasses 2021-08-14 05:10:00 +02:00
derrod dc381cacb0 [downloader] Adjust for changes in new dataclass attribute names 2021-08-11 09:21:19 +02:00
derrod 782a18f8f1 [models] Add type hints and migrate downloader models to dataclasses 2021-08-11 09:19:52 +02:00
derrod d86039dd9b [cli/core] Add option to disable HTTPS for downloads
The EGS client does not use HTTPS for downloads in order to facilitate
the use of tools such as LanCache that use DNS based CDN redirection.

Legendary should be usable in such an environment as well,
but HTTPS will remain on by default.

See: https://lancache.net/news/2019/06/15/steamcache-is-rebranding-to-lancachenet/
2021-08-09 11:31:03 +02:00
derrod 1760c34703 [cli/core] Add option for preferred CDN host
Allows a user to specify a preferred CDN via config or command line.
Also changes selection process to match EGS client
(no random selection anymore).
2021-08-09 11:17:15 +02:00
derrod 454e2a2a69 [utils] Set config modified state and mod time on write 2021-06-21 12:22:08 +02:00
derrod a4cbf5892a [cli/utils] Save manually specified install tags to config
Requires some testing, may cause issues with supported SDL titles.
2021-06-17 15:21:46 +02:00
derrod dd3c0429fe [cli] Filter files by install tag before verifying 2021-06-17 15:08:31 +02:00
derrod bb3d6f9348 [core/utils] Improve minimum disk space calculation when updating 2021-06-17 15:00:34 +02:00
derrod 0e6b63d1a2 [utils/lfs] Use custom configparser wrapper
The main reason is to prevent user configs from being overwritten
and also to only actually write the config file if it has been
modified from within Legendary itself.

Closes #279
2021-05-30 18:57:23 +02:00
derrod 7ae4eda5b8 [utils] Fix manifest combiner for delta patching
Previously this would result in duplicated chunks,
causing calculations for download sizes to be incorrect.

Fixes #278
2021-05-24 18:18:28 +02:00
derrod f040f4bd40 [api] EGS: Add method to fetch library items
This is required for us to also get items that don't have assets
(e.g. some DLCs/Origin-managed games)
2021-01-20 14:43:32 +01:00
derrod edad963200 [models/utils] Track file offset for chunk parts
Preparation for smarter patching with downloader rewrite.
2021-01-10 14:25:35 +01:00
derrod a2280edea8 [cli/core] Add option to override launch executable 2021-01-10 14:24:06 +01:00
derrod ee3b3fb9fe Fix various typos and some style complaints
Closes #175
2021-01-02 06:53:21 +01:00
derrod 58edb22fce [cli] egl-sync: Error out if asset information missing 2021-01-02 06:31:47 +01:00
derrod 19c66bee11 Bump version to 0.20.6 2020-12-27 22:01:45 +01:00
derrod 3c71229b7e [core] Fix missing {} around KnownFolders GUID 2020-12-26 22:01:30 +01:00
derrod ba867f1ce6 [cli] Sort game names case-insensitively 2020-12-23 18:04:53 +01:00
derrod d861668bc1 [models] Update CustomFields with items() method 2020-12-22 18:10:03 +01:00
derrod bd0b9248ee Bump version to 0.20.5 2020-12-20 20:48:31 +01:00
derrod 104b928e3a [core] Increase default shared memory to 2048 MiB
This should still be reasonable for most machines people are going to run games on,
and means no manual increases are required for every game it has been previously
needed for.
2020-12-18 17:26:51 +01:00
derrod 254c22eaec Update README & Bump version 2020-12-18 17:02:00 +01:00
derrod 1a015a3ba7 [core] Only attempt to delete untagged files that exist 2020-12-18 17:01:52 +01:00
derrod f42d63767c [cli] Fix crash when not installing 2020-12-17 16:31:38 +01:00
derrod 1226cd1b08 [cli] Remove untagged files when install tags changed 2020-12-17 15:25:01 +01:00
derrod 1cec4c6cb0 [core] Add method to remove untagged files 2020-12-17 15:25:01 +01:00
derrod 40f8c553ba [utils] Allow silent deletion of files 2020-12-17 15:25:01 +01:00
derrod 51c8b67f91 [cli] Add flag to reset SDL selection 2020-12-17 15:24:59 +01:00
derrod efad90d951 [cli] Do not run SDL for DLC 2020-12-17 15:23:06 +01:00
derrod dca216d053 [cli] Fix repair-and-update not working correctly 2020-12-17 15:23:06 +01:00
derrod 86ea066e8d [core] Save install tags to InstalledGame 2020-12-17 15:23:06 +01:00
derrod cff8abd0da [core] Import/Export install tags to EGL 2020-12-17 15:23:05 +01:00
derrod 30acc7d55e [models] Add install tags to game models 2020-12-17 15:23:05 +01:00
derrod df9380ab3d [core] Fix calculating install size *again* 2020-12-17 15:23:05 +01:00
Simão Gomes Viana 34677cc02e
[cli/README] Fix typo in CLI help (manfiests -> manifests) (#157) 2020-12-16 20:21:20 +01:00