Commit graph

868 commits

Author SHA1 Message Date
Paweł Lidwin a2d7cb0cf9
Merge 3997532361 into 66314599f7 2026-06-04 15:25:05 +00:00
Paweł Lidwin 3997532361
release: 0.21.0 Lowlife 2026-06-04 17:24:38 +02:00
Paweł Lidwin 66314599f7
fix: unset old_manifest for all types of repair (#697) 2026-05-30 13:36:18 +02:00
Paweł Lidwin fd5c783fef
cli: remove redundant if statement (#762) 2026-05-30 13:29:53 +02:00
hawkeye116477 490b577240
Display UAC prompt for games which requires admin rights (#668)
* Display UAC prompt for games which requires admin rights

* Execute through the shell only at Windows
2026-05-30 12:54:05 +02:00
Stelios Tsampas 10d8d70d56
Add achievement handling (#729)
* [egs] add methods to fetch game and user achievements from graphql api

* [lfs] add methods to store and load user achievements

* [core] fetch game achievements  when updating assets and user achievements when requested

* [cli] add CLI interface for achievements

* [cli] Fix achievement classification filters

* [cli,core] Move achievement classification into LegendaryCore

There's no need for iterating twice

* [core] Check if achievements exists

some games have achievements_sets but no achievements

* [core] Associate user achievements with the namespace instead of app_name

* [core] sort achievements
2026-05-30 12:25:38 +02:00
Stelios Tsampas 48eb5f6bd3
[cli/core]: report grant date information with info (#748)
* [cli/core]: report grant date information with `info`

Entitlements are updated only when there is an asset update. If no matching
entitlement is found, the creation date from the game's metadata is returned
instead.

* [cli] replace missed use of entitlements with cached/on-disk data

* [core] update entitlements only when there are new assets.

* [cli] correctly pass `get_assets` platform argument
2026-05-30 12:24:44 +02:00
Paweł Lidwin fdfb7123ef
fix: support non-encrypted variants of v5 manifests (#756) 2026-05-22 23:19:20 +02:00
dependabot[bot] 366777bc06
Bump urllib3 from 2.6.3 to 2.7.0 (#754)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-14 13:31: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
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