Commit graph

869 commits

Author SHA1 Message Date
Stelios Tsampas 78e67a33e7
Merge 9b6ed59e26 into e747bbb34e 2026-05-03 21:52:33 +02:00
Paweł Lidwin e747bbb34e
tech: ensure boolean types are always returned (#752) 2026-04-30 15:03:20 +02:00
Paweł Lidwin 46f8445a06
feat: support launching games with uplay protocol (#750) 2026-04-28 11:55:18 +02:00
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
Stelios Tsampas 9b6ed59e26 [core] sort achievements 2025-12-29 20:43:45 +02:00
Stelios Tsampas 76dfa59639 [core] Associate user achievements with the namespace instead of app_name 2025-12-22 02:28:40 +02:00
Stelios Tsampas 2032a6d195 [core] Check if achievements exists
some games have achievements_sets but no achievements
2025-12-22 02:08:49 +02:00
Stelios Tsampas 6c9dc3945d [cli,core] Move achievement classification into LegendaryCore
There's no need for iterating twice
2025-12-22 00:38:20 +02:00
Stelios Tsampas 048a560b46 [cli] Fix achievement classification filters 2025-12-22 00:38:18 +02:00
Stelios Tsampas 592e30cafc [cli] add CLI interface for achievements 2025-12-21 13:46:22 +02:00
Stelios Tsampas d976c9e6a5 [core] fetch game achievements when updating assets and user achievements when requested 2025-12-20 01:49:38 +02:00
Stelios Tsampas 6386302a86 [lfs] add methods to store and load user achievements 2025-12-20 01:48:52 +02:00
Stelios Tsampas 219b589071 [egs] add methods to fetch game and user achievements from graphql api 2025-12-20 01:47:06 +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