dayssince/handler/cal.py
2017-06-12 15:09:58 +02:00

40 lines
988 B
Python

import datetime
def genday(dt):
now = datetime.date.today().strftime("%Y%m%dT000000Z")
then = dt.strftime("%Y%m%d")
di = "%i"
ds = "%s"
return '''BEGIN:VEVENT
UID:%s@kumig.it
DTSTAMP:%s
DTSTART;VALUE=DATE:%s
SUMMARY:%s days %s %s
END:VEVENT
''' % (ds, now, then, di, ds, ds)
def gencal(dt, string = None, futuredays = 14):
offset = (datetime.date.today() - dt).days
rv = '''BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Klaus-Uwe Mitterer//DaysSince//EN
METHOD:PUBLISH
'''
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):
return iter([gencal(dt, string).replace("\n", "\r\n").encode()])