From 4ba5053ada926f62d0e6894437dde71a9e0453a5 Mon Sep 17 00:00:00 2001 From: wcbing Date: Thu, 26 Jun 2025 10:40:31 +0800 Subject: [PATCH] feat: Support for Git hosting sites like Github --- get-github-releases.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/get-github-releases.py b/get-github-releases.py index e2f887a..98a4e4c 100755 --- a/get-github-releases.py +++ b/get-github-releases.py @@ -17,7 +17,7 @@ def read_args(): parser = argparse.ArgumentParser() parser.add_argument("-d", "--data", default="data", help="从 读取仓库配置") parser.add_argument( - "-p", "--proxy", default="", help="Github 代理, 必须以 / 结尾" + "-p", "--proxy", default="", help="Github 代理" ) parser.add_argument( "-t", "--thread", type=int, default=5, help="并发下载线程数量,默认为 5" @@ -36,11 +36,13 @@ if __name__ == "__main__": tasks = [] with ThreadPoolExecutor(max_workers=CONFIG["thread"]) as executor: for name, repo in github_info_list.items(): - release_url = ( - f'{CONFIG["proxy"]}https://github.com/{repo["repo"]}/releases' - ) + if "site" in repo: + repo_url = os.path.join(repo["site"], repo['repo']) + else: + # 默认认为是 GitHub 仓库地址,同时使用代理 + repo_url = os.path.join(CONFIG["proxy"], "https://github.com", repo["repo"]) # get latest releases tag 获取最新版本标签 - location = requests.head(release_url + "/latest").headers.get("Location", "") + location = requests.head(repo_url + "/releases/latest").headers.get("Location", "") match = re.search(r".*releases/tag/(.*)", location) if not match: continue @@ -52,7 +54,7 @@ if __name__ == "__main__": release_file = file_name.format( releases_tag=releases_tag, version=version ) - file_url = f"{release_url}/download/{releases_tag}/{release_file}" + file_url = f"{repo_url}/releases/download/{releases_tag}/{release_file}" # 提交任务到线程池 tasks.append( executor.submit(check_download, name, version, file_url, arch)