Vobject implementation
[frenchie/icalparse.git] / parserrules.py
1 #!/usr/bin/python
2
3 # Rules for tackling facebook and google calendar - I want visibility of the
4 # organiser... not useful Google!
5
6 import vobject
7
8 def facebookOrganiser(cal):
9         '''Adds organiser details to the body of facebook calendars.'''
10
11         if cal.contents.has_key(u'prodid'):
12                 if not "Facebook" in cal.prodid.value: return cal
13
14         for event in cal.vevent_list:
15                 if not event.contents.has_key(u'organizer'): continue
16                 organizer = "Organised by: " + event.organizer.cn_param + " ("
17                 organizer += event.organizer.value.lstrip('MAILTO:') + ")\n\n"
18
19                 event.description.value = organizer + event.description.value
20
21         return cal
22
23 def whatPrivacy(cal):
24         '''Marks events public so google calendar doesn't have a sad about them.'''
25
26         for event in cal.vevent_list:
27                 if event.contents.has_key(u'class'):
28                         del event.contents[u'class']
29                         # Bit of a hack as class is a reserved word in python
30                         event.add('class').value = "PUBLIC"
31
32         return cal
33
34 def dropMSKeys(cal):
35         '''Drops microsoft keys, good for outlook, just bandwidth when not.'''
36
37         eventBlacklist = [x.lower() for x in [
38                 "X-ALT-DESC",
39                 "X-MICROSOFT-CDO-BUSYSTATUS",
40                 "X-MICROSOFT-CDO-IMPORTANCE",
41                 "X-MICROSOFT-DISALLOW-COUNTER",
42                 "X-MS-OLK-ALLOWEXTERNCHECK",
43                 "X-MS-OLK-AUTOSTARTCHECK",
44                 "X-MS-OLK-CONFTYPE",
45                 "X-MS-OLK-AUTOFILLLOCATION"
46         ]]
47
48         vcalBlacklist = [x.lower() for x in [
49         "X-CALEND",
50         "X-CALSTART",
51         "X-CLIPEND",
52         "X-CLIPSTART",
53         "X-MS-OLK-WKHRDAYS",
54         "X-MS-OLK-WKHREND",
55         "X-MS-OLK-WKHRSTART",
56         "X-OWNER",
57         "X-PRIMARY-CALENDAR",
58         "X-PUBLISHED-TTL",
59         "X-WR-CALDESC",
60         "X-WR-CALNAME",
61         "X-WR-RELCALID"
62         ]]
63
64         for event in cal.vevent_list:
65                 for blacklist in eventBlacklist:
66                         if event.contents.has_key(blacklist): del event.contents[blacklist]
67
68         for blacklist in vcalBlacklist:
69                 if cal.contents.has_key(blacklist): del cal.contents[blacklist]
70
71         return cal

UCC git Repository :: git.ucc.asn.au