diff --git a/scripts/generateGappsLink.py b/scripts/generateGappsLink.py index ecb7779..cdf3cdf 100644 --- a/scripts/generateGappsLink.py +++ b/scripts/generateGappsLink.py @@ -15,32 +15,11 @@ # You should have received a copy of the GNU Affero General Public License # along with MagiskOnWSALocal. If not, see . # -# Copyright (C) 2024 LSPosed Contributors +# Copyright (C) 2025 LSPosed Contributors # - -from datetime import datetime import sys - -import requests -import json -import re from pathlib import Path - -class BearerAuth(requests.auth.AuthBase): - def __init__(self, token): - self.token = token - - def __call__(self, r): - r.headers["authorization"] = "Bearer " + self.token - return r - - -github_auth = None -if Path.cwd().joinpath('token').exists(): - with open(Path.cwd().joinpath('token'), 'r') as token_file: - github_auth = BearerAuth(token_file.read()) - print("Using token file for authentication", flush=True) arch = sys.argv[1] arg2 = sys.argv[2] download_dir = Path.cwd().parent / "download" if arg2 == "" else Path(arg2) @@ -51,29 +30,12 @@ print(f"Generating GApps download link: arch={arch}", flush=True) abi_map = {"x64": "x86_64", "arm64": "arm64"} android_api_map = {"30": "11.0", "32": "12.1", "33": "13.0"} release = android_api_map[android_api] -res = requests.get(f"https://api.github.com/repos/LSPosed/WSA-Addon/releases/latest", auth=github_auth) -json_data = json.loads(res.content) -headers = res.headers -x_ratelimit_remaining = headers["x-ratelimit-remaining"] -if res.status_code == 200: - download_files = {} - assets = json_data["assets"] - for asset in assets: - if re.match(rf'gapps.*{release}.*\.rc$', asset["name"]): - download_files[asset["name"]] = asset["browser_download_url"] - elif re.match(rf'gapps.*{release}.*{abi_map[arch]}.*\.img$', asset["name"]): - download_files[asset["name"]] = asset["browser_download_url"] - with open(download_dir/tempScript, 'a') as f: - for key, value in download_files.items(): - print(f"download link: {value}\npath: {download_dir / key}\n", flush=True) - f.writelines(value + '\n') - f.writelines(f' dir={download_dir}\n') - f.writelines(f' out={key}\n') -elif res.status_code == 403 and x_ratelimit_remaining == '0': - message = json_data["message"] - print(f"Github API Error: {message}", flush=True) - ratelimit_reset = headers["x-ratelimit-reset"] - ratelimit_reset = datetime.fromtimestamp(int(ratelimit_reset)) - print( - f"The current rate limit window resets in {ratelimit_reset}", flush=True) - exit(1) +download_files = {} +download_files[f"gapps-{release}.rc"] = f"https://github.com/LSPosed/WSA-Addon/releases/latest/download/gapps-{release}.rc" +download_files[f"gapps-{release}-{abi_map[arch]}.img"] = f"https://github.com/LSPosed/WSA-Addon/releases/latest/download/gapps-{release}-{abi_map[arch]}.img" +with open(download_dir / tempScript, "a") as f: + for key, value in download_files.items(): + print(f"download link: {value}\npath: {download_dir / key}\n", flush=True) + f.writelines(value + "\n") + f.writelines(f" dir={download_dir}\n") + f.writelines(f" out={key}\n") diff --git a/scripts/generateMagiskLink.py b/scripts/generateMagiskLink.py index 29c2d6f..f8cd663 100644 --- a/scripts/generateMagiskLink.py +++ b/scripts/generateMagiskLink.py @@ -15,55 +15,42 @@ # You should have received a copy of the GNU Affero General Public License # along with MagiskOnWSALocal. If not, see . # -# Copyright (C) 2023 LSPosed Contributors +# Copyright (C) 2025 LSPosed Contributors # - -from datetime import datetime -import re import sys import json import requests from pathlib import Path - -class BearerAuth(requests.auth.AuthBase): - def __init__(self, token): - self.token = token - - def __call__(self, r): - r.headers["authorization"] = "Bearer " + self.token - return r - - -github_auth = None -if Path.cwd().joinpath('token').exists(): - with open(Path.cwd().joinpath('token'), 'r') as token_file: - github_auth = BearerAuth(token_file.read()) - print("Using token file for authentication", flush=True) - magisk_ver = sys.argv[1] -download_dir = Path.cwd().parent / \ - "download" if sys.argv[2] == "" else Path(sys.argv[2]) +download_dir = (Path.cwd().parent / "download" if sys.argv[2] == "" else Path(sys.argv[2])) tempScript = sys.argv[3] download_files = {} -cdn_hosts=["cdn.jsdelivr.net", "fastly.jsdelivr.net", "testingcf.jsdelivr.net", "gcore.jsdelivr.net"] -print( - f"Generating Magisk download link: release type={magisk_ver}", flush=True) +cdn_hosts = [ + "cdn.jsdelivr.net", + "fastly.jsdelivr.net", + "testingcf.jsdelivr.net", + "gcore.jsdelivr.net", +] +print(f"Generating Magisk download link: release type={magisk_ver}", flush=True) magisk_link = None if not magisk_ver: magisk_ver = "stable" -if magisk_ver == "stable" or magisk_ver == "beta" or magisk_ver == "canary" or magisk_ver == "debug": +if ( + magisk_ver == "stable" + or magisk_ver == "beta" + or magisk_ver == "canary" + or magisk_ver == "debug" +): try: - magisk_link = json.loads(requests.get( - f"https://topjohnwu.github.io/magisk-files/{magisk_ver}.json").content)['magisk']['link'] + magisk_link = json.loads(requests.get(f"https://topjohnwu.github.io/magisk-files/{magisk_ver}.json").content)["magisk"]["link"] download_files[f"magisk-{magisk_ver}.zip"] = magisk_link except Exception: print("Failed to fetch from GitHub API, fallbacking to jsdelivr...") for host in cdn_hosts: try: - magisk_link = json.loads(requests.get( - f"https://{host}/gh/topjohnwu/magisk-files@master/{magisk_ver}.json").content)['magisk']['link'] + magisk_link = json.loads(requests.get(f"https://{host}/gh/topjohnwu/magisk-files@master/{magisk_ver}.json").content)["magisk"]["link"] download_files[f"magisk-{magisk_ver}.zip"] = magisk_link break except Exception: @@ -73,30 +60,11 @@ if magisk_ver == "stable" or magisk_ver == "beta" or magisk_ver == "canary" or m if magisk_link is None: print("Failed to fetch Magisk download link", flush=True) exit(1) -res = requests.get( - f"https://api.github.com/repos/LSPosed/WSA-Addon/releases/latest", auth=github_auth) -json_data = json.loads(res.content) -headers = res.headers -x_ratelimit_remaining = headers["x-ratelimit-remaining"] -if res.status_code == 200: - assets = json_data["assets"] - for asset in assets: - if re.match(f'cust.img$', asset["name"]): - download_files[asset["name"]] = asset["browser_download_url"] - break -elif res.status_code == 403 and x_ratelimit_remaining == '0': - message = json_data["message"] - print(f"Github API Error: {message}", flush=True) - ratelimit_reset = headers["x-ratelimit-reset"] - ratelimit_reset = datetime.fromtimestamp(int(ratelimit_reset)) - print( - f"The current rate limit window resets in {ratelimit_reset}", flush=True) - exit(1) -with open(download_dir/tempScript, 'a') as f: +download_files["cust.img"] = "https://github.com/LSPosed/WSA-Addon/releases/latest/download/cust.img" +with open(download_dir / tempScript, "a") as f: for key, value in download_files.items(): - print( - f"download link: {value}\npath: {download_dir / key}\n", flush=True) - f.writelines(value + '\n') - f.writelines(f' dir={download_dir}\n') - f.writelines(f' out={key}\n') + print(f"download link: {value}\npath: {download_dir / key}\n", flush=True) + f.writelines(value + "\n") + f.writelines(f" dir={download_dir}\n") + f.writelines(f" out={key}\n")