7 |
|
import atom |
8 |
|
from datetime import datetime |
9 |
|
import gdata.calendar |
10 |
+ |
import gdata.service |
11 |
|
import icalendar |
12 |
|
import pytz |
13 |
|
import re |
30 |
|
content = event.decoded('description') |
31 |
|
status = event.decoded('partstat') |
32 |
|
transparency = 'OPAQUE' if status == 'ACCEPTED' else 'TRANSPARENT' |
33 |
< |
start_time = pacific.localize(event.decoded('dtstart')) |
34 |
< |
end_time = pacific.localize(event.decoded('dtend')) |
33 |
> |
start_time = event.decoded('dtstart') |
34 |
> |
end_time = event.decoded('dtend') |
35 |
> |
end_time = pacific.localize(end_time) if end_time.tzinfo is None else end_time.astimezone(pacific) |
36 |
|
where = event.decoded('location') |
37 |
+ |
eid = re.compile(r'http://www\.facebook\.com/event\.php\?eid=%s$' % re.escape(id)) |
38 |
+ |
|
39 |
+ |
if not eid.search(content): |
40 |
+ |
content += '\n\nhttp://www.facebook.com/event.php?eid=%s' % id |
41 |
|
|
42 |
|
if not entries: |
43 |
|
entry = gdata.calendar.CalendarEventEntry() |
56 |
|
entry.where.append(gdata.calendar.Where(value_string = where)) |
57 |
|
calendar.InsertEvent(entry, '/calendar/feeds/default/private/full') |
58 |
|
else: |
53 |
– |
eid = re.compile(r'http://www\.facebook\.com/event\.php\?eid=%s$' % re.escape(id)) |
54 |
– |
|
59 |
|
for index, entry in enumerate(filter(lambda entry: eid.search(entry.content.text), entries)): |
60 |
|
if index == 0: |
61 |
|
entry.title.text = title |
71 |
|
else: |
72 |
|
entry.when[0].reminder.append(reminder) |
73 |
|
|
74 |
< |
calendar.UpdateEvent(entry.GetEditLink().href, entry) |
74 |
> |
# http://code.google.com/p/gdata-python-client/issues/detail?id=268 |
75 |
> |
try: |
76 |
> |
calendar.UpdateEvent(entry.GetEditLink().href, entry) |
77 |
> |
except gdata.service.RequestError, error: |
78 |
> |
print error |
79 |
|
else: |
80 |
|
calendar.DeleteEvent(entry.GetEditLink().href) |