Merge pull request #323 from facetoe/google_calendar_fix

Fix dateTime bug identified in #322
This commit is contained in:
enkore 2016-02-18 13:59:33 +01:00
commit 754a5d4d83

View File

@ -26,6 +26,8 @@ class GoogleCalendar(IntervalModule, ColorRangeModule):
* `{kind}` type of event * `{kind}` type of event
* `{status}` eg, confirmed * `{status}` eg, confirmed
* `{summary}` essentially the title * `{summary}` essentially the title
* `{remaining_time}` - how long remaining until the event
* `{start_time}` - when this event starts
* `{htmlLink}` link to the calendar event * `{htmlLink}` link to the calendar event
@ -61,7 +63,7 @@ class GoogleCalendar(IntervalModule, ColorRangeModule):
display_event = self.get_next_event() display_event = self.get_next_event()
if display_event: if display_event:
start_time = parser.parse(display_event['start']['dateTime']) start_time = display_event['start_time']
now = datetime.datetime.now(tz=pytz.UTC) now = datetime.datetime.now(tz=pytz.UTC)
alert_time = now + datetime.timedelta(seconds=self.urgent_seconds) alert_time = now + datetime.timedelta(seconds=self.urgent_seconds)
@ -85,12 +87,21 @@ class GoogleCalendar(IntervalModule, ColorRangeModule):
def get_next_event(self): def get_next_event(self):
for event in self.get_events(): for event in self.get_events():
start_time = parser.parse(event['start']['dateTime']) # If we don't have a dateTime just make do with a date.
if 'dateTime' not in event['start']:
event['start_time'] = pytz.utc.localize(parser.parse(event['start']['date']))
else:
event['start_time'] = parser.parse(event['start']['dateTime'])
now = datetime.datetime.now(tz=pytz.UTC) now = datetime.datetime.now(tz=pytz.UTC)
if 'recurringEventId' in event and self.skip_recurring: if 'recurringEventId' in event and self.skip_recurring:
continue continue
elif start_time < now: elif event['start_time'] < now:
continue continue
# It is possible for there to be no title...
if 'summary' not in event:
event['summary'] = '(no title)'
return event return event
def get_events(self): def get_events(self):