fix: hdiffpatch download

This commit is contained in:
tretrauit 2024-04-25 21:46:03 +07:00
parent fba2063bce
commit 07f6ce6317
3 changed files with 23 additions and 11 deletions

View File

@ -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
View File

View 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()