diff --git a/app-pda/libopensync-plugin-google-calendar/files/recurrent_events.patch b/app-pda/libopensync-plugin-google-calendar/files/recurrent_events.patch deleted file mode 100644 --- a/app-pda/libopensync-plugin-google-calendar/files/recurrent_events.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- libopensync-plugin-google-calendar-0.22/src/google-cal-helper.py 2007-03-27 12:18:21.000000000 -0400 -+++ libopensync-plugin-google-calendar-0.22-r1/src/google-cal-helper.py 2007-11-30 20:14:20.000000000 -0500 -@@ -138,6 +138,41 @@ - sys.stderr.write("xs to osync: %s => %s\n" % (s, r)) - return r - -+GDEND_RE = re.compile("DTEND;[^:]*:(\S+)") -+def gdRecurToEnd(recur): -+ m = GDEND_RE.search(recur) -+ if m is None: -+ raise DateConversionError("failed to find end in \"%s\"" % recur) -+ start = m.group(1) -+ year = start[0:4] -+ month = start[4:6] -+ day = start[6:8] -+ hour = start[9:11] -+ min = start[11:13] -+ sec = start[13:15] -+ return "%s-%2s-%2sT%2s:%2s:%2s" % (year, month, day, hour, min, sec) -+ -+GDSTART_RE = re.compile("DTSTART;[^:]*:(\S+)") -+def gdRecurToStart(recur): -+ m = GDSTART_RE.search(recur) -+ if m is None: -+ raise DateConversionError("failed to find start in \"%s\"" % recur) -+ start = m.group(1) -+ year = start[0:4] -+ month = start[4:6] -+ day = start[6:8] -+ hour = start[9:11] -+ min = start[11:13] -+ sec = start[13:15] -+ return "%s-%2s-%2sT%2s:%2s:%2s" % (year, month, day, hour, min, sec) -+ -+GDRECUR_RE = re.compile("RRULE:(\S+)") -+def gdRecurToORecur(recur): -+ m = GDRECUR_RE.search(recur) -+ if m is None: -+ raise DateConversionError("failed to find rule in \"%s\"" % recur) -+ return m.group(1) -+ - class GCalRequestError(Exception): - def __init__(self, response): - self.response = response -@@ -159,13 +194,19 @@ - self.id = self.elementValue('atom:id/text()') - self.editUri = self.elementValue('atom:link[@rel="edit"]/@href') - self.content = self.elementValue('atom:content[@type="text"]/text()') -+ self.dtrecur = self.elementValue('gd:recurrence/text()') -+ if self.dtrecur: -+ pass -+ self.dtstart = gdRecurToStart(self.dtrecur) -+ self.dtend = gdRecurToEnd(self.dtrecur) -+ self.dtrecur = gdRecurToORecur(self.dtrecur) -+ else: - self.dtstart = self.elementValue('gd:when/@startTime') - self.dtend = self.elementValue('gd:when/@endTime') - - self.eventStatus = self.elementValue('gd:eventStatus/@value') - self.whereString = self.elementValue('gd:where/@valueString') - -- #FIXME: Handle recurrency - #FIXME: Handle gd:eventStatus - - -@@ -199,9 +240,13 @@ - - self.addElementContent(doc, event, 'DateStarted', xsdateToOsync(self.dtstart)) - self.addElementContent(doc, event, 'DateEnd', xsdateToOsync(self.dtend)) -+ if self.dtrecur: -+ self.addElementContent(doc, event, 'RecurrenceRule', -+ self.dtrecur) -+ - self.addElementContent(doc, event, 'Location', self.whereString) - -- #TODO: UID, editUri, dtstart, dtend, recurrency, eventStatus -+ #TODO: UID, editUri, dtstart, dtend, eventStatus - return doc.toxml(encoding='utf-8') - - def dumpGdata(self):