X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?p=gooswapper;a=blobdiff_plain;f=gooswapper.py;h=2bee57d5781b7022a2b41a2ebdba901d13dc6db4;hp=228c9413959695343ef09043e37ca433f1ebbf08;hb=ab6938025b15b1b865da166da9649962066cff38;hpb=bdd618f1985ea43ef3c22bbb2fd6f0b5585b4b87 diff --git a/gooswapper.py b/gooswapper.py index 228c941..2bee57d 100644 --- a/gooswapper.py +++ b/gooswapper.py @@ -124,6 +124,24 @@ def ex_event_changes(old,new): len(deleted))) return added, deleted, changed +def build_gcal_event_from_ex(event): + gevent={} + gevent["summary"]=event.subject + if event.is_all_day: + gevent["end"]={"date": str(event.end.astimezone(gcal_tz).date())} + gevent["start"]={"date": str(event.start.astimezone(gcal_tz).date())} + else: + gevent["end"]={"dateTime": event.end.isoformat(), + "timeZone": event.end.tzname()} + gevent["start"]={"dateTime": event.start.isoformat(), + "timeZone": event.start.tzname()} + if event.text_body.strip() != '': + gevent["description"] = event.text_body + if event.location is not None: + gevent["location"] = event.location + gevent["extendedProperties"]={"shared": {"ex_id": event.item_id}} + return gevent + def add_ex_to_gcal(ex_acct, gcal_acct,gcal_tz,events, added, @@ -131,22 +149,9 @@ def add_ex_to_gcal(ex_acct, for ev_id in added: event = get_ex_event_by_itemid(ex_acct.calendar,ev_id) if not event.is_recurring: - gevent={} - gevent["summary"]=event.subject - if event.is_all_day: - gevent["end"]={"date": str(event.end.astimezone(gcal_tz).date())} - gevent["start"]={"date": str(event.start.astimezone(gcal_tz).date())} - else: - gevent["end"]={"dateTime": event.end.isoformat(), - "timeZone": event.end.tzname()} - gevent["start"]={"dateTime": event.start.isoformat(), - "timeZone": event.start.tzname()} - if event.text_body.strip() != '': - gevent["description"] = event.text_body - if event.location is not None: - gevent["location"] = event.location - gevent["extendedProperties"]={"shared": {"ex_id": event.item_id}} - gevent=gcal_acct.events().insert(calendarId=gcal_id, body=gevent).execute() + gevent = build_gcal_event_from_ex(event) + gevent = gcal_acct.events().insert(calendarId=gcal_id, + body=gevent).execute() event.gcal_link = gevent.get("id") event.save() events[event.item_id] = events[event.item_id]._replace(changekey=event.changekey,gcal_link=event.gcal_link)