mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 06:32:53 +01:00
feat: auto update
This commit is contained in:
1 parent
80c58be3be
commit
c063059c19
10 files changed
+98
-27
No files matched your search
+11
-9
@@ -9,28 +9,30 @@ from dzgui.const.endpoints import GITHUB_RELEASES, CODEBERG_RELEASES
|
||||
logger = logging.getLogger(APP_NAME)
|
||||
|
||||
|
||||
def get_latest_release() -> str | None:
|
||||
def get_latest_release() -> tuple[str, str] | tuple[None, None]:
|
||||
tag = None
|
||||
url = None
|
||||
# TODO: check order; github often has gateway errors
|
||||
for url in [GITHUB_RELEASES, CODEBERG_RELEASES]:
|
||||
try:
|
||||
res = requests.get(url, timeout=REQUEST_TIMEOUT)
|
||||
if res.status_code == 200:
|
||||
tag = res.json()["tag_name"]
|
||||
tag = str(res.json()["tag_name"])
|
||||
url = str(res.json()["assets"][0]["browser_download_url"])
|
||||
break
|
||||
except Exception as e:
|
||||
logger.critical(e)
|
||||
continue
|
||||
return tag
|
||||
return tag, url
|
||||
|
||||
|
||||
def check_updates(version: str) -> bool:
|
||||
def check_updates(version: str) -> str | None:
|
||||
try:
|
||||
latest = get_latest_release()
|
||||
latest, url = get_latest_release()
|
||||
if latest is None:
|
||||
return False
|
||||
return None
|
||||
if Version(version) >= Version(latest):
|
||||
return False
|
||||
return True
|
||||
return None
|
||||
return url
|
||||
except Exception:
|
||||
return False
|
||||
return None
|
||||
Reference in new issue
Block a user