Commit graph

276 commits

Author SHA1 Message Date
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
fb7b9d4548 Update README 2020-05-06 16:06:24 +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
Rodney
f3afb5b393
Add PyPI link to README 2020-05-04 19:59:57 +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
5330c23e68 Add missing dependencies to setup.py 2020-05-04 16:13:33 +02:00
derrod
0b99e56860 Add missing module to setup.py 2020-05-04 16:05:31 +02:00
derrod
8fd7e00683 Fix command name in README 2020-05-04 15:11:19 +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
c345662521 REAMDE: Fix wiki urls 2020-05-01 23:44:31 +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
Rodney
9f2b18fd90
Update README.md 2020-05-01 17:13:01 +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
85244f4c88 Update README and setup.py (filter for PyPI) 2020-05-01 15:08:21 +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