chiark / gitweb /
Split out building gcal event structure (no functional change)
[gooswapper] / gooswapper.py
index 228c9413959695343ef09043e37ca433f1ebbf08..2bee57d5781b7022a2b41a2ebdba901d13dc6db4 100644 (file)
@@ -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)