mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-04 01:49:42 +02:00
42 lines
1.3 KiB
Python
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
|