PyPiston/StickyPiston/StickyPiston.py
2023-02-11 16:19:12 -06:00

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