import requests, json # API request handler and data access class WorldState(): def __init__(self): self.client = requests.Session() self.ws = {} self.get_ws() def get_ws(self): try: self.ws = json.loads(self.client.get('https://api.warframestat.us/pc?language=en').text) except requests.exceptions.ConnectionError: return False # aribtrary mapping, some skipped, some not-standard anyway # better way is probably to do setattr in a loop, but then need to # change code and handle baro. # not willing to change it on the off chance much of this is replaced if # content API becomes useful and names change again self.fissures = self.ws.get('fissures') self.invasions = self.ws.get('invasions') self.sorties = self.ws.get('sortie') self.archon_hunt = self.ws.get('archonHunt') self.arbitration = self.ws.get('arbitration') self.alerts = self.ws.get('alerts') self.baro_items = self.ws.get('voidTrader').get('inventory') self.nightwave = self.ws.get('nightwave') self.events = self.ws.get('events') self.news = self.ws.get('news') return True