Commit graph

857 commits

Author SHA1 Message Date
Paweł Lidwin aeb61d4eea
fix: save-sync chunk read crash (#747) 2026-04-15 14:15:28 +02:00
Paweł Lidwin 41e3cfab82
fix: add 3rd param to setexchangecode callback (#745)
* fix: add 3rd param to setexchangecode callback

I'm unsure what that param is, it could be an error indicator of some sorts, for now I'll just assume a happy path

* chore: add logging for the param
2026-04-13 13:26:15 +02:00
Paweł Lidwin ce12e3fb63
tech: make python 3.10 a minimum required version (#746) 2026-04-13 13:23:39 +02:00
Stelios Tsampas e155486902
[core] check for STEAM_COMPAT_DATA_PATH in global settings too when resolving save paths (#714) 2026-04-09 15:35:16 +02:00
CommandMC 546bb7416f
Handle file tasks case-insensitively (#690)
* Handle file tasks case-insensitively

* Also make verification and uninstallation case-insensitive if necessary

This also only enables case-insensitive file tasks if installing a
Windows game

* Fastpath for existing path case

"Fastpath", heh, get it, because it's working with paths...
2026-04-09 15:34:26 +02:00
CommandMC 5de8addf8f
Move to pyproject.toml and the uv build system (#741)
* Move to pyproject.toml and the uv build system

* A few tweaks that should make it even faster

* Add pyinstaller to optional dependencies and install it as part of the workflow

* Use --no-editable to avoid building and installing Legendary manually

* Drop deprecated license classifier

* Update README.md to mention uv
2026-04-09 15:33:14 +02:00
Paweł Lidwin bc5d12c914
feat: support encrypted manifests and chunks (#738)
* feat: support encrypted manifests and chunks

fix: ensure manifest_secrets is always defined in info

fix: update all usage of DLManager with manifest secrets

* chore: remove unused is_preloaded var
2026-04-08 18:41:44 +02:00
Paweł Lidwin cdf6645d5c
ci: update actions (#739)
* update action steps versions
* added support for multiple architectures
* switch to zipapp building on Linux
* drop support for deb package CI
2026-04-08 18:41:05 +02:00
badboybeyer 9942cd987f
fix: prevent .netrc credentials from being injected into api calls (#736) 2026-04-08 12:49:43 +02:00
Stelios Tsampas b23d351678
[utils/cli] Accept empty string as a falsey value in strtobool (#701)
Some UE asset manifests seem to have `"OwnershipToken": ""` instead
of something `strtobool` could understand. When trying to import these
through `egl-sync` an exception is being raised, which blocks importing
other titles too.

The other use of `strtobool` is in `LGDRY_NO_WINE` environment variable,
which also causes an exception if set as `LGDRY_NO_WINE=`
2026-04-02 11:31:25 +02:00
Paweł Lidwin 42af7b5db7
[api] update graphql host (#713) 2025-10-03 04:29:35 +02:00
derrod 3963382b3f Update CI runners
Keeping macos-13 for now to stay on x86 runners.
2024-08-24 12:21:49 +02:00
derrod 49dcdf1a59 Bump Version 2024-08-23 16:02:05 +02:00
derrod 56a2314e40 [core/models] Implement Sidecar config and epicdeploymentid parameter 2024-08-23 16:01:55 +02:00
derrod 4d63dcc188 [core] Warn if app does not have metadata
I forgot why I did this, but I think it works around a crash?
2024-08-23 15:18:59 +02:00
Paweł Lidwin f1f5cc07f6 [core] Normalise OwnershipToken value to lowercase
Apparently this can be uppercase or lowercase, thanks Epic!
2024-08-23 15:16:47 +02:00
Shashank Prasanna 08c64ebca1
[cli] Update Ubisoft game instructions (#591)
Added that Ubisoft Connect is required for the game to be launched.
2024-08-23 15:13:25 +02:00
kloon15 09d280f476
[lfs] Workaround bug in FileLock >=3.15.3 (#656) 2024-08-23 15:12:31 +02:00
Mathis Dröge 9395eb94ab
[core] Skip library items with no appName (#649) 2024-08-23 15:11:18 +02:00
Mathis Dröge 90e5f75af0
[cli/models] Support both origin and EA App names (#632)
Note that the actual title has different case for different games (e.g.
it's "the EA app" for one game, but "The EA App" for another)
2024-08-23 15:10:42 +02:00
derrod 7fefdc4973 [cli/core] Fix fetching more than 1000 entitlements 2024-01-01 04:24:46 +01:00
derrod 96e07ff453 [cli] Fix launchable add-ons that are also installable 2023-12-24 13:35:08 +01:00
derrod ac6290627c [cli/core] Support launchable DLC/Addons 2023-12-14 15:05:23 +01:00
derrod 691048d481 [models] Add is_launchable_addon property to Game objects 2023-12-14 14:54:25 +01:00
derrod 837c166187 [cli] Show metadata command line in "info" command 2023-12-13 23:18:12 +01:00
derrod 1841da51f0 [core/models] Support additional command line parameters from metadata
This should fix things like the fake Fortnite "games" (Lego Fortnite etc.)
2023-12-13 23:15:08 +01:00
derrod 56d439ed2d Bump version 2023-12-08 14:37:58 +01:00
derrod 2fdacb75d3 [cli/core/utils] Fix webview login now requiring EGL UA
Why are you like this Epic?
2023-12-08 14:37:42 +01:00
derrod d2963db5b2 [core] Ignore private apps in library items
Fixes #618
2023-11-22 19:33:40 +01:00
derrod f1d815797f [cli] Fix --token not working 2023-11-16 01:41:31 +01:00
Witold Baryluk 591039eaf3
[cli] Use python3 shebang (#622)
Rational in PEP-394 fine print and reality of various distros

Details in https://github.com/derrod/legendary/issues/572

Closes: https://github.com/derrod/legendary/issues/572
2023-11-16 01:41:02 +01:00
Witold Baryluk 9131f32c22
[downloader] Avoid buffer copies in worker (#621)
This increases peek download speed from about 850MB/s to 960MB/s on my computer.

https://github.com/derrod/legendary/issues/620
2023-11-16 01:40:44 +01:00
derrod 450784283d [cli/core/downloader] Add option to bind to IP(s) 2023-10-14 14:20:17 +02:00
Etaash Mathamsetty c56a81ab64
[lfs] Allow setting config dir via LEGENDARY_CONFIG_PATH env var (#590) 2023-10-14 12:51:14 +02:00
derrod 488d14c6e0 [cli] Fix list-files not working with empty install tag 2023-09-30 03:38:26 +02:00
derrod 4c765325af [core] Ignore problematic app name
This is a test app that isn't used for anything,
but it will mess up Heroic if you also have the
GOG title with id "1" (Fallout Classic).
2023-09-30 03:32:34 +02:00
derrod c6e622f3ae [cli] Fix setting "disable_sdl" config option
These have to be strings, whoops.
2023-09-30 03:31:52 +02:00
Stelios Tsampas 013f7d4bde [cli] Protect assignment when testing for install_tags
Fixes #608
2023-09-28 05:41:25 +02:00
Etaash Mathamsetty 03b21f49de [cli] Use start.exe when launching a URI 2023-09-09 08:54:31 +02:00
Mathis Dröge bd2e7ca0cd [cli] Actually store user-provided prefix path
This was assigning to a local variable, only ever used in the `if` block
2023-08-10 14:46:48 +02:00
Stelios Tsampas 20b121bdb9 [cli] Write tags to config after successful verification
If a game has a `__required` SDL which is an empty string will fail verification
because the check for building the list of hashes will fail, implying that the
whole game including all the SDLs will be validated.

At the same time, if we are importing a game using a config file that doesn't
specify the `install_tags` for such a game, the install tags won't be saved
due to calling an early `exit(0)`.

These two issues combined can cause a verification, repair, verification loop.
This commit addresses both of those issues.

Related convertation on Discord:
https://discord.com/channels/695233346627698689/695234626582609940/1084939380713594924
2023-07-28 07:14:11 +02:00
derrod b759d9dbb1 [core] Fix deadlock when clearing userdata in login 2023-07-27 13:12:10 +02:00
derrod 51377e8548 [cli] Fix info command for apps without custom attributes 2023-07-05 11:49:59 +02:00
derrod 07a16f7b84 [cli] Allow launching DLC if executable is set 2023-06-26 07:05:43 +02:00
derrod c69301212c Fix CI build missing filelock package 2023-06-18 05:08:56 +02:00
derrod 865dd51e2b [cli] Fix and cleanup uninstaller wording/handling
Somebody made a little copy-paste mistake there...
2023-06-18 01:24:39 +02:00
derrod 6536473063 [cli] Support running uninstaller on Windows 2023-06-18 00:54:54 +02:00
derrod 6d7909c311 [core/models] Add uninstaller to game model 2023-06-18 00:39:11 +02:00
derrod 0e35b70941 [cli] Show uninstaller information in "info" command 2023-06-18 00:38:38 +02:00
derrod e0428b497e [core] Add EOS service warning 2023-06-18 00:28:55 +02:00