From bbcb14caa4b1878abc9890e345854bf8e0bf7362 Mon Sep 17 00:00:00 2001 From: Howard20181 <40033067+Howard20181@users.noreply.github.com> Date: Thu, 19 Jan 2023 23:17:26 +0800 Subject: [PATCH] Get MindTheGApps from Github Temporary fix for #357 --- scripts/build.sh | 2 +- scripts/generateGappsLink.py | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 7bad96e..f370a97 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -736,7 +736,7 @@ if [ "$GAPPS_BRAND" != 'none' ]; then fi echo "Umount images" -$SUDO find "$MOUNT_DIR" -exec touch -hamt 200901010000.00 {} \; +$SUDO find "$MOUNT_DIR" -exec touch -ht 200901010000.00 {} \; $SUDO umount -v "$MOUNT_DIR"/vendor $SUDO umount -v "$MOUNT_DIR"/product $SUDO umount -v "$MOUNT_DIR"/system_ext diff --git a/scripts/generateGappsLink.py b/scripts/generateGappsLink.py index 75e7e50..4ef33da 100644 --- a/scripts/generateGappsLink.py +++ b/scripts/generateGappsLink.py @@ -18,6 +18,7 @@ # Copyright (C) 2023 LSPosed Contributors # +from datetime import datetime import sys import requests @@ -55,8 +56,28 @@ if brand == "OpenGApps": elif brand == "MindTheGapps": res = requests.get( f'https://sourceforge.net/projects/wsa-mtg/rss?path=/{abi_map[arch]}&limit=100') - link = re.search(f'https://.*{release}.*{abi_map[arch]}.*\.zip/download', res.text).group().replace( - '.zip/download', '.zip').replace('sourceforge.net/projects/wsa-mtg/files', 'downloads.sourceforge.net/project/wsa-mtg') + matched = re.search(f'https://.*{release}.*{abi_map[arch]}.*\.zip/download', res.text) + if matched: + link = matched.group().replace( + '.zip/download', '.zip').replace('sourceforge.net/projects/wsa-mtg/files', 'downloads.sourceforge.net/project/wsa-mtg') + else: + print(f"Failed to fetch from SourceForge RSS, fallbacking to Github API...", flush=True) + res = requests.get(f"https://api.github.com/repos/s1204IT/MindTheGappsBuilder/releases/latest") + json_data = json.loads(res.content) + if res.status_code == 200: + assets = json_data["assets"] + for asset in assets: + if re.match(f'.*{release}.*{abi_map[arch]}.*\.zip$', asset["name"]): + link = asset["browser_download_url"] + elif res.status_code == 403: + message = json_data["message"] + print(f"Github API Error: {message}", flush=True) + headers = res.headers + headers_json = json.load(headers) + ratelimit_reset = headers_json["x-ratelimit-reset"] + ratelimit_reset = datetime.datetime.utcfromtimestamp(ratelimit_reset) + print(f"The current rate limit window resets in {ratelimit_reset}", flush=True) + exit(1) print(f"download link: {link}", flush=True)