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
derrod
5557dc63ae
[cli] only print install tags if present
...
Most games don't seem to use them anyway.
2020-05-01 14:36:50 +02:00
derrod
9b5620ca30
[cli/core/downloader] Support filtering by install tags
...
Also adds tsv option for list-files and fixes
no_install not being set with --exclude.
Install tags are only present in some titles, I'm not
entirely sure how EGL uses them. Perhaps to allow one
manifest to be used on different platforms? Or to only
download extra assets when the user wants to?
Either way, it's another filtering feature that may be
useful, though for now it's mostly another toy to explore
EPIC's distribution system with.
2020-05-01 14:34:34 +02:00
derrod
531af3f586
[cli/core/downloader] Add --exclude option to ignore files when downloading
...
Useful to exclude unnecessary files such as redistributables.
Can be used together with --prefix to exclude files that would
still match the specified --prefix.
2020-05-01 10:43:55 +02:00
derrod
c287649e07
[cli] Make app name optional for "list-files"
...
If reading from a file/url the app name is not necessary.
2020-04-30 12:31:23 +02:00
derrod
dc68617212
[cli] Change --prefix-filter to --prefix
2020-04-30 12:23:23 +02:00
derrod
5a197fe6a9
Version 0.0.6
...
'Residue Processing' is a fitting codename given all the cleanup...
2020-04-30 12:08:22 +02:00
derrod
39bfb47d75
[cli] Add csv/tsv option to list commands
...
Closes #6 and #13
2020-04-30 12:03:23 +02:00
derrod
31bf74b33d
[cli] Set no_install flag when using --prefix options
2020-04-30 11:49:33 +02:00