39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import requests
|
|
import datetime
|
|
|
|
|
|
class StickyPiston:
|
|
def __init__(self):
|
|
self.url = ""
|
|
self.version = "v0.0.1a"
|
|
self.last_version_check = datetime.datetime.utcnow()
|
|
self.up_to_date = None
|
|
|
|
def version_url(self) -> str:
|
|
sep = '/' if self.url[-1] != '/' else ''
|
|
return self.url + sep + 'piston_version'
|
|
|
|
def check_for_updates(self):
|
|
"""Checks for any updates to the StickyPiston module."""
|
|
self.last_version_check = datetime.datetime.utcnow()
|
|
|
|
resp = requests.get(self.version_url())
|
|
resp.raise_for_status()
|
|
|
|
current_version = resp.json()['version']
|
|
self.up_to_date = current_version.strip() == self.version.strip()
|
|
|
|
def up_to_date(self) -> str:
|
|
if not self.up_to_date:
|
|
self.check_for_updates()
|
|
if self.up_to_date():
|
|
return "Up to date"
|
|
return "New version available"
|
|
|
|
def update(self, force: bool = False):
|
|
if force or not self.up_to_date():
|
|
# perform the update
|
|
pass
|
|
else:
|
|
return 0
|