70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
import requests
|
|
import json
|
|
|
|
# Proof of concept
|
|
|
|
|
|
class Version:
|
|
def __init__(self, data:dict):
|
|
self.version:str = data['version']
|
|
self.version_int:int = int(self.version.replace(".", ""))
|
|
self.date:str = data['date']
|
|
|
|
|
|
class Release:
|
|
def __init__(self, data:dict):
|
|
self.name = data['name']
|
|
self.tag_name = data['tag_name']
|
|
self.description = data['description']
|
|
self.created_at = data['created_at']
|
|
self.released_at = data['released_at']
|
|
self.upcoming_release = data['upcoming_release']
|
|
self.version_int = int(self.tag_name.replace(".", ""))
|
|
self.zip_file_url = data['assets']['sources']
|
|
self.__proceed()
|
|
|
|
def __proceed(self):
|
|
for assest in self.zip_file_url:
|
|
if assest['format'] == 'zip':
|
|
self.zip_file_url = assest['url']
|
|
break
|
|
|
|
|
|
def read_version():
|
|
with open(file=".version.json") as file:
|
|
version = Version(json.load(file))
|
|
return version
|
|
|
|
|
|
def install():
|
|
pass
|
|
|
|
|
|
def check_for_update():
|
|
version_current = read_version()
|
|
request = "https://gitlab.com/api/v4/projects/52637155/releases"
|
|
response = requests.get(url=request, timeout=1)
|
|
if not response.ok: return
|
|
|
|
# Get the latest release
|
|
releases_json = json.loads(response.text)
|
|
# index version
|
|
latest_release = [0, 0]
|
|
for release_json in releases_json:
|
|
release = Release(release_json)
|
|
if release.version_int > version_current.version_int:
|
|
latest_release[0] = releases_json.index(release_json)
|
|
latest_release[1] = release.version_int
|
|
|
|
if latest_release == [0, 0]: return
|
|
release = Release(releases_json[latest_release[0]])
|
|
print(f"v{version_current.version} -> v{release.tag_name}")
|
|
|
|
if release.version_int > version_current.version_int:
|
|
# Update
|
|
print("Update")
|
|
print(release.zip_file_url)
|
|
|
|
|
|
check_for_update()
|