From 97c6f8f9bb2c3ddb9970b55389895a9ea432de2f Mon Sep 17 00:00:00 2001 From: Aaron Static Date: Thu, 1 Jul 2010 21:28:15 +1000 Subject: [PATCH] Op Timer API: better error handling and message when no ops are scheduled --- api/handlers.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/api/handlers.py b/api/handlers.py index d10f74f..5d60cec 100755 --- a/api/handlers.py +++ b/api/handlers.py @@ -125,11 +125,21 @@ class OpTimerHandler(BaseHandler): params = {'userID':obj.id,'apiKey':obj.api_key,'characterID':FULL_API_CHARACTER_ID} cached_doc = CachedDocument.objects.api_query('/char/UpcomingCalendarEvents.xml.aspx', params, exceptions=False) - + print cached_doc.body dom = minidom.parseString(cached_doc.body.encode('utf-8')) enode = dom.getElementsByTagName('error') if enode: - return {'error':True} + return {'ops':[{ + 'startsIn': -1, + 'eventID': 0, + 'ownerName': '', + 'eventDate': '', + 'eventTitle': '
The EVE API is currently down
', + 'duration': 0, + 'isImportant': 0, + 'eventText': 'Fuck CCP tbqh imho srsly', + 'endsIn':-1 + }]} events = [] events_node_children = dom.getElementsByTagName('rowset')[0].childNodes @@ -162,6 +172,18 @@ class OpTimerHandler(BaseHandler): 'endsIn':endsIn } events.append(event) - - return {'ops':events} + if len(events) == 0: + return {'ops':[{ + 'startsIn': -1, + 'eventID': 0, + 'ownerName': '', + 'eventDate': '', + 'eventTitle': '
No ops are currently scheduled
', + 'duration': 0, + 'isImportant': 0, + 'eventText': 'Add ops using EVE-Gate or the in-game calendar', + 'endsIn':-1 + }]} + else: + return {'ops':events}