mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 08:39:59 +08:00
@@ -0,0 +1,63 @@
|
||||
from aiocache import cached
|
||||
|
||||
from ..http_utils import AsyncHttpx
|
||||
from .consts import (
|
||||
ARCHIVE_URL_FORMAT,
|
||||
RAW_CONTENT_FORMAT,
|
||||
RELEASE_ASSETS_FORMAT,
|
||||
RELEASE_SOURCE_FORMAT,
|
||||
)
|
||||
|
||||
|
||||
async def __get_fastest_format(formats: dict[str, str]) -> str:
|
||||
sorted_urls = await AsyncHttpx.get_fastest_mirror(list(formats.keys()))
|
||||
if not sorted_urls:
|
||||
raise Exception("无法获取任意GitHub资源加速地址,请检查网络")
|
||||
return formats[sorted_urls[0]]
|
||||
|
||||
|
||||
@cached()
|
||||
async def get_fastest_raw_format() -> str:
|
||||
"""获取最快的raw下载地址格式"""
|
||||
formats: dict[str, str] = {
|
||||
"https://raw.githubusercontent.com/": RAW_CONTENT_FORMAT,
|
||||
"https://ghproxy.cc/": f"https://ghproxy.cc/{RAW_CONTENT_FORMAT}",
|
||||
"https://mirror.ghproxy.com/": f"https://mirror.ghproxy.com/{RAW_CONTENT_FORMAT}",
|
||||
"https://gh-proxy.com/": f"https://gh-proxy.com/{RAW_CONTENT_FORMAT}",
|
||||
"https://cdn.jsdelivr.net/": "https://cdn.jsdelivr.net/gh/{owner}/{repo}@{branch}/{path}",
|
||||
}
|
||||
return await __get_fastest_format(formats)
|
||||
|
||||
|
||||
@cached()
|
||||
async def get_fastest_archive_format() -> str:
|
||||
"""获取最快的归档下载地址格式"""
|
||||
formats: dict[str, str] = {
|
||||
"https://github.com/": ARCHIVE_URL_FORMAT,
|
||||
"https://ghproxy.cc/": f"https://ghproxy.cc/{ARCHIVE_URL_FORMAT}",
|
||||
"https://mirror.ghproxy.com/": f"https://mirror.ghproxy.com/{ARCHIVE_URL_FORMAT}",
|
||||
"https://gh-proxy.com/": f"https://gh-proxy.com/{ARCHIVE_URL_FORMAT}",
|
||||
}
|
||||
return await __get_fastest_format(formats)
|
||||
|
||||
|
||||
@cached()
|
||||
async def get_fastest_release_format() -> str:
|
||||
"""获取最快的发行版资源下载地址格式"""
|
||||
formats: dict[str, str] = {
|
||||
"https://objects.githubusercontent.com/": RELEASE_ASSETS_FORMAT,
|
||||
"https://ghproxy.cc/": f"https://ghproxy.cc/{RELEASE_ASSETS_FORMAT}",
|
||||
"https://mirror.ghproxy.com/": f"https://mirror.ghproxy.com/{RELEASE_ASSETS_FORMAT}",
|
||||
"https://gh-proxy.com/": f"https://gh-proxy.com/{RELEASE_ASSETS_FORMAT}",
|
||||
}
|
||||
return await __get_fastest_format(formats)
|
||||
|
||||
|
||||
@cached()
|
||||
async def get_fastest_release_source_format() -> str:
|
||||
"""获取最快的发行版源码下载地址格式"""
|
||||
formats: dict[str, str] = {
|
||||
"https://codeload.github.com/": RELEASE_SOURCE_FORMAT,
|
||||
"https://p.102333.xyz/": f"https://p.102333.xyz/{RELEASE_SOURCE_FORMAT}",
|
||||
}
|
||||
return await __get_fastest_format(formats)
|
||||
Reference in New Issue
Block a user