dayssince/handler/cal.py

41 lines
903 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 since %s
END:VEVENT
''' % (ds, now, then, di, ds)
def gencal(dt, offset = None, string = None, futuredays = 14):
offset = offset or (datetime.date.today() - dt).days
rv = '''BEGIN:VCALENDAR
VERSION:2.0
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))
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()])