~matias-wilkman/calendar-indicator/fix-1394124

« back to all changes in this revision

Viewing changes to src/googlecalendarapi.py

  • Committer: Lorenzo Carbonell
  • Date: 2012-11-26 21:13:19 UTC
  • Revision ID: lorenzo.carbonell.cerezo@gmail.com-20121126211319-rwf56ujpxgjmyvxz
Add, edit and delete events

Show diffs side-by-side

added added

removed removed

Lines of Context:
185
185
                                        if dtstart.find('-')>-1:
186
186
                                                dtstart = dtstart[:dtstart.find('-')]
187
187
                                        el = 'DTSTART:%s\n'%dtstart+el
188
 
                                print('rule :%s'%el)
189
188
                                rrule = dateutil.rrule.rrulestr(el)
190
189
                                ans = rrule.after(daybefore,inc=True)
191
 
                                print('ans =%s'%ans)
192
190
                                if ans is not None:
193
191
                                        return ans
194
192
                if 'date' in self['start'].keys():
195
193
                        return get_datetime_from_string(self['start']['date'])
196
194
                elif 'dateTime' in self['start'].keys():
197
195
                        return get_datetime_from_string(self['start']['dateTime'])              
 
196
 
198
197
        def get_start_date_string(self,daybefore=None):
199
198
                adate = self.get_start_date(daybefore)
200
199
                if 'date' in self['start'].keys():
201
200
                        return adate.strftime('%x')
202
201
                else:
203
202
                        return adate.strftime('%x')+' - '+adate.strftime('%H:%M')
204
 
        def get_end_date(self):
 
203
        def get_end_date(self,daybefore=None):
 
204
                if 'recurrence' in self.keys():
 
205
                        for el in self['recurrence']:
 
206
                                if el.find('DTSTART') == -1:
 
207
                                        if 'date' in self['end'].keys():
 
208
                                                dtstart = self['end']['date'].replace('-','').replace(':','')
 
209
                                        elif 'dateTime' in self['end'].keys():
 
210
                                                dtstart = self['end']['dateTime'].replace('-','').replace(':','')
 
211
                                        if dtstart.find('.')>-1:
 
212
                                                dtstart = dtstart[:dtstart.find('.')]
 
213
                                        if dtstart.find('+')>-1:
 
214
                                                dtstart = dtstart[:dtstart.find('+')]
 
215
                                        if dtstart.find('-')>-1:
 
216
                                                dtstart = dtstart[:dtstart.find('-')]
 
217
                                        el = 'DTSTART:%s\n'%dtstart+el
 
218
                                rrule = dateutil.rrule.rrulestr(el)
 
219
                                ans = rrule.after(daybefore,inc=True)
 
220
                                if ans is not None:
 
221
                                        return ans
205
222
                if 'date' in self['end'].keys():
206
223
                        return get_datetime_from_string(self['end']['date'])
207
224
                elif 'dateTime' in self['end'].keys():
208
 
                        return get_datetime_from_string(self['end']['dateTime'])                
 
225
                        return get_datetime_from_string(self['end']['dateTime'])
209
226
        def __eq__(self,other):
210
227
                for key in self.keys():
211
228
                        if key in other.keys():
305
322
                response = self.__do_request('DELETE',url,params = params)
306
323
                return (response is not None)
307
324
 
308
 
        def add_event(self,calendar_id,summary,start_date,end_date,reminder=False,reminder_minutes=15,rrule=None):
 
325
        def add_event(self,calendar_id,summary,start_date,end_date,description=None,reminder=False,reminder_minutes=15,rrule=None):
309
326
                url = 'https://www.googleapis.com/calendar/v3/calendars/%s/events'%(calendar_id)
310
327
                params = {'calendarId':calendar_id}
311
328
                if type(start_date) == datetime.date:
322
339
                        'start': start_value,
323
340
                        'end': end_value
324
341
                }
 
342
                if description is not None:
 
343
                        data['description'] = description
325
344
                if reminder:
326
345
                        data['reminders'] = {
327
346
                                'useDefault': False,
346
365
                                print(e)
347
366
                return None
348
367
                
349
 
        def edit_event(self,calendar_id,event_id,summary,start_date,end_date,reminder=False,reminder_minutes=15,rrule=None):
 
368
        def edit_event(self,calendar_id,event_id,summary,start_date,end_date,description=None,reminder=False,reminder_minutes=15,rrule=None):
350
369
                url = 'https://www.googleapis.com/calendar/v3/calendars/%s/events/%s'%(calendar_id,event_id)
351
370
                params = {'calendarId':calendar_id,'eventId':event_id}
352
371
                if type(start_date) == datetime.date:
363
382
                        'start': start_value,
364
383
                        'end': end_value
365
384
                }
 
385
                if description is not None:
 
386
                        data['description'] = description
366
387
                if reminder:
367
388
                        data['reminders'] = {
368
389
                                'useDefault': False,