summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tidal_dl_ng/__init__.py53
-rw-r--r--tidal_dl_ng/model/meta.py8
2 files changed, 55 insertions, 6 deletions
diff --git a/tidal_dl_ng/__init__.py b/tidal_dl_ng/__init__.py
index 8669c23..35c8515 100644
--- a/tidal_dl_ng/__init__.py
+++ b/tidal_dl_ng/__init__.py
@@ -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"]
+
+ 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()
- a = response.json()["name"]
- print(a)
+ 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
diff --git a/tidal_dl_ng/model/meta.py b/tidal_dl_ng/model/meta.py
new file mode 100644
index 0000000..a18c60b
--- /dev/null
+++ b/tidal_dl_ng/model/meta.py
@@ -0,0 +1,8 @@
+from dataclasses import dataclass
+
+
+@dataclass
+class ReleaseLatest:
+ version: str
+ url: str
+ release_info: str