ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/Reminder/creditcards.py
Revision: 1181
Committed: 2009-05-21T01:58:14-07:00 (16 years, 1 month ago) by douglas
Content type: text/x-python
File size: 1695 byte(s)
Log Message:
Facebook calendar!

File Contents

# Content
1 # Credit Cards
2 #
3 # Douglas Thrift
4 #
5 # $Id$
6
7 import atom
8 from datetime import date, timedelta
9 import gdata.calendar
10
11 def main(calendar, config, banks, debug):
12 reminder = gdata.calendar.Reminder(minutes = 10)
13
14 for module in config.getlist('banks'):
15 bank = banks.bank(module)
16
17 for name, number in bank.accounts():
18 due = bank.due(number)
19 today = date.today()
20
21 if due <= today:
22 continue
23
24 title = '%s Due' % name
25 query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full', '"%s"' % title)
26 query.start_min = str(today)
27 events = calendar.CalendarQuery(query).entry
28
29 if not events:
30 event = gdata.calendar.CalendarEventEntry()
31 event.title = atom.Title(text = title)
32 event.transparency = gdata.calendar.Transparency()
33 event.transparency.value = 'TRANSPARENT'
34 event.visibility = gdata.calendar.Visibility()
35 event.visibility.value = 'PRIVATE'
36
37 event.when.append(gdata.calendar.When(start_time = str(due), end_time = str(due + timedelta(1))))
38 event.when[0].reminder.append(reminder)
39 calendar.InsertEvent(event, '/calendar/feeds/default/private/full')
40 else:
41 for index, event in enumerate(filter(lambda event: event.title.text == title, events)):
42 if index == 0:
43 event.transparency.value = 'TRANSPARENT'
44 event.visibility.value = 'PRIVATE'
45 event.when[0].start_time = str(due)
46 event.when[0].end_time = str(due + timedelta(1))
47
48 if event.when[0].reminder:
49 event.when[0].reminder[0] = reminder
50 else:
51 event.when[0].reminder.append(reminder)
52
53 calendar.UpdateEvent(event.GetEditLink().href, event)
54 else:
55 calendar.DeleteEvent(event.GetEditLink().href)

Properties

Name Value
svn:keywords Id