Files
SoftwareManager/src/utils/network/update_checker.py
T
2026-03-21 00:27:56 +01:00

42 lines
1.3 KiB
Python

from utils.logging.logs import consoleLog
from utils.data.state import state
import requests
def get_updates():
url = f"https://api.github.com/repos/KeksPirates/SoftwareManager/releases/latest"
try:
response = requests.get(url, timeout=15)
except requests.RequestException as e:
consoleLog(f"Failed to fetch releases: {e}")
return None, None
if response.status_code != 200:
consoleLog(f"Failed to fetch releases: {response.status_code}")
return None, None
release = response.json()
latest_version = release.get("name") or release.get("tag_name")
assets = release.get("assets", [])
release_assets = []
if latest_version != state.version:
consoleLog(f"New release available: {latest_version}")
if assets:
consoleLog("Assets:")
for asset in assets:
consoleLog(f"{asset['name']}")
release_assets.append(dict(
name=asset['name'],
url=asset['browser_download_url'],
hash=asset.get('digest')
))
return release_assets, latest_version
else:
return None, None
else:
consoleLog("Already up-to-date.")
return None, None