✨ Able to retrieve latest release version information from GitHub.

This commit is contained in:
Robert Honz
2024-03-27 06:49:20 +01:00
parent ef466a0e44
commit 7789bf9f16
2 changed files with 55 additions and 6 deletions
+47 -6
View File
@@ -2,11 +2,13 @@
import importlib.metadata
import sys
from pathlib import Path
from urllib.parse import urlparse
import requests
import toml
from tidal_dl_ng.constants import REQUESTS_TIMEOUT_SEC
from tidal_dl_ng.model.meta import ReleaseLatest
def metadata_project() -> dict:
@@ -42,13 +44,42 @@ def version_app() -> str:
return version
def latest_version_available():
response = requests.get(
"https://api.github.com/repos/v2ray/v2ray-core/releases/latest", timeout=REQUESTS_TIMEOUT_SEC
)
def repository_url() -> str:
metadata: dict = metadata_project()
url_repo: str = metadata["tool"]["poetry"]["repository"]
a = response.json()["name"]
print(a)
return url_repo
def repository_path() -> str:
url_repo: str = repository_url()
url_path: str = urlparse(url_repo).path
return url_path
def latest_version_information() -> ReleaseLatest:
release_info: ReleaseLatest
repo_path: str = repository_path()
try:
response = requests.get(
f"https://api.github.com/repos{repo_path}/releases/latest", timeout=REQUESTS_TIMEOUT_SEC
)
release_info: str = response.json()
release_info = ReleaseLatest(
version=release_info["tag_name"], url=release_info["html_url"], release_info=release_info["body"]
)
except:
url: str = repository_url()
release_info = ReleaseLatest(
version="v0.0.0",
url=url,
release_info=f"Something went wrong calling {url}. Check your internet connection.",
)
return release_info
def name_package() -> str:
@@ -85,3 +116,13 @@ def name_app() -> str:
__name_display__ = name_app()
__version__ = version_app()
def update_available() -> (bool, ReleaseLatest):
latest_info: ReleaseLatest = latest_version_information()
result: bool = False
if "v" + __version__ != latest_info.version:
result = True
return result, latest_info
+8
View File
@@ -0,0 +1,8 @@
from dataclasses import dataclass
@dataclass
class ReleaseLatest:
version: str
url: str
release_info: str