From fe1a688defd4d9308340e1e9b333755b2fb2c08a Mon Sep 17 00:00:00 2001 From: Ace Date: Mon, 25 Nov 2019 21:32:25 +0100 Subject: [PATCH] Update inkycal_icalendar.py --- Inky-Calendar/modules/inkycal_icalendar.py | 29 ++++++++++------------ 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/Inky-Calendar/modules/inkycal_icalendar.py b/Inky-Calendar/modules/inkycal_icalendar.py index 20b6c9b..81b9b50 100644 --- a/Inky-Calendar/modules/inkycal_icalendar.py +++ b/Inky-Calendar/modules/inkycal_icalendar.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- """ iCalendar (parsing) module for Inky-Calendar Project - Copyright by aceisace """ from __future__ import print_function @@ -11,10 +10,12 @@ from settings import ical_urls import arrow from ics import Calendar -print_events = True +print_events = False +style = 'DD MMM YY HH:mm' #D MMM YY HH:mm """Set timelines for filtering upcoming events""" now = arrow.now(tz=get_tz()) +beginning_of_month = now.replace(days= - now.day +1) near_future = now.replace(days= 30) further_future = now.replace(days=40) @@ -22,9 +23,9 @@ further_future = now.replace(days=40) calendars = [Calendar(fix_ical(url)) for url in ical_urls] """Filter any upcoming events from all iCalendars and add them to a list""" -upcoming_events = [] -upcoming_events += [events for ical in calendars for events in ical.events - if now <= events.end <= further_future or now <= events.begin <= near_future] +upcoming_events = [events for ical in calendars for events in ical.events + if beginning_of_month <= events.end <= further_future or + beginning_of_month <= events.begin <= near_future] """Sort events according to their beginning date""" def sort_dates(event): @@ -35,19 +36,15 @@ upcoming_events.sort(key=sort_dates) for events in upcoming_events: if events.all_day and events.duration.days > 1: events.end = events.end.replace(days=-2) - + """ The list upcoming_events should not be modified. If you need the data from this one, copy the list or the contents to another one.""" #print(upcoming_events) # Print all events. Might look a bit messy - """Print upcoming events in a more appealing way""" -if print_events == True: - style = 'DD MMM YY HH:mm' #D MMM YY HH:mm - if upcoming_events: - line_width = max(len(i.name) for i in upcoming_events) - for events in upcoming_events: - print('{0} {1} | {2} | {3} |'.format(events.name, - ' '* (line_width - len(events.name)), events.begin.format(style), - events.end.format(style)), events.all_day) - +if print_events == True and upcoming_events: + line_width = max(len(i.name) for i in upcoming_events) + for events in upcoming_events: + print('{0} {1} | {2} | {3} | All day ='.format(events.name, + ' '* (line_width - len(events.name)), events.begin.format(style), + events.end.format(style)), events.all_day)