Commit graph

879 commits

Author SHA1 Message Date
Stelios Tsampas 8eba137f09
Merge c7831a2040 into 7490e78855 2026-08-22 03:24:16 +09:00
Paweł Lidwin 7490e78855
ci: exclude dev dependencies from zipapp packaging (#782)
it looks like ruff binary was being installed, inflating the size by a lot
2026-08-20 21:56:41 +02:00
CommandMC ece601bfb2
add wrapper exe support (#777)
(cherry picked from commit c9ff491c64fc336496973b3fea0e2373bbb0f9f0)

Co-authored-by: Etaash Mathamsetty <etaash.mathamsetty@gmail.com>
2026-08-20 15:48:08 +02:00
CommandMC 1be4b7e2ba
Set CWD when launching a title through the EA app (#776) 2026-08-09 21:27:39 +02:00
Paweł Lidwin 1d1826f3c4
ci: add id-token permission (#773)
* ci: add id-token permission

* ci: contents read
2026-08-04 19:07:29 +02:00
Stelios Tsampas 51d58c4605
chore: fix typo (#771) 2026-08-04 18:35:28 +02:00
CommandMC e1f67bbbcd
Make case_insensitive_file_search a no-op on Windows (#772) 2026-08-04 11:30:08 +02:00
Stelios Tsampas c7831a2040 [lfs] Only check XDG_CONFIG_HOME when not on 'Windows'
When running legendary through Wine and `XDG_CONFIG_HOME` is set in the environment,
`config_path` resolves to the absolute path to the Linux config directory. Wine in turn
resolves the path in the way that Legendary uses the existing Linux host config
directory instead of creating/using the one under Wine prefix in `%USERPROFILE%\.config`
2026-08-02 12:14:29 +03:00
Sai Asish Y eb76c9f782
fix: avoid KeyError when game metadata is missing id/namespace (#769)
Signed-off-by: Sai Asish Y <say.apm35@gmail.com>
2026-07-28 14:07:14 +02:00
Paweł Lidwin ea580df3ff
release: 0.21.0 Lowlife (#765) 2026-07-09 17:15:29 +02:00
CommandMC 0142626be9
Add Ruff (#743)
* Add Ruff

* Fix all the easily fixable errors

* Add Ruff lint workflow
2026-07-09 17:12:59 +02:00
dependabot[bot] ded302c3b4
Bump idna from 3.11 to 3.15 (#755)
Bumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.15'
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 16:57:12 +02:00
Paweł Lidwin 39b0d76e64
ci: automate pypi and releases drafting (#761) 2026-07-09 16:49:25 +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