Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 185475
Collapse All | Expand All

(-)branches/branch-0.2X/plugins/google-calendar/src/google-cal-helper.py (-4 / +49 lines)
Lines 139-142 Link Here
139
	return r
139
	return r
140
140
141
GDEND_RE = re.compile("DTEND;[^:]*:(\S+)")
142
def gdRecurToEnd(recur):
143
	m = GDEND_RE.search(recur)
144
	if m is None:
145
		raise DateConversionError("failed to find end in \"%s\"" % recur)
146
	start = m.group(1)
147
	year = start[0:4]
148
	month = start[4:6]
149
	day = start[6:8]
150
	hour = start[9:11]
151
	min = start[11:13]
152
	sec = start[13:15]
153
	return "%s-%2s-%2sT%2s:%2s:%2s" % (year, month, day, hour, min, sec)
154
155
GDSTART_RE = re.compile("DTSTART;[^:]*:(\S+)")
156
def gdRecurToStart(recur):
157
	m = GDSTART_RE.search(recur)
158
	if m is None:
159
		raise DateConversionError("failed to find start in \"%s\"" % recur)
160
	start = m.group(1)
161
	year = start[0:4]
162
	month = start[4:6]
163
	day = start[6:8]
164
	hour = start[9:11]
165
	min = start[11:13]
166
	sec = start[13:15]
167
	return "%s-%2s-%2sT%2s:%2s:%2s" % (year, month, day, hour, min, sec)
168
169
GDRECUR_RE = re.compile("RRULE:(\S+)")
170
def gdRecurToORecur(recur):
171
	m = GDRECUR_RE.search(recur)
172
	if m is None:
173
		raise DateConversionError("failed to find rule in \"%s\"" % recur)
174
	return m.group(1)
175
141
class GCalRequestError(Exception):
176
class GCalRequestError(Exception):
142
	def __init__(self, response):
177
	def __init__(self, response):
Lines 160-170 Link Here
160
		self.editUri = self.elementValue('atom:link[@rel="edit"]/@href')
195
		self.editUri = self.elementValue('atom:link[@rel="edit"]/@href')
161
		self.content = self.elementValue('atom:content[@type="text"]/text()')
196
		self.content = self.elementValue('atom:content[@type="text"]/text()')
162
		self.dtstart = self.elementValue('gd:when/@startTime')
197
		self.dtrecur = self.elementValue('gd:recurrence/text()')
163
		self.dtend = self.elementValue('gd:when/@endTime')
198
		if self.dtrecur:
199
			pass
200
			self.dtstart = gdRecurToStart(self.dtrecur)
201
			self.dtend = gdRecurToEnd(self.dtrecur)
202
			self.dtrecur = gdRecurToORecur(self.dtrecur)
203
		else:
204
			self.dtstart = self.elementValue('gd:when/@startTime')
205
			self.dtend = self.elementValue('gd:when/@endTime')
164
206
165
		self.eventStatus = self.elementValue('gd:eventStatus/@value')
207
		self.eventStatus = self.elementValue('gd:eventStatus/@value')
166
		self.whereString = self.elementValue('gd:where/@valueString')
208
		self.whereString = self.elementValue('gd:where/@valueString')
167
209
168
		#FIXME: Handle recurrency
169
		#FIXME: Handle gd:eventStatus
210
		#FIXME: Handle gd:eventStatus
170
211
Lines 200-206 Link Here
200
		self.addElementContent(doc, event, 'DateStarted', xsdateToOsync(self.dtstart))
241
		self.addElementContent(doc, event, 'DateStarted', xsdateToOsync(self.dtstart))
201
		self.addElementContent(doc, event, 'DateEnd', xsdateToOsync(self.dtend))
242
		self.addElementContent(doc, event, 'DateEnd', xsdateToOsync(self.dtend))
243
		if self.dtrecur:
244
			self.addElementContent(doc, event, 'RecurrenceRule',
245
			                       self.dtrecur)
246
202
		self.addElementContent(doc, event, 'Location', self.whereString)
247
		self.addElementContent(doc, event, 'Location', self.whereString)
203
248
204
		#TODO: UID, editUri, dtstart, dtend, recurrency, eventStatus
249
		#TODO: UID, editUri, dtstart, dtend, eventStatus
205
		return doc.toxml(encoding='utf-8')
250
		return doc.toxml(encoding='utf-8')
206
251

Return to bug 185475