Continue on 500/503 errors.

This commit is contained in:
facetoe 2016-05-21 10:39:58 +08:00
parent c8c09763c1
commit 0215bdf5f1

View File

@ -5,8 +5,9 @@ import oauth2client
import pytz import pytz
from apiclient import discovery from apiclient import discovery
from dateutil import parser from dateutil import parser
from googleapiclient.errors import HttpError
from i3pystatus import IntervalModule from i3pystatus import IntervalModule, logger
from i3pystatus.core.color import ColorRangeModule from i3pystatus.core.color import ColorRangeModule
from i3pystatus.core.util import internet, require from i3pystatus.core.util import internet, require
@ -108,17 +109,25 @@ class GoogleCalendar(IntervalModule, ColorRangeModule):
return event return event
def get_events(self): def get_events(self):
now, later = self.get_timerange() events = []
events_result = self.service.events().list( try:
calendarId='primary', now, later = self.get_timerange()
timeMin=now, events_result = self.service.events().list(
timeMax=later, calendarId='primary',
maxResults=10, timeMin=now,
singleEvents=True, timeMax=later,
orderBy='startTime', maxResults=10,
timeZone='utc' singleEvents=True,
).execute() orderBy='startTime',
return events_result.get('items', []) timeZone='utc'
).execute()
events = events_result.get('items', [])
except HttpError as e:
if e.resp.status in (500, 503):
logger.warn("GoogleCalendar received %s while retrieving events" % e.resp.status)
else:
raise
return events
def get_timerange(self): def get_timerange(self):
now = datetime.datetime.utcnow() now = datetime.datetime.utcnow()