X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=parserrules.py;fp=parserrules.py;h=cf60f984f6695d3ef398b7b4154bd37306c786e0;hb=4cd352c4a6906d90e171e36d3027e803009e4af6;hp=973aa458a1da4ea3f655532e73be1ea1e42ea770;hpb=3e73d0a5a2a847bde89d362aa2a111a16759ae6c;p=frenchie%2Ficalparse.git diff --git a/parserrules.py b/parserrules.py index 973aa45..cf60f98 100644 --- a/parserrules.py +++ b/parserrules.py @@ -51,7 +51,9 @@ def whatPrivacy(cal): for event in cal.vevent_list: if event.contents.has_key(u'class'): - getattr(event, 'class').value = "PUBLIC" + # Bit of a hack as class is a reserved word in python + del event.contents[u'class'] + event.add('class').value = "PUBLIC" return cal @@ -160,3 +162,20 @@ def unwantedParams(cal): return cal +def exDate(cal): + '''Changes multi-EXDATE into singles (apple can't obey even simple specs)''' + + for event in cal.vevent_list: + if not event.contents.has_key(u'exdate'): continue + dates = event.exdate.value + try: tzid = event.exdate.tzid_param + except AttributeError: tzid = '' + + del event.contents[u'exdate'] + + for date in dates: + entry = event.add(u'exdate') + entry.value = [date] + if tzid: entry.tzid_param = tzid + + return cal