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