Handle empty responses from fleetup

Closes #413
Closes #421
This commit is contained in:
Adarnof 2016-06-10 22:34:03 -04:00 committed by GitHub
parent 01c06cced8
commit 020a3022f1

View File

@ -21,24 +21,24 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
fmembers=json.loads(jsondata.decode())
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {row["UserId"]:{"user_id":row["UserId"],
return {row["UserId"]:{"user_id":row["UserId"],
"char_name":row["EveCharName"],
"char_id":row["EveCharId"],
"corporation":row["Corporation"]} for row in fmembers["Data"]}
except requests.exceptions.ConnectionError:
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.debug("No fleetup members retrieved.")
return {}
@staticmethod
def get_fleetup_operations():
url = "http://api.fleet-up.com/Api.svc/" + str(appkey) + "/" + str(userid) + "/" + str(apiid) + "/Operations/" + str(groupid) + ""
try:
jsondata = requests.get(url).content
foperations=json.loads(jsondata.decode())
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {row["StartString"]:{"subject":row["Subject"],
return {row["StartString"]:{"subject":row["Subject"],
"start": (datetime.strptime(row["StartString"], "%Y-%m-%d %H:%M:%S")),
"end": (datetime.strptime(row["EndString"], "%Y-%m-%d %H:%M:%S")),
"operation_id":row["OperationId"],
@ -48,6 +48,11 @@ class FleetUpManager():
"url":row["Url"],
"doctrine":row["Doctrines"],
"organizer":row["Organizer"]} for row in foperations["Data"]}
except requests.exceptions.ConnectionError:
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.debug("No fleetup operations retrieved.")
return {}
@staticmethod
def get_fleetup_timers():
@ -55,10 +60,7 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
ftimers=json.loads(jsondata.decode())
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {row["ExpiresString"]:{"solarsystem":row["SolarSystem"],
return {row["ExpiresString"]:{"solarsystem":row["SolarSystem"],
"planet":row["Planet"],
"moon":row["Moon"],
"owner":row["Owner"],
@ -66,6 +68,11 @@ class FleetUpManager():
"timer_type":row["TimerType"],
"expires": (datetime.strptime(row["ExpiresString"], "%Y-%m-%d %H:%M:%S")),
"notes":row["Notes"]} for row in ftimers["Data"]}
except requests.exceptions.ConnectionError:
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.debug("No fleetup timers retrieved.")
return {}
@staticmethod
def get_fleetup_doctrines():
@ -73,10 +80,12 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
fdoctrines=json.loads(jsondata.decode())
return {"fleetup_doctrines":fdoctrines["Data"]}
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {"fleetup_doctrines":fdoctrines["Data"]}
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.debug("No fleetup doctrines retrieved.")
return {"fleetup_doctrines":[]}
@staticmethod
def get_fleetup_doctrine(doctrinenumber):
@ -84,10 +93,12 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
fdoctrine=json.loads(jsondata.decode())
return {"fitting_doctrine":fdoctrine}
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {"fitting_doctrine":fdoctrine}
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.warn("Fleetup doctrine number %s not found" % doctrinenumber)
return {"fitting_doctrine":{}}
@staticmethod
def get_fleetup_fittings():
@ -95,10 +106,7 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
ffittings=json.loads(jsondata.decode())
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {row["FittingId"]:{"fitting_id":row["FittingId"],
return {row["FittingId"]:{"fitting_id":row["FittingId"],
"name":row["Name"],
"icon_id":row["EveTypeId"],
"hull":row["HullType"],
@ -107,6 +115,11 @@ class FleetUpManager():
"faction":row["Faction"],
"categories":row["Categories"],
"last_update":(datetime.strptime(row["LastUpdatedString"], "%Y-%m-%d %H:%M:%S"))} for row in ffittings["Data"]}
except requests.exceptions.ConnectionError:
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.debug("No fleetup fittings retrieved.")
return {}
@staticmethod
def get_fleetup_fitting(fittingnumber):
@ -114,10 +127,12 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
ffitting=json.loads(jsondata.decode())
return {"fitting_data":ffitting["Data"]}
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {"fitting_data":ffitting["Data"]}
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
except (ValueError, UnicodeDecodeError):
logger.warn("Fleetup fitting number %s not found" % fittingnumber)
return {"fitting_data":{}}
@staticmethod
def get_fleetup_doctrineid(fittingnumber):
@ -125,10 +140,12 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
fdoctrineid=json.loads(jsondata.decode())
return fdoctrineid['Data']['Doctrines'][0]['DoctrineId']
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return fdoctrineid['Data']['Doctrines'][0]['DoctrineId']
except (ValueError, UnicodeDecodeError):
logger.warn("Fleetup doctrine number not found for fitting number %s" % fittingnumber)
return None
@staticmethod
def get_fleetup_fitting_eft(fittingnumber):
@ -136,7 +153,9 @@ class FleetUpManager():
try:
jsondata = requests.get(url).content
ffittingeft=json.loads(jsondata.decode())
return {"fitting_eft":ffittingeft["Data"]["FittingData"]}
except requests.exceptions.ConnectionError:
return HttpResponse("Can't connect to Fleet-Up API, is it offline?!")
return {"fitting_eft":ffittingeft["Data"]["FittingData"]}
except (ValueError, UnicodeDecodeError):
logger.warn("Fleetup fitting eft not found for fitting number %s" % fittingnumber)
return {"fitting_eft":{}}