wf-worldstate/api.py
2023-08-03 13:37:46 +05:00

33 lines
1.2 KiB
Python

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