From b546791721d2b10fe6385a8ddbcf71ad551a36f5 Mon Sep 17 00:00:00 2001 From: R1kaB3rN <100738684+R1kaB3rN@users.noreply.github.com> Date: Fri, 22 Mar 2024 01:18:34 -0700 Subject: [PATCH] Add support for downloading GE-Proton - Users will be able to automatically download the latest GE-Proton if setting 'GE-Proton' to PROTONPATH --- umu/umu_dl_util.py | 23 ++++++++++++++++------- umu/umu_run.py | 5 +++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/umu/umu_dl_util.py b/umu/umu_dl_util.py index fba1ade2f..a3183e9f9 100644 --- a/umu/umu_dl_util.py +++ b/umu/umu_dl_util.py @@ -61,10 +61,14 @@ def _fetch_releases() -> List[Tuple[str, str]]: conn: HTTPConnection = HTTPSConnection( "api.github.com", timeout=30, context=create_default_context() ) + repo: str = "/repos/Open-Wine-Components/umu-proton/releases" + + if environ.get("PROTONPATH") == "GE-Proton": + repo = "/repos/GloriousEggroll/proton-ge-custom/releases" conn.request( "GET", - "/repos/Open-Wine-Components/umu-proton/releases", + repo, headers={ "Accept": "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", @@ -85,12 +89,14 @@ def _fetch_releases() -> List[Tuple[str, str]]: for asset in assets: if ( - "name" in asset + asset.get("name") and ( - asset["name"].endswith("sum") + asset.get("name").endswith("sum") or ( - asset["name"].endswith("tar.gz") - and asset["name"].startswith(("umu-proton", "ULWGL-Proton")) + asset.get("name").endswith("tar.gz") + and asset.get("name").startswith( + ("umu-proton", "ULWGL-Proton", "GE-Proton") + ) ) ) and "browser_download_url" in asset @@ -261,9 +267,12 @@ def _get_latest( tarball: str = files[1][0] sums: str = files[0][0] proton: str = tarball[: tarball.find(".tar.gz")] + version: str = ( + "GE-Proton" if environ.get("PROTONPATH") == "GE-Proton" else "umu-proton" + ) if steam_compat.joinpath(proton).is_dir(): - log.console("umu-proton is up to date") + log.console(f"{version} is up to date") environ["PROTONPATH"] = steam_compat.joinpath(proton).as_posix() env["PROTONPATH"] = environ["PROTONPATH"] return env @@ -273,7 +282,7 @@ def _get_latest( log.debug("Removing: %s", sums) tmp.joinpath(tarball).unlink(missing_ok=True) tmp.joinpath(sums).unlink(missing_ok=True) - log.console(f"Using umu-proton ({proton})") + log.console(f"Using {version} ({proton})") env["PROTONPATH"] = environ["PROTONPATH"] except ValueError: log.exception("Exception") diff --git a/umu/umu_run.py b/umu/umu_run.py index 835b0cd42..c53cd4993 100755 --- a/umu/umu_run.py +++ b/umu/umu_run.py @@ -144,6 +144,11 @@ def check_env( os.environ["PROTONPATH"] ).as_posix() + # GE-Proton + if os.environ.get("PROTONPATH") and os.environ.get("PROTONPATH") == "GE-Proton": + log.debug("GE-Proton selected") + get_umu_proton(env) + if "PROTONPATH" not in os.environ: os.environ["PROTONPATH"] = "" get_umu_proton(env)