Merge pull request #323 from facetoe/google_calendar_fix
Fix dateTime bug identified in #322
This commit is contained in:
commit
754a5d4d83
@ -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):
|
||||||
|
Loading…
Reference in New Issue
Block a user