fix: hdiffpatch download
This commit is contained in:
parent
fba2063bce
commit
07f6ce6317
@ -4,4 +4,4 @@ Launcher = launcher.Launcher
|
||||
Installer = installer.Installer
|
||||
|
||||
|
||||
__version__ = "2.2.20"
|
||||
__version__ = "2.2.22"
|
||||
|
0
worthless/cli.py
Normal file → Executable file
0
worthless/cli.py
Normal file → Executable file
@ -26,7 +26,7 @@ async def _download_file(file_url: str, file_name: str, file_path: Path | str, f
|
||||
headers = {}
|
||||
file_path = Path(file_path).joinpath(file_name)
|
||||
if overwrite:
|
||||
await file_path.unlink(missing_ok=True)
|
||||
file_path.unlink(missing_ok=True)
|
||||
if file_path.exists():
|
||||
cur_len = (file_path.stat()).st_size
|
||||
headers |= {
|
||||
@ -78,19 +78,28 @@ class HDiffPatch:
|
||||
|
||||
@staticmethod
|
||||
def _get_platform_arch():
|
||||
processor = platform.machine()
|
||||
match platform.system():
|
||||
case "Windows":
|
||||
match platform.architecture()[0]:
|
||||
case "32bit":
|
||||
match processor:
|
||||
case "i386":
|
||||
return "windows32"
|
||||
case "64bit":
|
||||
case "x86_64":
|
||||
return "windows64"
|
||||
case "arm":
|
||||
return "windows_arm32"
|
||||
case "arm64":
|
||||
return "windows_arm64"
|
||||
case "Linux":
|
||||
match platform.architecture()[0]:
|
||||
case "32bit":
|
||||
match processor:
|
||||
case "i386":
|
||||
return "linux32"
|
||||
case "64bit":
|
||||
case "x86_64":
|
||||
return "linux64"
|
||||
case "arm":
|
||||
return "linux_arm32"
|
||||
case "arm64":
|
||||
return "linux_arm64"
|
||||
case "Darwin":
|
||||
return "macos"
|
||||
|
||||
@ -140,10 +149,13 @@ class HDiffPatch:
|
||||
rsp = await session.get("https://api.github.com/repos/{}/{}/releases/latest".format(owner, repo),
|
||||
params={"Headers": "Accept: application/vnd.github.v3+json"})
|
||||
rsp.raise_for_status()
|
||||
archive_processor = self._get_platform_arch()
|
||||
for asset in (await rsp.json())["assets"]:
|
||||
if asset["name"].endswith(".zip") and "linux" not in asset["name"] and "windows" not in asset["name"] \
|
||||
and "macos" not in asset["name"] and "android" not in asset["name"]:
|
||||
return asset
|
||||
if not asset["name"].endswith(".zip"):
|
||||
continue
|
||||
if archive_processor not in asset["name"]:
|
||||
continue
|
||||
return asset
|
||||
|
||||
async def get_latest_release_url(self):
|
||||
asset = await self._get_latest_release_info()
|
||||
|
Loading…
Reference in New Issue
Block a user