From f0a3dc7cd789107cee78e674fe12dc81ca578c00 Mon Sep 17 00:00:00 2001 From: Klaus-Uwe Mitterer Date: Mon, 12 Jun 2017 15:09:58 +0200 Subject: [PATCH] Add support for future events (days until) --- handler/cal.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/handler/cal.py b/handler/cal.py index 4fb6bec..5e5f5e7 100644 --- a/handler/cal.py +++ b/handler/cal.py @@ -10,12 +10,12 @@ def genday(dt): UID:%s@kumig.it DTSTAMP:%s DTSTART;VALUE=DATE:%s -SUMMARY:%s days since %s +SUMMARY:%s days %s %s END:VEVENT -''' % (ds, now, then, di, ds) +''' % (ds, now, then, di, ds, ds) -def gencal(dt, offset = None, string = None, futuredays = 14): - offset = offset or (datetime.date.today() - dt).days +def gencal(dt, string = None, futuredays = 14): + offset = (datetime.date.today() - dt).days rv = '''BEGIN:VCALENDAR VERSION:2.0 @@ -23,18 +23,17 @@ PRODID:-//Klaus-Uwe Mitterer//DaysSince//EN METHOD:PUBLISH ''' - for day in range(offset + futuredays): - rv += genday(dt + datetime.timedelta(days = day)) % ("%i%i%i%i" % (dt.year, dt.month, dt.day, day), day, "%i/%i/%i" % (dt.year, dt.month, dt.day)) + if offset < 0: + for day in range(offset * -1 + futuredays): + rv += genday(dt - datetime.timedelta(days = day)) % ("%s%i" % (dt.strftime("%Y%m%d"), day), day, "until", dt.strftime("%Y/%m/%d")) + + else: + for day in range(offset + futuredays): + rv += genday(dt + datetime.timedelta(days = day)) % ("%s%i" % (dt.strftime("%Y%m%d"), day), day, "since", dt.strftime("%Y/%m/%d")) rv += "END:VCALENDAR" return rv def cal(dt, string = None): - offset = (datetime.date.today() - dt).days - - if offset < 0: - return "" - - else: - return iter([gencal(dt, string).replace("\n", "\r\n").encode()]) + return iter([gencal(dt, string).replace("\n", "\r\n").encode()])