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
derrod
1430e321e6
[core/utils] Miscellaneous whitespace, comment, text fixes
2020-12-16 12:37:12 +01:00
derrod
7609553b12
[core/utils] More generic/robust selective dl, add support for Fortnite
...
Existing installations should ask for the install tags that should be used
on first update. It will now be easier to add more games as well.
2020-12-16 12:35:31 +01:00
derrod
fd004db4b9
[downloader] Move optional file deletion tasks to the end
2020-12-16 12:32:19 +01:00
derrod
4d138c1a22
[downloader] Silently attempt to delete files not selected for install
...
This is to clean up when changes are made to the selected install tags
2020-12-16 12:29:26 +01:00
derrod
08c2008281
[downloader/models] Add silent deletion task flag
2020-12-16 12:28:37 +01:00
derrod
691fd9bc8f
[core] Fix calculating install size (again)
2020-12-16 12:15:18 +01:00
derrod
bece6ef5de
[downloader] Fix skipping unneeded chunks
...
This was erroneously removed in daeee2e
2020-12-16 12:14:31 +01:00
derrod
e710bb893f
[core] Fall back to default wine prefix location
...
This and the previous commit fix #41
2020-12-16 11:29:39 +01:00
derrod
5e061d6946
[core/utils] Add save path resolution on Linux
...
If a wine prefix is specified in the config, attempt to
find savegames in there.
2020-12-16 11:18:58 +01:00
derrod
3e2a6011ff
[core] Ignore comments in configuration environment variables
...
Comments are treated as keys with no value by configparser, but env
variables with None as the value are not valid so this would crash.
Fixes #156
2020-12-16 05:45:05 +01:00
derrod
5e1896cf2c
[downloader] Make insufficient memory message error more helpful
2020-12-14 08:42:22 +01:00
derrod
cb7ea25a18
[core/utils] Add version check to game workarounds
...
Also add more games to the list of optimizations being enabled by default.
This will bring Pillars of Eternity down to around ~2 GiB shared memory,
which is still too much but without implementing another workaround that
adds a prefix filter I cannot really fix this. Certainly better than 24...
2020-12-14 08:27:02 +01:00
derrod
daeee2eb8d
[downloader] Rework order optimizer to be significantly faster
...
Also allow for a larger amount of files to be optimized.
2020-12-14 08:04:28 +01:00
derrod
9c87f8ab4f
[downloader] Log optimization time and increase upper file limit
2020-12-14 06:28:03 +01:00
derrod
b7db0ac721
[api/core/downloader] Update User-Agents
2020-12-13 03:14:55 +01:00
derrod
8e012c0441
Bump version to 0.20.4
2020-12-08 23:05:52 +01:00
derrod
80153d07b5
[cli/utils] Add Cyberpunk 2077 language pack hack
2020-12-08 06:43:43 +01:00
derrod
1640a47d6a
[downloader] Correctly support empty install tag
2020-12-08 06:12:47 +01:00
derrod
5db6d9c73f
[core/README] Add max_workers
config option
...
Addresses #148
2020-12-07 23:52:43 +01:00
derrod
3aeb48efdf
[core] Always initialize locale on startup
2020-11-25 18:50:09 +01:00
derrod
81463e6908
Bump version to 0.20.3
2020-11-25 06:53:36 +01:00
derrod
8a98c14055
[core] Fix CDN URI building for new Akamai CDN
2020-11-21 17:57:54 +01:00
derrod
22b7db7a29
[cli] Allow -y/--yes to be specified as part of the subcommand arguments
2020-11-21 14:30:30 +01:00
derrod
1598844bc6
[core] Always use default.env
...
Also fixes minor typo
2020-11-21 06:21:59 +01:00
derrod
3f3366c632
Bump version to 0.20.2 and Update README
2020-11-12 17:52:02 +01:00
derrod
3e6e173772
[core] Fix Uplay installer check
2020-11-05 15:25:37 +01:00
derrod
8206283755
[core/cli] Warn/Fail if game requires Uplay
...
Addresses #69 but does not fix it.
2020-11-02 19:08:06 +01:00
derrod
3310f7e7a7
[core] Fix crash if no old manifest present
2020-11-02 18:35:22 +01:00
derrod
80841f89bb
[cli] Add "--keep-files" to uninstall without deleting
2020-11-02 15:55:36 +01:00
derrod
477827033e
[cli/lfs] Add "cleanup" command to remove unused files
2020-11-02 15:53:11 +01:00
derrod
e97941327e
[core] Return empty asset list if not authenticated
...
Fixes #106
2020-11-02 15:26:10 +01:00
derrod
3ea394937b
[lfs] Migrate old manifest structure to new
2020-11-02 15:14:59 +01:00
derrod
83e3af344f
[core/lfs] Remove unversioned local manifest saving/loading
2020-11-02 14:58:23 +01:00
derrod
effc74b73b
[core] Exclude mods from games list
2020-11-01 16:38:43 +01:00
derrod
37083b01de
[core] Disable delta manifests if versions identical
2020-11-01 15:38:18 +01:00
derrod
7046b06f14
[api/core/downloader] User-Agent update
2020-11-01 14:34:36 +01:00
derrod
ace9ce8b5d
[core] Show warning when looking up DLC fails
...
Might fix #101
2020-10-31 19:48:08 +01:00
derrod
d842780c73
[lfs] Do not remove comments from ini files
...
Fixes #105
2020-10-24 19:23:40 +02:00
derrod
d95fd20e76
[core] Use non-POSIX mode for parsing manifest launch arguments
...
(hopefully) Fixes #128
2020-10-24 19:19:25 +02:00
derrod
28f0b72f42
Bump version to 0.20.1
2020-09-09 10:32:37 +02:00
derrod
f03a0a46fd
[cli] Add --delta-manifest override
2020-09-09 10:29:57 +02:00
derrod
dcbf8db54d
[core] Properly handle Delta manifests (update base manifest)
...
Also removes the old workaround.
2020-09-09 10:29:46 +02:00
derrod
36d02fa5ce
[downloader] Fix original file offset when using delta manifests
2020-09-09 10:28:28 +02:00
derrod
e898fe03fc
[downloader] Remove delta manifest workarounds
2020-09-09 10:13:21 +02:00
derrod
70ed243b32
[utils] Add manifest combiner for delta manifests
2020-09-09 10:13:03 +02:00
derrod
515705c061
[cli] list-files: Error out of invalid AppName specified
...
Closes #94
2020-09-09 09:53:05 +02:00
derrod
b8b8a5d953
[cli] Add --version and --debug aliases for -V/-v
2020-09-08 18:10:05 +02:00
derrod
b7fd2031f9
[cli] Fix status command when not logged in yet
2020-09-08 17:50:36 +02:00
derrod
09b918d156
Bump version to 0.20.0
2020-09-08 05:15:23 +02:00
derrod
6f53964b49
[cli] Add --json output format for some commands
2020-09-08 05:12:14 +02:00
derrod
d4f4571f85
[core] Allow "wrapper" and "no_wine" in "default" section
...
The entire config crap will have to be rewritten to be "nicer"...
2020-09-08 04:56:56 +02:00
derrod
acb7476a22
[cli] Add basic "status" command
2020-09-08 04:50:14 +02:00
derrod
5b855b0d3e
[cli] Add note about potentially missing games when importing
2020-09-08 04:38:29 +02:00
derrod
6bae5d3081
[core] Prevent importing unknown games from EGL
2020-09-08 04:38:11 +02:00
derrod
7575b8f3a7
[cli/core] Prevent crash when game asset metadata is missing
2020-09-08 04:25:34 +02:00
derrod
9c9fee8f11
[core] Don't request delta manifest if old == new
2020-09-06 06:18:43 +02:00
derrod
a55f75d5e8
[core/downloader] Prevent file deletion when using delta manifest
...
This is technically not how we should do this. In theory we should
"overlay" the delta manifest over the proper one and simply add/replace
the chunk/file list entries with the one from the delta manifest.
However simply not deleting files also works for the time being since files
are rarely deleted anyways.
2020-09-06 05:57:28 +02:00
derrod
bd66d6c5dc
[api/core/downloader] Update User-Agents
2020-09-06 03:16:06 +02:00
derrod
0430204f59
[core] Add debug message for delta manifest unavailability
2020-09-05 05:27:44 +02:00
derrod
e9e40a3782
[cli] Add install size and path to CSV/TSV output
...
Fixes #91 and closes #68
2020-09-05 05:25:13 +02:00
derrod
ade9080152
[cli] Convert import path to absolute
...
Fixes #61
2020-09-05 05:21:36 +02:00
derrod
6711897750
[cli] Add flags for new installer options
...
'--repair-and-update' for updating when repairing (duh)
'--ignore-free-space' to make the free space error a warning instead
'--disable-delta-manifests' to disable the use of delta manifests
Also closes #70
2020-09-05 05:20:27 +02:00
derrod
fb9e8d4138
[core] Fix disk space check for initial install and add override
2020-09-05 05:18:15 +02:00
derrod
d1b8412b27
[core] Add options for delta manifests and update-when-repairing
2020-09-05 05:16:05 +02:00
derrod
4b4483c580
[core] Implement delta manifests
2020-09-05 05:05:21 +02:00
derrod
e1fc3df180
[manager] Improve chunk reuse algorithm
...
This will mostly be important for delta manifests,
which are yet to be implemented.
2020-09-05 04:51:20 +02:00
derrod
f4a1e4610b
[core] Skip savegame download if manifest empty
2020-08-06 09:28:35 +02:00
derrod
5b4a6e6d9f
[downloader] Fix temporary file name in result handler
2020-08-06 09:28:25 +02:00
derrod
bfbd86b01c
Bump version to 0.0.19
2020-06-14 02:57:00 +02:00
derrod
0a5b53ab6f
[cli/core/utils] Only remove files in manifest during uninstall
...
Some games are using the installation directory to store savegames.
To avoid deleting those, only remove files that are actually in the
manifest and only delete the directory if it is empty.
2020-06-10 18:21:47 +02:00
derrod
2647fa4915
[core] Do not sync DLC to EGL
2020-06-10 17:59:04 +02:00
derrod
4720b59d99
[core/cli] Fix typos in function names
2020-06-05 15:01:02 +02:00
derrod
8d46d7ad2e
[core] Fix save path when downloading multiple saves
2020-06-04 15:55:16 +02:00
derrod
0e2a61aca5
[cli] list-installed: Show warning if game dir is missing
2020-06-02 12:12:42 +02:00
derrod
1ec6ef1899
[cli] launch: error out if game directory is missing
2020-06-02 12:12:03 +02:00
derrod
6d84307134
[core] Fix crash if EGL installation has been removed
2020-06-02 11:35:54 +02:00
derrod
2b2e91f372
[cli] Add --show-dirs option to print install directory
2020-06-02 07:54:51 +02:00
derrod
8ad6cd1e3d
Bump version to 0.0.18
2020-06-01 21:22:14 +02:00
derrod
dfa830a7f8
[lfs] Ensure EGL manifests are loaded when trying to delete
2020-06-01 20:42:09 +02:00
derrod
818ac59872
[cli] Add --disable-sync for egl-sync
2020-06-01 12:58:47 +02:00
derrod
f8f134dd4b
[core] Resolve WINE dos device mappings
2020-06-01 12:51:12 +02:00
derrod
5f2da28f51
[models] Enable JSON to binary manifest serialization
2020-06-01 11:20:26 +02:00
derrod
de5a1095e0
[cli] Add flag to save/reset launch parameters in config
2020-06-01 08:40:00 +02:00
derrod
c216341467
[core] Add wine_prefix config option
2020-06-01 08:36:06 +02:00
derrod
a0329a73a9
[cli] Fix -y/--yes for egl-sync auto
2020-06-01 08:18:13 +02:00
derrod
50d6eb02fa
[cli] Check and save path specified with --egl-manifest-path
2020-06-01 08:16:36 +02:00
derrod
92c6fd8601
[cli] Fix --egl-wine-prefix not setting programdata path
2020-06-01 08:13:47 +02:00
derrod
6051edc636
[cli] Show warning for incorrect -y/--yes usage
2020-06-01 08:12:24 +02:00
derrod
5eecabfb4a
[cli/egl] Make EGL auth import work on Linux
2020-05-31 03:16:03 +02:00
derrod
211f65c4c6
[core/downloader/api] Update User-Agents
2020-05-31 02:37:37 +02:00
derrod
c137affb92
Version 0.0.17
2020-05-31 02:04:53 +02:00
derrod
3063f02db3
[cli/core] Implement newer Epic authentication scheme
...
Fixes #52
2020-05-31 02:01:50 +02:00
derrod
1531177d8d
[cli/README] Various changes to help texts
2020-05-30 22:56:20 +02:00
derrod
2309c4f428
Bump to 0.0.16
2020-05-30 22:32:07 +02:00
derrod
10cf1f7c00
[lfs] Ensure "Legendary" config section exists
...
Fixes #50
2020-05-30 21:15:13 +02:00
derrod
d03701b3f7
[cli] Run sync even if users selects to not setup auto sync
2020-05-30 02:56:05 +02:00
derrod
fb2af2b17a
[core] Add more debug logging
2020-05-30 02:40:58 +02:00
derrod
3b5fc04829
[core] Keep EGL GUID when updating
2020-05-30 02:40:48 +02:00
derrod
b601895536
Version 0.0.15
2020-05-30 01:30:09 +02:00
derrod
0b257e16dd
[cli] Make sure -y works for egl-sync
2020-05-30 01:10:11 +02:00
derrod
918841a743
[cli] Add --yes alias for -y
2020-05-30 01:09:53 +02:00
derrod
028c2ca4e0
[cli] Add --egl-wine-prefix parameter for egl-sync setup
2020-05-30 01:07:45 +02:00
derrod
a488d32502
[core] Fix game path on linux (\ vs /)
2020-05-30 00:49:48 +02:00
derrod
9dbc57ece7
[core] Abort export if manifest cannot be loaded
2020-05-30 00:49:30 +02:00
derrod
3380671b74
[core] Avoid recursion in egs_sync
2020-05-30 00:49:10 +02:00
derrod
0610b07bf3
[core] Do not attempt to fetch metadata if update_assets is not set
2020-05-30 00:48:54 +02:00
derrod
d3c2769014
[core] Adjust game path when importing from EGL in WINE
2020-05-30 00:25:54 +02:00
derrod
9b545a82a8
[core] Fix egl_uninstall missing exception handling
2020-05-30 00:17:06 +02:00
derrod
9231df9d44
[cli] Improve Lutris EGS detection and ask user before using it
2020-05-30 00:16:25 +02:00
derrod
5dac4d51f8
[cli] Add --unlink parameter for egs-sync to remove syncing
2020-05-30 00:11:21 +02:00
derrod
867a661c9d
[core] Also remove egl programdata path from config if invalid
2020-05-30 00:10:50 +02:00
derrod
7cb2717589
[models] Fix needs_verification being null
2020-05-30 00:05:03 +02:00
derrod
99485da7d8
[core] Reset EGL path if it is invalid
2020-05-29 23:53:07 +02:00
derrod
b027bade1c
[cli] Create EGL Manifest directory if parent exists.
2020-05-29 23:43:04 +02:00
derrod
df566bb28f
[cli] Use prompt helper for all y/n prompts
2020-05-29 23:09:21 +02:00
derrod
82f5adfaa4
[cli] Add egl-sync command
2020-05-29 23:09:02 +02:00
derrod
0b220cd19a
[core] Add Epic Games Launcher import/export functionality
...
May contain bugs, right now it works but there are a few
hacks in there to deal with synchronization that may come
to bite me in the ass later.
2020-05-29 23:07:58 +02:00
derrod
70c559a7f9
[models] Always mark games as non-DLC and rename method
...
This will need to change if DLC support is ever added.
2020-05-29 23:07:00 +02:00
derrod
e8a2df75fd
[models] deepcopy EGLManifest input data
2020-05-29 23:06:15 +02:00
derrod
4ace27bbcc
[lfs] Fix JSON writing and add delete_manifest method
2020-05-29 23:05:29 +02:00
derrod
09c8d1f80d
[utils] Add cli helper for command line prompts
2020-05-29 23:04:58 +02:00
derrod
1d7d0eaa38
[core/cli] Import games installed via EGL w/o verification
2020-05-29 00:20:31 +02:00
derrod
d9b0930006
[lfs] Cleanup/Rework Epic LFS to for Linux support
2020-05-28 23:10:58 +02:00
derrod
b1ecce7aa3
[models] Add EGL installation manifest support
2020-05-28 23:10:15 +02:00
derrod
2e2bb3ad41
[cli/core/models] Add install size to installed games
2020-05-28 23:05:36 +02:00
derrod
5d4d46f7ea
[core] Remove unused parameter
2020-05-28 22:58:14 +02:00
derrod
da757ac18e
[core] Also initialize Epic LFS on Linux
2020-05-28 22:45:08 +02:00
derrod
547ea4a2d4
[cli] Make list output more copy-paste friendly
2020-05-28 22:42:36 +02:00
derrod
e3ad2d8de9
[core] Fix crash when game config section is missing
2020-05-28 22:41:31 +02:00
derrod
9867c5f492
[cli] Check for game exe on import and add check override
2020-05-28 02:40:12 +02:00
derrod
f3f86836c8
[cli] Do not set type for --no-wine argument
...
Fixes #46
2020-05-27 21:18:02 +02:00
derrod
e083b6f9b5
[core] Show error if game installation could not be deleted
...
Kinda fixes #44
2020-05-25 13:01:12 +02:00
derrod
dad1c7f2c2
[core] Move getting manifest urls into separate function
2020-05-23 23:20:13 +02:00
derrod
cddc58c46e
README update and whitespace fixes
2020-05-23 19:02:13 +02:00
derrod
3d03d1a15d
[cli] Apply strtobool to NO_WINE env var
2020-05-23 19:01:30 +02:00
derrod
e4e4a0b7df
[core] Add "no_wine" config option
2020-05-23 18:35:58 +02:00
derrod
c52cd09eb7
[cli/core] Add env var for wrapper and fix priority
...
Priority should always be command line > env var > config
2020-05-23 18:33:11 +02:00
derrod
6c9e3a1d62
[cli/core] Add flag to disable WINE
2020-05-23 18:29:43 +02:00
derrod
76a0ef6be7
[cli] Treat misc. verification failures as missing
2020-05-23 16:57:06 +02:00
derrod
1ac1875a86
[models/utils] Catch and log exception when opening file fails
2020-05-23 16:55:18 +02:00
derrod
e9a959e3a7
[core] Strip leading slashes from executable path
...
Fixes #42 and launching Hyper Light Drifter
2020-05-23 12:43:37 +02:00
derrod
c7d3846118
[cli] Do not print help for repair alias
2020-05-22 14:39:01 +02:00
derrod
61c2db9b60
Bump version to 0.0.14
2020-05-22 14:34:03 +02:00
derrod
de0b53710a
[cli] Do not include timestamp in threaded logger
2020-05-22 14:31:59 +02:00
derrod
6b88d93576
[downloader] Clean up progress and other logging
2020-05-22 14:31:49 +02:00
derrod
d62b45f899
[cli] Add message notifying users about the resumability of the downloads
2020-05-22 09:54:12 +02:00
derrod
38f5bbd934
[cli/core/models] Add support for importing already installed games
...
Fixes #10 though will need further improvement.
2020-05-20 14:06:55 +02:00
derrod
0d6bcf5950
[cli/core] Add support for launching games with a wrapper
2020-05-20 12:49:51 +02:00
derrod
c904bbfa19
[cli/core] Add repair command/flag
...
Fixes #27
2020-05-20 12:44:45 +02:00
derrod
8ab63f0665
[downloader] Make resume file version-agnostic
...
This may result in less-optimal situations since
it effectively also disables patching. But it does
allow us to re-use the resume file mechanisms for
repairing broken installs.
2020-05-20 12:05:26 +02:00
derrod
9cc5d071d0
[utils] Return hashes from validate_files
2020-05-20 12:03:44 +02:00
derrod
5b2ebada78
[cli/utils/models] Add "verify-game" command to check game install
2020-05-19 18:29:16 +02:00
derrod
1622b415ea
[core/utils] Move lfs helpers to utils
2020-05-19 17:45:46 +02:00
derrod
6278a21c77
[cli] sync-saves: Fix crash if metadata is missing
2020-05-19 16:14:20 +02:00
derrod
724ef4848c
[downloader] Check if files in resume file actually exist
...
Also improves logging to make it obvious to users that a
resume file is being used.
2020-05-19 16:14:01 +02:00
derrod
b89afeaefd
[downloader] Check for success before adding to resume file
2020-05-19 14:46:59 +02:00
derrod
8cda65fd3e
[core] Use and save existing base urls for manifest overrides
2020-05-19 14:44:45 +02:00
derrod
59f2ebb211
[core] Apply expanduser to config values as well
2020-05-18 10:59:38 +02:00
derrod
39f0d4c831
[cli/core/api] Allow setting locale/language
...
Fixes #35 as far as I can tell
2020-05-18 10:58:23 +02:00
derrod
812590db7c
[cli] Fix crash if metadata does not have customAttributes
2020-05-17 15:36:34 +02:00
derrod
ecf6572e5f
[utils] Show warning if savegame got truncated during packing
2020-05-16 16:55:30 +02:00
derrod
099e222a80
[core] Return platform specific version if override is used
2020-05-16 16:48:45 +02:00
derrod
297d3b7690
Bump version to 0.0.13
2020-05-16 13:58:13 +02:00
derrod
7d919c1f2a
[cli] Fix launch command on Windows
2020-05-16 13:57:57 +02:00
derrod
730eaebec9
[cli/core/models] Fix a whole bunch of cloud save issues
...
- Games that didn't already have cloud saves weren't synced
- Games that didn't have local saves didn't behave correctly
- Games that only had local saves also didn't work correctly
2020-05-16 12:50:28 +02:00
derrod
03c503b4e6
[core/utils] Show warning/info if no save files have been found
...
This should alert users in cases the exclude/include filters fail
2020-05-16 12:29:33 +02:00
derrod
8a60d1c436
Bum version to 0.0.12 and update README
2020-05-16 12:20:10 +02:00
derrod
8f656c5a25
[cli] Add flag to disable save game filtering
2020-05-16 12:19:44 +02:00
derrod
2ba036a654
[core/utils] Implement save game file filters
2020-05-16 12:19:06 +02:00
derrod
e88a369feb
[core] Honor existing installation directory
...
This prevents an issue where changing the base
path later on would cause an update to be written
to the wrong directory (or cause crashes).
2020-05-16 11:01:13 +02:00
derrod
532e1df237
[core] Show error if old manifest can't be loaded
...
Also prevents crashes.
2020-05-16 10:52:09 +02:00
derrod
289a1aa9e8
[core] Log if game installation directory does not exist
2020-05-15 12:38:27 +02:00
derrod
90dce6bd71
Version 0.0.11
2020-05-15 10:28:12 +02:00
derrod
0a41a043ac
[api/downloader] Update user-agent
2020-05-15 10:25:39 +02:00
derrod
d6abbcc694
Cleanup! (Remove shebangs, unused files)
2020-05-15 07:01:30 +02:00
derrod
b6a701708b
[lfs] Honor XDG_CONFIG_HOME env variables
2020-05-15 06:52:58 +02:00
derrod
b55600f3e3
[cli] Allow specifying save path at install time
...
Also some minor cleanup
2020-05-14 16:40:27 +02:00
derrod
0f01e404a4
[cli/core/downloader] Support multiple filter arguments
...
Fixes #20
2020-05-14 16:32:08 +02:00
derrod
d648d29810
[cli] Automatic DLC installation and cloud save notice
2020-05-14 16:04:03 +02:00
derrod
98df2a0a38
[cli/core/models/utils] Add basic cloud save syncing support
2020-05-14 14:52:33 +02:00
derrod
0df80773c0
[cli] Add --code and --delete options to auth command
...
--code allows specifying an exchange code directly, e.g.
when the web authentication is handled by an external
application.
--delete simply deletes the current authentication data.
2020-05-12 20:01:25 +02:00
derrod
36c1a9591f
[utils] Add helper for packing save data
...
This helper creates manifests + chunks from
a given directory for uploading to the EOS
save game storage service.
2020-05-12 04:03:03 +02:00
derrod
ffe65b5b86
[api] Add method for deleting cloud saves
2020-05-12 04:02:06 +02:00
derrod
6cfe7a74ea
[models] Allow initializing ChunkPart values
2020-05-12 04:01:46 +02:00
derrod
b0f5ea15a3
[models] return chunk/manifest bytes written
2020-05-12 03:59:21 +02:00
derrod
2945c6c91f
[cli/core] Add flags/env vars to override WINE binary/prefix
2020-05-12 02:31:01 +02:00
derrod
f9d56b8d0d
[cli] Sort savegames by manifest and app name
2020-05-12 02:22:10 +02:00
derrod
8ae0fff1d7
[models] Support __setitem__ in CustomFields
2020-05-09 11:04:57 +02:00
derrod
8328a8ebaa
[models] Calculate group_num based on GUID
2020-05-09 11:04:29 +02:00
derrod
17ea65d2da
[models] Raise exception when chunk data too large
2020-05-09 11:03:54 +02:00
derrod
2c3bfdfd3a
[models] Use random GUID when creating Chunk()
2020-05-09 11:03:14 +02:00
derrod
3257b869e2
[models] Add get_chunk_by_path to CDL
2020-05-09 11:02:31 +02:00
derrod
d94d07a26b
[models] Support file objects in manifest/chunk serialization
2020-05-09 11:01:54 +02:00
derrod
60845fce48
[models] JSON manifest do not support serialization
2020-05-09 11:00:41 +02:00
derrod
ddd115812b
[utils] Fix typo in rolling hash function
2020-05-09 11:00:13 +02:00
derrod
3329bdf9af
[models] Set default meta feature level to 17
2020-05-09 04:26:44 +02:00
derrod
bdd2a14350
[models] Add Chunk serialisation
2020-05-06 19:50:40 +02:00
derrod
5d91b2b59f
[utils] Add FRollingHash implementation
...
Seems to be a variation on CRC-64-ECMA.
This python version is of course very slow.
That should not be a big issue however, since
it is only required for serialising rather
small save game data.
2020-05-06 19:49:45 +02:00
derrod
efed0f07da
[models] Set default manifest version to 17
...
This is what EGS currently delivers, and it also
appears there's a shorter header for some lower
versions so for compatibilities' sake just use 17.
2020-05-06 18:26:00 +02:00
derrod
d10fa6c65c
[models] Support manifest serialization
2020-05-06 18:21:26 +02:00
derrod
31530692ef
[api/cli/core] Add extremely basic support for cloud saves
...
Currently only supports downloading all saves to a folder,
in the future it should support automatically extracting save
files to the proper directory (at least on Windows).
2020-05-06 15:40:04 +02:00
derrod
693ad3cefc
Version 0.0.10
2020-05-05 16:27:14 +02:00
derrod
b1ba25e2e0
[downloader] Improve reordering optimizations
...
With some titles such as Metro Exodus there is
even more duplication across files. While this
change does not manage to reduce the limit to
below the default 1 GiB limit, it does bring
it down by about 512 MiB.
2020-05-05 16:23:51 +02:00
derrod
67859fb4ac
[downloader] Clean up unused parameter
2020-05-05 16:13:08 +02:00
derrod
ac5856afe1
[utils] Apply reorder opts to Metro Exodus
2020-05-05 16:04:22 +02:00
derrod
fefd414b8b
[cli] Add --no-install alias for --download-only
2020-05-05 16:03:24 +02:00
derrod
9f7133362c
[downloader] Make sure timeout is not None
...
Hopefully fixes #22
2020-05-05 16:03:12 +02:00
derrod
0e86791237
[downloader] Reformat manager
2020-05-05 13:21:55 +02:00
derrod
6f8da36947
[downloader] Update logging (more debug/cleanup)
2020-05-05 13:21:06 +02:00
derrod
27f11466d5
Version 0.0.9
2020-05-04 19:51:03 +02:00
derrod
e54d13be37
[core] Add warning for EQU8 anti-cheat
2020-05-04 19:50:56 +02:00
derrod
441c619db0
[core] Fix disk space check
2020-05-04 19:50:44 +02:00
derrod
84bb14f252
Bump version to 0.0.8
...
This is to make sure downstream packages are upgraded
from the broken 0.0.7 release.
2020-05-04 16:33:24 +02:00
derrod
8e93b4923d
Version 0.0.7
2020-05-04 14:30:15 +02:00
derrod
3a08d526d5
[cli] Update CLI descriptions
2020-05-04 14:25:00 +02:00
derrod
4d0ac96bdc
[cli/utils] Add aliases to download command
...
Eventually the "download" command will be changed to
set the --no-install flag by default and "update" will
become --update-only. For now remain backwards compatible
to give people a chance to adjust their scripts and habits.
Fixes #18
2020-05-04 14:21:25 +02:00
derrod
bd3095a6be
[utils] Add new helper for game specific workaround
...
In the future we might extend this with other features,
such as specific post-install things that some games
may require to work or preconfigured WINE settings.
2020-05-04 14:08:35 +02:00
derrod
df55f18a78
[cli/core/downloader] Increase timeout and make it configurable
...
Fixes #16
2020-05-04 14:08:26 +02:00
derrod
69383c4788
[cli/core/downloader/utils] Add download reordering optimization
...
This is an optimization that aims to fix issues with some titles
such as World War Z that have lots of duplicated files resulting
in a very high runtime cache requirement.
The basic idea is to group files that share lots of chunks together
so the data can be removed from the cache sooner.
For most games this has little to no effect. For some titles with heavy
duplication it can reduce the RAM usage significantly however. For
instance the RAM requirements for World War Z are reduced from 5.3 GiB
to 499 MiB.
Partially fixes #17
2020-05-04 14:06:25 +02:00
derrod
3f27ea0296
[downloader] Fix formatting of required cache size
...
Scientific notation is cool and all but not
particularly useful to most people.
2020-05-02 22:02:53 +02:00
derrod
261d0c636f
[cli/core] Add some more logging
2020-05-01 19:57:42 +02:00
derrod
20a477d20f
[core] Always get all base urls
2020-05-01 19:57:22 +02:00
derrod
5eb1b69c05
[models] Fix JSON manifest chunkinfo sha hash
...
This needs to be bytes() for __repr__() to work.
2020-05-01 15:15:39 +02:00
derrod
e976d44fb9
[cli] Fix help metavar for install tags
2020-05-01 15:08:48 +02:00