derrod
9b545a82a8
[core] Fix egl_uninstall missing exception handling
2020-05-30 00:17:06 +02:00
derrod
867a661c9d
[core] Also remove egl programdata path from config if invalid
2020-05-30 00:10:50 +02:00
derrod
99485da7d8
[core] Reset EGL path if it is invalid
2020-05-29 23:53:07 +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
1d7d0eaa38
[core/cli] Import games installed via EGL w/o verification
2020-05-29 00:20:31 +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
e3ad2d8de9
[core] Fix crash when game config section is missing
2020-05-28 22:41:31 +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
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
e9a959e3a7
[core] Strip leading slashes from executable path
...
Fixes #42 and launching Hyper Light Drifter
2020-05-23 12:43:37 +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
1622b415ea
[core/utils] Move lfs helpers to utils
2020-05-19 17:45:46 +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
099e222a80
[core] Return platform specific version if override is used
2020-05-16 16:48:45 +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
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
d6abbcc694
Cleanup! (Remove shebangs, unused files)
2020-05-15 07:01:30 +02:00
derrod
0f01e404a4
[cli/core/downloader] Support multiple filter arguments
...
Fixes #20
2020-05-14 16:32:08 +02:00
derrod
98df2a0a38
[cli/core/models/utils] Add basic cloud save syncing support
2020-05-14 14:52:33 +02:00
derrod
2945c6c91f
[cli/core] Add flags/env vars to override WINE binary/prefix
2020-05-12 02:31:01 +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
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
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
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
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
7dacd7ba35
[cli/core] Fix manifest saving/loading
...
The refactoring didn't take into account that the raw
manifest data still needs to be accessible. Since I did
not want to modify the manifest model to hold the raw
data (waste of RAM), just make the methods return the
raw data again (at least for now)
2020-04-30 11:42:09 +02:00
derrod
6788b1257c
[core] Refactor manifest loading
2020-04-30 11:10:34 +02:00
derrod
ef0ea26372
[cli/core/downloader] Add support for filtering downloaded files by prefix
2020-04-29 22:08:28 +02:00
derrod
6e5e281c82
[core] Fix pre-installation warnings
...
- Make errors unique
- FNA/XNA games don't seem to really work with WINE.
2020-04-29 15:41:21 +02:00
derrod
209ba2dd81
[core] Remove unnecessary OVT path adjustments
...
Not only does this not work (path.join() will not
actually add Z: on non-Windows), it's also not necessary.
Confirmed to work with Detroit: Become Human (Demo) and
Just Cause 4.
2020-04-29 15:16:17 +02:00
derrod
9613ad34ba
[core] Log when manifest/base url is being overridden by the user
2020-04-28 15:56:52 +02:00
derrod
8251db22d2
[cli/core] Allow overriding platform and UE filter in list-games
2020-04-28 15:32:38 +02:00
derrod
e0b4769af2
[cli/core] Add option to override platform when downloading
...
This can be used to download Mac or 32-bit builds if desired.
For example: legendary download Corydalis --platform Mac
Will download the Slime Rancher macOS build.
Closes #12
2020-04-28 15:12:17 +02:00
derrod
f5861546b4
[core] Support manifest URLs with CDN authentication
2020-04-28 07:57:10 +02:00
derrod
e822a8f7bf
[core] Fix OwnershipToken path for WINE
...
Fixes #2
2020-04-28 06:28:23 +02:00
derrod
89fe49aa4d
[core] Add warning for BattlEye anticheat
...
Closes #8
2020-04-28 06:20:25 +02:00
derrod
1b3ef31963
[cli/core] Fix config offline and environment overrides
2020-04-26 14:58:09 +02:00
derrod
f4b1605b92
[core] Minor improvements for DLC/logging
2020-04-26 13:20:54 +02:00
derrod
035e23b964
[core/lfs] Clean up local manifest saving/loading
2020-04-25 23:06:46 +02:00
derrod
8f23770e43
[core] Add warning for games that are not marked for offline use
2020-04-25 22:54:18 +02:00
derrod
ec97cef264
[core] Add additional warning for Ownership Token requirement
2020-04-25 12:20:55 +02:00
derrod
a59107e503
[core/lfs] Load correct old manifest file after aborted installation
...
If a user were to start and then abort an installation previously
we would have loaded the downloaded new manifest, rather than the
one of the installed version. By explicitly setting the version
we can avoid this.
2020-04-24 06:29:22 +02:00
derrod
0b6824ba58
[core] Add status queue parameter for UI updates
2020-04-21 20:01:00 +02:00
derrod
c388c0d516
[cli/core] Add overrides for old manifest and install dir
2020-04-21 19:59:58 +02:00
derrod
988be667df
[core] Simplify game installation directory code
2020-04-20 01:27:41 +02:00
derrod
c2ae5b7367
[core] Allow default env/wine overrides in config
2020-04-20 01:27:36 +02:00
derrod
92a0003e6f
[core/lfs] Fix old manifest saving and install version saving
2020-04-20 01:27:28 +02:00
derrod
662f6e7bd0
[cli/core/models] Add basic support for DLCs
2020-04-20 01:27:06 +02:00
derrod
0031e5908a
[api/core] Overhaul session resume and verify session validity
2020-04-20 01:27:01 +02:00
derrod
5eb51dfd11
[api/core/models] Add support for "Ownership Token"
...
Ownership verification tokens appear to be part of EPIC's DRM scheme,
they're basically just a JSON file with a token in it that's downloaded
from their API before launching.
This fixes launching games such as Just Cause 4.
2020-04-20 01:26:44 +02:00
derrod
ce28ce2914
[core] Fix session reuse not checking if expiry is after now
...
Since total_seconds() just returns a positive number with the difference
we have to make sure we're actually still before the expiry time.
2020-04-20 01:25:59 +02:00
derrod
e00e534f2c
First public test version of legendary
...
Unfortunately the history from before this commit is lost to time. And
that's probably for the best.
2020-04-14 15:40:41 +02:00