From 948573cb59b7bb86c8075f1a2d721ea49f171942 Mon Sep 17 00:00:00 2001 From: Ace Date: Sun, 22 Nov 2020 13:27:27 +0100 Subject: [PATCH] Fixed #141 list index out of range If the number of events exceeded the number of lines allocated for events, a *list index out of range* exception was thrown. This has been fixed now by providing an additional check. --- inkycal/modules/inkycal_calendar.py | 40 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/inkycal/modules/inkycal_calendar.py b/inkycal/modules/inkycal_calendar.py index c3c1858..e05b3ca 100644 --- a/inkycal/modules/inkycal_calendar.py +++ b/inkycal/modules/inkycal_calendar.py @@ -297,28 +297,30 @@ class Calendar(inkycal_module): cursor = 0 for event in upcoming_events: - name = event['title'] - date = event['begin'].format(self.date_format, locale=lang) - time = event['begin'].format(self.time_format, locale=lang) + if cursor < len(event_lines): + name = event['title'] + date = event['begin'].format(self.date_format, locale=lang) + time = event['begin'].format(self.time_format, locale=lang) + #logger.debug(f"name:{name} date:{date} time:{time}") - if now < event['end']: - write(im_colour, event_lines[cursor], (date_width, line_height), - date, font=self.font, alignment = 'left') + if now < event['end']: + write(im_colour, event_lines[cursor], (date_width, line_height), + date, font=self.font, alignment = 'left') - # Check if event is all day - if parser.all_day(event) == True: - write(im_black, (date_width, event_lines[cursor][1]), - (event_width_l, line_height), name, font=self.font, - alignment = 'left') - else: - write(im_black, (date_width, event_lines[cursor][1]), - (time_width, line_height), time, font=self.font, - alignment = 'left') + # Check if event is all day + if parser.all_day(event) == True: + write(im_black, (date_width, event_lines[cursor][1]), + (event_width_l, line_height), name, font=self.font, + alignment = 'left') + else: + write(im_black, (date_width, event_lines[cursor][1]), + (time_width, line_height), time, font=self.font, + alignment = 'left') - write(im_black, (date_width+time_width,event_lines[cursor][1]), - (event_width_s, line_height), name, font=self.font, - alignment = 'left') - cursor += 1 + write(im_black, (date_width+time_width,event_lines[cursor][1]), + (event_width_s, line_height), name, font=self.font, + alignment = 'left') + cursor += 1 else: symbol = '- ' while self.font.getsize(symbol)[0] < im_width*0.9: