derrod / legendary Goto Github PK
View Code? Open in Web Editor NEWLegendary - A free and open-source replacement for the Epic Games Launcher
Home Page: https://legendary.gl/discord
License: GNU General Public License v3.0
Legendary - A free and open-source replacement for the Epic Games Launcher
Home Page: https://legendary.gl/discord
License: GNU General Public License v3.0
Justreinstalled Windows and epic. Have the fortnite game files but there is no native option to verify or locate a storage location in Epic Games Launcher, wondering if there is such a feature on legendary?
TIA
Currently only one can be specified, meaning that not all files can be included/excluded/selected in one command.
Hello,
I have some error when I try to launch Civilization VI, it says that LaunchPad.exe
stop working.
Here's the output: https://gist.github.com/TADebastiani/de050bf90c85325265549aba266a0de4
This is on a fresh run with no games installed (as far as the app knows), using the 0.0.4 release.
$ ./legendary -v list-installed
Traceback (most recent call last):
File "legendary/cli.py", line 435, in <module>
File "legendary/cli.py", line 417, in main
File "legendary/cli.py", line 103, in list_installed
File "legendary/core.py", line 183, in get_installed_list
File "legendary/lfs/lgndry.py", line 208, in get_installed_list
AttributeError: 'NoneType' object has no attribute 'values'
[8517] Failed to execute script cli
For GUI, why not create a EGS Runners with legendary ?
I installed Batman™ Arkham Asylum Game of the Year Edition (App name: Godwit, version: 1.93). But when I try to launch it I got a error:
wine: cannot find '/home/firebird/legendary/BatmanArkhamAsylum/Binaries/Batman.exe'
So I checked the files using list-files
command it includes Batman.exe
but it's not downloaded so I can't launch it.
It installs fine but when I launch it with, legendary auth , I get this error.
Traceback (most recent call last):
File "/usr/local/bin/legendary", line 11, in
load_entry_point('legendary-gl==0.0.14', 'console_scripts', 'legendary')()
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/cli.py", line 853, in main
File "/usr/lib/python3.8/argparse.py", line 1380, in add_argument
action = action_class(**kwargs)
TypeError: init() got an unexpected keyword argument 'type'
Building the project from source and running legendary auth
results in this:
Traceback (most recent call last): File "/usr/bin/legendary", line 11, in <module> load_entry_point('legendary-gl==0.0.7', 'console_scripts', 'legendary')() File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 490, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2859, in load_entry_point return ep.load() File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2450, in load return self.resolve() File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2456, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "<frozen zipimport>", line 259, in load_module File "/usr/lib/python3.8/site-packages/legendary_gl-0.0.7-py3.8.egg/legendary/cli.py", line 18, in <module> File "<frozen zipimport>", line 259, in load_module File "/usr/lib/python3.8/site-packages/legendary_gl-0.0.7-py3.8.egg/legendary/core.py", line 28, in <module> ModuleNotFoundError: No module named 'legendary.utils'
This is on an Arch-based distro. Latest version of python is installed, as well as requests and setuptools.
I tried to use legendary to install GTA5 to an external drive but instead it looks like it was installed to the default location.
The command that I used was:
legendary install "9d2d0eb64d5c44529cece33fe2a46482" --save-path /home/m/NotDeadYet/GTA5
Instead of saving the files to: /home/m/NotDeadYet/GTA5
The game files were saved to: /home/m/legendary
I'm using the AUR version for Manjaro (v0.0.9) and trying to download Metro: Exodus. It starts downloading fine, but consumes more and more RAM until its amount (preset with max_memory option) runs out, and stops downloading after that. When I interrupt and restart legendary, it resumes downloading, but eventually the same happens.
legendary-log.zip
While 1 GiB is enough for almost any title, World War Z defies that trend by requiring up to 5.3 GiB of cache to successfully reconstruct its files. This is due to heavy duplication on the game's part since it ships with both a client and server that share large amounts of their files. The resulting heavy deduplication on Epic's part result in lots of cache being required for successful reconstruction. There are basically three ways this could be addressed:
Since the first two approaches are both complicated and not a cure-all/efficient solution we will have to add on-disk caching capability.
legendary import Anemone /mnt/games/Epic/WorldOfGoo
doesnt work. The correct syntax is:
legendary import-game Anemone /mnt/games/Epic/WorldOfGoo
BTW, your project is awesome!
Would it be possible to implement Desktop and Start Menu shortcut creation for the installed games, e.g. legendary.exe -shortcuts
? Currently, the games are installed without these (or, at least, the one I installed to test, "A Short Hike", appeared without any shortcuts), and it makes it more difficult to launch them. (As I don't usually use Epic Games, I had to check with my little brother, and he confirmed that the Epic Launcher does not create Start Menu shortcuts, but does make desktop shortcuts).
Game Name.lnk
containing the Epic Launcher command line, of course, it's possible to manually make the shortcuts using --dry-run
output, and manually copy them to desired locations.
Current User: %AppData%\Microsoft\Windows\Start Menu\Programs\Game Name.lnk
Desktop: %USERPROFILE%\Desktop\Game Name.lnk
Possible alternative start menu shortcut locations:
All users start menu (may have Admin prompt): %ProgramData%\Microsoft\Windows\Start Menu\Programs\Game Name.lnk
Or possibly Epic Games
or legendary
or Games
subdirectories of the Start Menu directories (to keep the programs list organised).
Several games support storing savegames in the cloud. Legendary ideally should support this as well when possible.
Will investiage.
Thank you so much for making this software! The Epic Games Launcher is bad, and your software is good! I look forward to seeing its future!
In my research, I've come across some other Epic Games-related scripts, etc. which I thought might be useful for inspiration/API reference?
Free Game claimer script (Python)
Hey, Idk if im doing anything wrong and sorry if this is stupid.
I downloaded the legendary.exe file and ran it on Windows. The CMD window opens, and then suddenly closes without any warnings.
What am I doing wrong?
Hello,
today I was trying to import GTAV from on older install I had, but it wouldn't let me because it would've had to download 240/340 files, clearly outside of the 95% match range.
Out of curiosity, I removed the check from cli.py
and it imported the game, marking it as installed, so I could now run verify, and it turned out I only actually had to download 17GB instead of the whole 90GB.
I also tried to run legendary repair
first, but it refused to do that because the game wasn't marked as installed.
My suggestion would be to rewrite the import function to mark the game as installed (maybe after checking for conflicts, such as an already existing manifest but for another game, or same path as another installed game, etc) and run repair on it. This change wouldn't impact importing installations which are 100% perfect as repair would do nothing but it allows to import game installations which are in a broken state without having to download the whole game again.
I'd like to hear your opinion on this as there might be something I'm missing here.
It would make the download progress much easier to understand. You can use rich library for python to make beautiful progress bars.
Tried copying files from an existing install and the amount downloaded didn't seem to change. I also tried to set --game-folder $path
without success.
I'm trying to verify GTA V, but the process freezes at 337/345 (97.7%) and suddenly quits. The computer also lags when hitting that value. I ran using administrator privilege both CMD and legendary.exe
Currently Legendary does not verify data at all and just hopes for the best.
Ideally we should check the hash of the file we're writing at least while writing.
For importing games it will also be important to check the installed version in order to determine whether or not it needs to be patched up.
That'd make trivial to pick the right game to download by its AppName
with a fuzzy finder like skim
or fzf
:
Current:
* Inside (App name: Marigold, version: 1.0.0)
* Into The Breach (App name: Blobfish, version: 1.2.22)
Sample alternative (tab-separated in this case):
Marigold Inside 1.0.0
Blobfish Into The Breach 1.2.22
To pick AppName(s) one can run:
legendary list-games | sk --multi --nth 2 | cut -f 1
and pipe output to download / install commands. Humans surely aren't great in reading dozens of lines of text and parsing them for AppName
:)
Using fuzzy finder with current output is still recommended to anybody.
Legandary has just been updated to v0.0.10, and now I can neither download nor launch games:
sergey@ryzen:~> legendary install Catnip
[Core] INFO: Trying to re-use existing login session...
Traceback (most recent call last):
File "/usr/bin/legendary", line 11, in <module>
load_entry_point('legendary-gl==0.0.10', 'console_scripts', 'legendary')()
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 564, in main
cli.install_game(args)
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 260, in install_game
game = self.core.get_game(args.app_name, update_meta=True)
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 149, in get_game
self.get_game_list(True)
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 153, in get_game_list
return self.get_game_and_dlc_list(update_assets=update_assets)[0]
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 161, in get_game_and_dlc_list
for ga in self.get_assets(update_assets=update_assets,
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 137, in get_assets
self.lgd.assets = [GameAsset.from_egs_json(a) for a in self.egs.get_game_assets()]
File "/usr/lib/python3.8/site-packages/legendary/api/egs.py", line 97, in get_game_assets
r.raise_for_status()
File "/usr/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/public/assets/Windows?label=Live
sergey@ryzen:~> legendary list-installed
Installed games:
* Metro Exodus (App name: Snapdragon, version: 0.1.0.35)
Total: 1
sergey@ryzen:~> legendary launch Snapdragon
[cli] INFO: Logging in...
[Core] INFO: Trying to re-use existing login session...
[cli] INFO: Checking for updates...
Traceback (most recent call last):
File "/usr/bin/legendary", line 11, in <module>
load_entry_point('legendary-gl==0.0.10', 'console_scripts', 'legendary')()
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 562, in main
cli.launch_game(args, extra)
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 218, in launch_game
latest = self.core.get_asset(app_name, update=True)
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 143, in get_asset
self.get_assets(update_assets=True)
File "/usr/lib/python3.8/site-packages/legendary/core.py", line 137, in get_assets
self.lgd.assets = [GameAsset.from_egs_json(a) for a in self.egs.get_game_assets()]
File "/usr/lib/python3.8/site-packages/legendary/api/egs.py", line 97, in get_game_assets
r.raise_for_status()
File "/usr/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/public/assets/Windows?label=Live
Hi, i'm trying to lauch Jotun Valhalla Edition this way:
$ legendary launch Grouse
and get this result:
0024:err:module:__wine_process_init L"Z:\home\j\legendary\Jotun\Jotun.exe" 64-bit application not supported in 32-bit prefix
I am using an updated Voidlinux 64bit linux. Here is my " $ uname -a"
Linux tour 5.4.39_1 #1 SMP PREEMPT Wed May 6 19:42:50 UTC 2020 x86_64 GNU/Linux
Tell me if you need more info on my system.
https://www.epicgames.com/id/api/exchange only returns the following:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /id/api/exchange</pre>
</body>
</html>
Hi firstly thanks for the amazing project, as a Linux user this tool is amazing. Anyways the issue I'm having is adding Legendary games as a non-steam game (yes, i've manually corrected the path/launch options, tried using a bash script, even tried just adding a terminal emulator as a non-steam game and launching it manually from there) regardless of the method I use the game flashes "running" for 1 second but never actually opens, I have almost every other app added as non-steam game without issues (Lutris/POL/GOG games/Humble Games/etc). I've tried setting LD_LIBRARY_PATH without luck, I need to add to steam so I can stream the game to my TV, Sorry if this isn't the right spot for this issue, I post here because legendary is the only app behaving like this, thanks.
(Wine-noob here)
How do I change the wine_executable to proton ?
wine_executable = proton
does not work as proton is not in my path.
I have several version of Proton installed under ~/.local/share/Steam/steamapps/common/Proton X.X/
I tried putting this absolute path but something seems wrong with the escaping space.
Whatever I tried I always ended up with this error :
> legendary launch Kinglet
[cli] INFO: Logging in...
[Core] INFO: Trying to re-use existing login session...
[cli] INFO: Checking for updates...
[Core] INFO: Getting authentication token...
[cli] INFO: Launching Kinglet...
Traceback (most recent call last):
File "/usr/bin/legendary", line 11, in <module>
load_entry_point('legendary-gl==0.0.13', 'console_scripts', 'legendary')()
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 775, in main
cli.launch_game(args, extra)
File "/usr/lib/python3.8/site-packages/legendary/cli.py", line 387, in launch_game
subprocess.Popen(params, cwd=cwd, env=env)
File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'proton'
It would be nice to be able to download localized versions of games.
Currently epicovt
just uses the path to the file in the config directory, this may not work with WINE.
Hi, thank you for your efforts on creating an open source CLI binary for interacting with the Epic games store. Would certainly prefer this one than the official resource-heavy client.
I have a concern about downloading games however, I noticed that downloading is really bad on my internet that is suffering from high latency thanks to incompetent ISPs...
I think it would help if the "read timeout=5.0" could be adjustable to a bigger number. As you can see on my logs below, I still am able to download to some extent but the Download speeds always go down to 0 just a few seconds after it gets to start to download.
My internet isn't completely unstable except for the fact that it hiccups at an average of every 10 seconds. Despite that, I am still able to download using youtube-dl on speeds around 50 KBPS but I do admit that this one suffers from hiccups too, just that not as bad as what's happening when I use legendary to download a game.
[2020-05-02 15:06:08,691] [DLMProc] INFO: Downloaded: 22.19 MiB, Written: 36.91 MiB
[2020-05-02 15:06:08,691] [DLMProc] INFO: Speeds:
[2020-05-02 15:06:08,691] [DLMProc] INFO: + Download - 0.00 MiB/s (raw) / 0.00 MiB/s (decompressed)
[2020-05-02 15:06:08,691] [DLMProc] INFO: + Write (disk) - 0.00 MiB/s
[2020-05-02 15:06:08,691] [DLMProc] INFO: + Read (disk) - 0.00 MiB/s
[2020-05-02 15:06:08,691] [DLMProc] INFO: + Tasks - 0.00 Chunks/s
[2020-05-02 15:06:08,691] [DLMProc] INFO: Active download tasks: 16
[2020-05-02 15:06:08,691] [DLMProc] INFO: Shared memory usage: 26.0 MiB, available: 998
[2020-05-02 15:06:08,689] [DLWorker 3] WARNING: [DLWorker 3] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
[2020-05-02 15:06:08,693] [DLWorker 6] WARNING: [DLWorker 6] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
[2020-05-02 15:06:08,698] [DLWorker 5] WARNING: [DLWorker 5] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
[2020-05-02 15:06:08,697] [DLWorker 4] WARNING: [DLWorker 4] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
[2020-05-02 15:06:08,702] [DLWorker 2] WARNING: [DLWorker 2] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
[2020-05-02 15:06:08,697] [DLWorker 7] WARNING: [DLWorker 7] Chunk download failed (ReadTimeout(ReadTimeoutError("HTTPSConnectionPool(host='download.epicgames.com', port=443): Read timed out. (read timeout=5.0)"))), retrying...
legendary launch 9d2d0eb64d5c44529cece33fe2a46482
[cli] INFO: Logging in...
[Core] INFO: Trying to re-use existing login session...
[cli] INFO: Checking for updates...
Traceback (most recent call last):
File "legendary\cli.py", line 795, in <module>
File "legendary\cli.py", line 771, in main
File "legendary\cli.py", line 373, in launch_game
AttributeError: 'Namespace' object has no attribute 'wine_bin'
[9280] Failed to execute script cli
Windows 10 x64
Mainly for Linux:
It appears in pip search but it can't be installed.
user@machine:~> pip install legendary-gl -vvv
Collecting legendary-gl
1 location(s) to search for versions of legendary-gl:
* https://pypi.python.org/simple/legendary-gl/
Getting page https://pypi.python.org/simple/legendary-gl/
Looking up "https://pypi.python.org/simple/legendary-gl/" in the cache
Returning cached "301 Moved Permanently" response (ignoring date and etag information)
Looking up "https://pypi.org/simple/legendary-gl/" in the cache
Current age based on date: 83
Freshness lifetime from max-age: 600
Freshness lifetime from request max-age: 600
The response is "fresh", returning cached response
600 > 83
Analyzing links from page https://pypi.org/simple/legendary-gl/
The package https://files.pythonhosted.org/packages/0a/2c/df4fbafe51810adfc77de835f203bee6d820003d234ff21b8140052479ac/legendary-gl-0.0.6.tar.gz#sha256=d7ce4cb5cbfc8538574892e57dd89fb54d5210938d8260f1726683f3310c7894 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/49/d6/97bbf7722eb5efb3a16762d3f1ee962ddcb9e25a4ed5204b6d6309ac97ce/legendary_gl-0.0.6-py3-none-any.whl#sha256=49654036744f50b71c1074f7e62edc661baa164167d64bf570b177e179792035 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
The package https://files.pythonhosted.org/packages/fe/93/2c2df59311c6181035bf397a81265bce3d316167d380106b33ac7100ef13/legendary-gl-0.0.7-3.tar.gz#sha256=2a1c10781586de00eb155650f8ad3e9aca8366d743761000290832e2d349476b (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/96/f8/a00b8b905d44d13578408f7f4385332eb865be6bee86e5ae5281799bf83f/legendary_gl-0.0.7-3-py3-none-any.whl#sha256=10d4dfe9f57f01b4e3d00e10458a9981ef8701ef41c3395f012c1eca79b020d2 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
The package https://files.pythonhosted.org/packages/cd/99/6ab7417206a2bf48a8800f1e1e17b8e50c2619c7f25c786a7b1cc10ff0a8/legendary-gl-0.0.8.tar.gz#sha256=3c9367f844144b47b7f4c292640d00ac94406f7fd2cb32dc2fdcb8ba4f560e15 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/e9/a0/31bf1b1085c14a046e508e64473bb2b269bb095ddf9b5a0b1b36a540978b/legendary_gl-0.0.8-py3-none-any.whl#sha256=fdac34b9f8606e55bffb54b23c7c156e580e8977a90ea158c5cbb3ed58430c7c (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
The package https://files.pythonhosted.org/packages/92/4f/c067da0ae1852b8db0e6fa89d0d61172cbe11e8629c45c3c6e9e19d66a36/legendary-gl-0.0.9.tar.gz#sha256=aaa64bc0f862b04a0b44d6f4496fdd3ca8508bcb119ff35483938c143266c29a (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/35/ff/65cea0419679f9ef33a5a79374f81e8a8a32711bd62ba8ae5ec824cc8876/legendary_gl-0.0.9-py3-none-any.whl#sha256=f458e3aac4e611f9f76061fe8ec436c7e440b2a2c1c84779b847adf24c5aa4e3 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
The package https://files.pythonhosted.org/packages/c6/d5/15b541e63a41d2ddee290d5a36d6cebac07d03331b8c2e552fea8779d9a5/legendary-gl-0.0.10.tar.gz#sha256=5c06428e54c6ff497858031fe1c4138c9ce5c11b45fc65f7896eb2052d624d0c (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/99/24/71b1feb085dddf81fd94ec538b08c60a366bdc84261a92c2e119f0779410/legendary_gl-0.0.10-py3-none-any.whl#sha256=623a75af26fc9c0a029a325c46b25c3ea4364f00bb1f827cf18a002070292fce (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
The package https://files.pythonhosted.org/packages/61/59/d5e4e63262238395523589317c098488f7192654d073655e2a979bff9d5b/legendary-gl-0.0.11.tar.gz#sha256=848e1ee6d724b1e089ee2aa97ab9e8c3a8b2eaa2b33407d617d154a86d2bedd8 (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8) is incompatible with the pythonversion in use. Acceptable python versions are:>=3.8
Skipping link https://files.pythonhosted.org/packages/d1/3e/c9f1a3e3ccc1d5f7829a66ec54c94006e8c08309eb8e38916bb3238eda9d/legendary_gl-0.0.11-py3-none-any.whl#sha256=1c2fa525b9524743e4ff4d739435d3f5d21b934737d619f5ca153d19f184bf6d (from https://pypi.org/simple/legendary-gl/) (requires-python:>=3.8); it is not compatible with this Python
Could not find a version that satisfies the requirement legendary-gl (from versions: )
Cleaning up...
No matching distribution found for legendary-gl
Exception information:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
require_hashes
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 514, in find_requirement
'No matching distribution found for %s' % req
DistributionNotFound: No matching distribution found for legendary-gl
With a fresh install, egl-sync crashes:
$ legendary egl-sync
EGL path not found, please manually provide the path to the WINE prefix it is installed in
Path [empty input to quit]: /home/djib/epic-games-store
Traceback (most recent call last):
File "/home/djib/.local/bin/legendary", line 8, in <module>
sys.exit(main())
File "/home/djib/.local/lib/python3.8/site-packages/legendary/cli.py", line 1101, in main
cli.egs_sync(args)
File "/home/djib/.local/lib/python3.8/site-packages/legendary/cli.py", line 797, in egs_sync
self.core.lgd.config.set('Legendary', 'egl_programdata', egl_path)
File "/usr/lib/python3.8/configparser.py", line 1201, in set
super().set(section, option, value)
File "/usr/lib/python3.8/configparser.py", line 902, in set
raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'Legendary'
To solve the issue I added an empty [Legendary]
section in ~/.config/legendary/config.ini
.
The commands related to installation are download
, uninstall
, and list-installed
. I think it would be more consistent if download
were renamed to install
. I can make a pull request for this if you agree.
I'm attempting to get GTA V running on OSX with Wine64. GTA V is a Windows only binary, so while it is possible to auth and download it with legendary on OSX natively, ultimately the game will need to be installed and run on Wine64 if it is to work on Mac at all...
Attempting to run legendary.exe within a cmd.exe crashes on Wine64 for OSX with the following:
[##] INTERNAL ERROR: cannot create temporary directory!
where ## is the number of the temporary folder it is creating.
It seems that PyInstaller is creating about 6 directories prefixed with ## in %TMP%
in _MEI592, _MEI593, etc...
These directories are not owned by the user and are not readable (dir /q
) or accessible
cd %TMP%\_MEI592
Access denied.
on the Host os they appear as:
d--------- 2 user wheel 64B 15 May 02:19 _MEI592
I'm not sure if this is an issue with PyInstaller on Wine specifically or a problem with how legendary is packed with PyInstaller.
I've not yet attempted to install Python and install legendary that way.
I was downloading Civilisation VI which completed successfully, but was then asked if I wanted to download the DLC content, I selected yes. I then recieved the following error:
The following DLCs are available for this game:
- Civilization VI : Aztec DLC (App name: KingletAztec, version: 1.0.1.504666c)
Manually installing DLCs works the same; just use the DLC app name instead.
Do you wish to automatically install DLCs ? [Y/n]: y
[Core] INFO: Trying to re-use existing login session...
[cli] INFO: Install candidate is DLC
[cli] INFO: Preparing download...
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.8/http/client.py", line 1332, in getresponse
response.begin()
File "/usr/lib/python3.8/http/client.py", line 303, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.8/http/client.py", line 264, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 318, in recv_into
raise SocketError(str(e))
OSError: (104, 'ECONNRESET')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
retries = retries.increment(
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3/dist-packages/six.py", line 702, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.8/http/client.py", line 1332, in getresponse
response.begin()
File "/usr/lib/python3.8/http/client.py", line 303, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.8/http/client.py", line 264, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 318, in recv_into
raise SocketError(str(e))
urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/legendary", line 11, in <module>
load_entry_point('legendary-gl==0.0.14', 'console_scripts', 'legendary')()
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/cli.py", line 947, in main
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/cli.py", line 565, in install_game
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/cli.py", line 464, in install_game
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/core.py", line 611, in prepare_download
File "/usr/local/lib/python3.8/dist-packages/legendary_gl-0.0.14-py3.8.egg/legendary/core.py", line 558, in get_cdn_manifest
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))
Just like the error suggested I tried installed the DLC after which worked successfully.
The computed save path for “Untitled Goose Game” (Flour) is %APPDATA%/../locallow/House House/Untitled Goose Game/
. I guess %APPDATA%
should be translated to ${WINEPREFIX}/drive_c/users/${USER}/Application Data/
?
Hi, this is a really cool library! Sorry if this is off-topic, but we're developing an application where we need users to sign into their Epic Games accounts so that we can verify that they truly own the usernames that they claim. We want to go through Epic Games and have a redirect URL back to our site since that's the "standard" OAuth flow. Do you know if Epic Games has a REST endpoint that performs this authentication and redirect with an OAuth token? We figured we'd ask here since you clearly have a lot of expertise on the protocols they support.
Sounds so much cooler and is easier to remember.
This is not an issue but I couldn't figure out how to launch GTAV. My wine 5.8 setup throws error after installing DirectX with a message of:
Unable to launch game, please verify your game data
Add flags for download without output (--quite
or --silent
) and confirmation (--noconfirm
). This is good option for shell scripting with this client.
Line 250 in 3c0a8be
https://docs.python.org/3/library/os.path.html#os.path.join
If a component is an absolute path, all previous components are thrown away and joining continues from the absolute path component.
Not sure why my executables in install.json have a leading slash, but it breaks legendary for me
Hi,
Could it be possible to have .deb packages ?
Thanks, a Pop-OS user ;)
``C:\Users\John\legendary\SuperMeatBoy
λ legendary uninstall Buffalo
Do you wish to uninstall "Super Meat Boy"? [y/N]: y
[cli] INFO: Removing "Super Meat Boy" from "C:\Users\John/legendary\SuperMeatBoy"...
[LFS Utils] ERROR: Failed deleting files with PermissionError(13, 'Δεν ήταν δυνατή η προσπέλαση του αρχείου από τη διεργασία, επειδή χρησιμοποιείται ήδη από κάποια άλλη διεργασία')
[cli] INFO: Game has been uninstalled.
C:\Users\John\legendary\SuperMeatBoy
λ cd ..
C:\Users\John\legendary
λ legendary uninstall Buffalo
[cli] ERROR: Game Buffalo not installed, cannot uninstall!
``
Here we have an example of a game that should be uninstalled because the resource is being used(that is what it says in greek) when such an error comes up it should be marked as uninstalled
I use Manjaro, so I installed legendary through AUR. Auth and installed the game went fine.
Launch failed with : wine: cannot find '~/Games/legendary/GTAV/PlayGTAV.exe'
And indeed the file does not exist.
A quick test patch to the following code to replace Windows
with Mac
was confirmed to work:
legendary/legendary/api/egs.py
Lines 94 to 98 in 0031e59
legendary/legendary/api/egs.py
Lines 100 to 103 in 0031e59
It appears legendary is currently storing metadata for things without regard of the platform it grabbed things from, so that's a concern as well.
It seems that despite being platform-specific, the manifest for games lists alternate platforms that are available (example from Fortnite):
"releaseInfo": [
{
"appId": "Fortnite",
"compatibleApps": [],
"dateAdded": "2014-09-11T00:00:00.000Z",
"id": "...",
"platform": [
"Windows",
"Mac"
]
}
],
I'm not sure the best approach here just yet (still reading through legendary's code), but a way to specify a platform override for legendary download
would be fantastic.
Hopefully this sort of usage is not out of scope for legendary?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.