# HG changeset patch # User Paul Boddie # Date 1423155587 -3600 # Node ID a382180a12b554a3deb393ac9222c4c691ca88b3 # Parent 4146c5ee2f4d22861d49528f5db8b7dc126146ac Handle cancellations and only record accepted events. diff -r 4146c5ee2f4d -r a382180a12b5 tools/make_freebusy.py --- a/tools/make_freebusy.py Thu Feb 05 17:22:11 2015 +0100 +++ b/tools/make_freebusy.py Thu Feb 05 17:59:47 2015 +0100 @@ -1,6 +1,6 @@ #!/usr/bin/env python -from imiptools.data import get_utc_datetime, get_value, parse_object +from imiptools.data import get_utc_datetime, get_value, get_value_map, parse_object from imiptools.dates import format_datetime from imip_store import FileStore, FilePublisher import sys @@ -14,10 +14,13 @@ s = FileStore() p = FilePublisher() -l = s.get_events(user) +events = set(s.get_events(user)) +cancelled = s.get_cancellations(user) + +events.difference_update(cancelled) objs = [] -for i in l: +for i in events: print >>sys.stderr, i objs.append(parse_object(s.get_event(user, i), "utf-8")) @@ -26,10 +29,15 @@ if not obj: continue details, details_attr = obj.values()[0] - fb.append((format_datetime(get_utc_datetime(details, "DTSTART")), - format_datetime(get_utc_datetime(details, "DTEND")), - get_value(details, "UID"), - get_value(details, "TRANSP"))) + + for attendee, attendee_attr in get_value_map(details, "ATTENDEE").items(): + if attendee == user: + if attendee_attr.get("PARTSTAT") != "DECLINED": + fb.append((format_datetime(get_utc_datetime(details, "DTSTART")), + format_datetime(get_utc_datetime(details, "DTEND")), + get_value(details, "UID"), + get_value(details, "TRANSP"))) + break fb.sort()