Spaces:
Running
Running
import os | |
import sys | |
import json | |
import requests | |
now_dir = os.getcwd() | |
sys.path.append(now_dir) | |
config_file = os.path.join(now_dir, "assets", "config.json") | |
def load_local_version(): | |
try: | |
with open(config_file, "r", encoding="utf8") as file: | |
config = json.load(file) | |
return config["version"] | |
except (FileNotFoundError, json.JSONDecodeError) as error: | |
print(f"Error loading local version: {error}") | |
return None | |
def obtain_tag_name(): | |
url = "https://api.github.com/repos/IAHispano/Applio/releases/latest" | |
session = requests.Session() | |
try: | |
response = session.get(url) | |
response.raise_for_status() | |
data = response.json() | |
return data.get("tag_name") | |
except requests.exceptions.RequestException as error: | |
print(f"Error obtaining online version: {error}") | |
return None | |
def compare_version(): | |
local_version = load_local_version() | |
if not local_version: | |
return "Local version could not be determined." | |
online_version = obtain_tag_name() | |
if not online_version: | |
return "Online version could not be determined. Make sure you have an internet connection." | |
elements_online_version = list(map(int, online_version.split("."))) | |
elements_local_version = list(map(int, local_version.split("."))) | |
for online, local in zip(elements_online_version, elements_local_version): | |
if local < online: | |
return f"Your local version {local_version} is older than the latest version {online_version}." | |
if len(elements_online_version) > len(elements_local_version): | |
return f"Your local version {local_version} is older than the latest version {online_version}." | |
return f"Your local version {local_version} is the latest version." | |