You've already forked eink-calendar
mirror of
https://github.com/javierpena/eink-calendar.git
synced 2025-08-10 21:52:01 +02:00
Some improvements
- Allow one extra hour for calendar events - Improve resiliency if something fails when checking the weather or calendar API.
This commit is contained in:
@@ -15,24 +15,26 @@ class CalDavProvider():
|
||||
|
||||
def get_calendar(self, url, date_start, date_end):
|
||||
# print("%s %s" % (date_start, date_end))
|
||||
client = caldav.DAVClient(url=url, username=self.username, password=self.password, ssl_verify_cert=False)
|
||||
calendar = caldav.Calendar(client=client, url=url)
|
||||
returned_events = []
|
||||
|
||||
events_found = calendar.date_search(
|
||||
start=date_start, end=date_end,
|
||||
compfilter='VEVENT', expand=True)
|
||||
if events_found:
|
||||
for event in events_found:
|
||||
cal = icalendar.Calendar.from_ical(event.data)
|
||||
single_event = {}
|
||||
for event in cal.walk('vevent'):
|
||||
date_start = event.get('dtstart')
|
||||
duration = event.get('duration')
|
||||
summary = event.get('summary')
|
||||
single_event['event_start'] = date_start.dt.astimezone(self.tz)
|
||||
single_event['event_end'] = (date_start.dt + duration.dt).astimezone(self.tz)
|
||||
single_event['event_title'] = summary
|
||||
returned_events.append(single_event)
|
||||
try:
|
||||
client = caldav.DAVClient(url=url, username=self.username, password=self.password, ssl_verify_cert=False)
|
||||
calendar = caldav.Calendar(client=client, url=url)
|
||||
events_found = calendar.date_search(
|
||||
start=date_start, end=date_end,
|
||||
compfilter='VEVENT', expand=True)
|
||||
if events_found:
|
||||
for event in events_found:
|
||||
cal = icalendar.Calendar.from_ical(event.data)
|
||||
single_event = {}
|
||||
for event in cal.walk('vevent'):
|
||||
date_start = event.get('dtstart')
|
||||
duration = event.get('duration')
|
||||
summary = event.get('summary')
|
||||
single_event['event_start'] = date_start.dt.astimezone(self.tz)
|
||||
single_event['event_end'] = (date_start.dt + duration.dt).astimezone(self.tz)
|
||||
single_event['event_title'] = summary
|
||||
returned_events.append(single_event)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return returned_events
|
||||
|
Reference in New Issue
Block a user