Beispiel #1
0
    if opts.category and (not 'CATEGORIES' in component
                          or not opts.category in component['CATEGORIES']):
        return False
    return True


cals = utils.get_all_calendars(opts.url,
                               filter=caldav.comp_filter(
                                   "VCALENDAR", caldav.comp_filter("VEVENT")))

vevents = list(filter(filter_fn, filters.extract_vevents(cals)))
vevents.sort(key=utils.keyEvent)

for vevent in vevents:
    summary = vevent['SUMMARY']
    location = vevent.get('LOCATION')
    dtstart = vevent['DTSTART'].dt
    if isinstance(dtstart, datetime.datetime):
        sys.stdout.write('%12s ' % dtstart.strftime('%d %b %H:%M'))
    else:
        try:
            dtend = vevent['DTEND'].dt
        except KeyError:
            dtend = None
        sys.stdout.write('%12s ' % utils.format_daterange(dtstart, dtend))
    sys.stdout.write("%s" % summary)
    if location:
        sys.stdout.write(" @ %s" % location.replace('\n', ' / '))
    sys.stdout.write(utils.statuschar(vevent.get('STATUS')))
    sys.stdout.write("\n")
Beispiel #2
0
    if getattr(end, "date", None):
        end = end.date()
    return now >= start and now <= end


f = sys.stdout

if opts.format == "text":
    for year in sorted(travelevs.keys(), reverse=True):
        if not travelevs[year]:
            continue
        f.write("%d\n" % year)
        evs = travelevs[year]
        for ev in sorted(evs, key=evsortkey, reverse=True):
            f.write("* ")
            f.write(utils.format_daterange(ev.start, ev.end))
            f.write(": %s" % ev.summary)
            if ev.location:
                f.write(" @ %s" % ev.location)
            f.write(utils.statuschar(ev.status))
            f.write("\n")
elif opts.format == "html":
    env = jinja2.Environment(loader=jinja2.FileSystemLoader("templates"))
    template = env.get_template(opts.html_template)

    def status_char(status):
        if status == "TENTATIVE":
            return "?"
        if status == "CONFIRMED":
            return "."
        return ""
Beispiel #3
0
vevents.sort(cmp=utils.cmpEvent)

for vevent in vevents:
    if not (day == utils.asdate(vevent['DTSTART'].dt) or
       (day >= utils.asdate(vevent['DTSTART'].dt) and
        day <= utils.asdate(vevent['DTEND'].dt))):
        continue
    summary = vevent['SUMMARY']
    location = vevent.get('LOCATION')
    dtstart = vevent['DTSTART'].dt
    if isinstance(dtstart, datetime.datetime):
        sys.stdout.write('%s' % dtstart.strftime('%H:%M'))
        try:
            dtend = vevent['DTEND'].dt
        except KeyError:
            dtend = None
        else:
            sys.stdout.write('-%s' % dtend.strftime('%H:%M'))
        sys.stdout.write(' ')
    else:
        try:
            dtend = vevent['DTEND'].dt
        except KeyError:
            dtend = None
        sys.stdout.write('%s ' % utils.format_daterange(dtstart, dtend))
    sys.stdout.write("%s" % summary)
    if location:
        sys.stdout.write(" @ %s" % location.replace('\n', ' / '))
    sys.stdout.write(utils.statuschar(vevent.get('STATUS')))
    sys.stdout.write("\n")
Beispiel #4
0
    end = ev.end
    if getattr(end, "date", None):
        end = end.date()
    return (now >= start and now <= end)

f = sys.stdout

if opts.format == "text":
    for year in sorted(list(travelevs.keys()), reverse=True):
        if not travelevs[year]:
            continue
        f.write("%d\n" % year)
        evs = travelevs[year]
        for ev in sorted(evs, key=evsortkey, reverse=True):
            f.write("* ")
            f.write(utils.format_daterange(ev.start, ev.end))
            f.write(": %s" % ev.summary)
            if ev.location:
                f.write(" @ %s" % ev.location)
            f.write(utils.statuschar(ev.status))
            f.write("\n")
elif opts.format == "html":
    env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'))
    template = env.get_template(opts.html_template)
    def status_char(status):
        if status == "TENTATIVE":
            return "?"
        if status == "CONFIRMED":
            return "."
        return ""
    for year in travelevs: