def run(self, events, *args, **kwargs): event_id = kwargs.pop('event_id') attribute = kwargs.pop('attribute') value = kwargs.pop('value') event = events[event_id] event[attribute] = value calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass body = strings.MSG_STRING_ATTR_SET % (attribute, value) return RSVPCommandResponse(events, RSVPMessage('stream', body))
def run(self, events, *args, **kwargs): event = kwargs.pop('event') event_id = kwargs.pop('event_id') duration = kwargs.pop('duration') parsed_duration_in_seconds = timeparse(duration, granularity='minutes') event['duration'] = parsed_duration_in_seconds body = strings.MSG_DURATION_SET % datetime.timedelta(seconds=parsed_duration_in_seconds) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass return RSVPCommandResponse(events, RSVPMessage('stream', body))
def run(self, events, *args, **kwargs): event = kwargs.pop('event') event_id = kwargs.pop('event_id') duration = kwargs.pop('duration') sender_email = kwargs.pop('sender_email') parsed_duration_in_seconds = timeparse(duration, granularity='minutes') event['duration'] = parsed_duration_in_seconds body = strings.MSG_DURATION_SET % (event_id, datetime.timedelta(seconds=parsed_duration_in_seconds)) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass return RSVPCommandResponse(events, RSVPMessage('private', body, sender_email))
def run(self, events, *args, **kwargs): event_id = kwargs.pop('event_id') hours, minutes = int(kwargs.pop('hours')), int(kwargs.pop('minutes')) if hours in range(0, 24) and minutes in range(0, 60): event = events[event_id] event['time'] = '%02d:%02d' % (hours, minutes) body = strings.MSG_TIME_SET % (hours, minutes) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass else: body = strings.ERROR_TIME_NOT_VALID % (hours, minutes) return RSVPCommandResponse(events, RSVPMessage('stream', body))
def run(self, events, *args, **kwargs): event_id = kwargs.pop('event_id') sender_email = kwargs.pop('sender_email') attribute = kwargs.pop('attribute') if attribute == "location": attribute = "place" value = kwargs.pop('value') event = events[event_id] event[attribute] = value calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass body = strings.MSG_STRING_ATTR_SET % (attribute, value) return RSVPCommandResponse(events, RSVPMessage('private', body, sender_email))
def run(self, events, *args, **kwargs): event_id = kwargs.pop('event_id') hours, minutes = int(kwargs.pop('hours')), int(kwargs.pop('minutes')) sender_email = kwargs.pop('sender_email') if hours in range(0, 24) and minutes in range(0, 60): event = events[event_id] event['time'] = '%02d:%02d' % (hours, minutes) body = strings.MSG_TIME_SET % (event_id, hours, minutes) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass else: body = strings.ERROR_TIME_NOT_VALID % (hours, minutes) return RSVPCommandResponse(events, RSVPMessage('private', body, sender_email))
def run(self, events, *args, **kwargs): event = kwargs.pop('event') event_id = kwargs.pop('event_id') day = kwargs.pop('day') month = kwargs.pop('month') year = kwargs.pop('year') day, month, year = int(day), int(month), int(year) if self.validate_future_date(day, month, year): event['date'] = str(datetime.date(year, month, day)) events[event_id] = event body = strings.MSG_DATE_SET % (month, day, year) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass else: body = strings.ERROR_DATE_NOT_VALID % (month, day, year) return RSVPCommandResponse(events, RSVPMessage('stream', body))
def run(self, events, *args, **kwargs): event = kwargs.pop('event') event_id = kwargs.pop('event_id') sender_email = kwargs.pop('sender_email') raw_date = kwargs.pop('date') try: event_date = self._parse_date(raw_date) except ValueError: event_date = None if event_date and self._is_in_the_future(event_date): event['date'] = str(event_date) events[event_id] = event body = strings.MSG_DATE_SET % (event_id, event_date.strftime("%x")) calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass else: body = strings.ERROR_DATE_NOT_VALID % raw_date return RSVPCommandResponse(events, RSVPMessage('private', body, sender_email))
def confirm(self, event, event_id, sender_email, decision): # Temporary kludge to add a 'maybe' array to legacy events. Can be removed after # all currently logged events have passed. if ('maybe' not in event.keys()): event['maybe'] = [] # If they're in a different response list, take them out of it. for response in self.responses.keys(): # prevent duplicates if replying multiple times if (response == decision): # if they're already in that list, nothing to do if (sender_email not in event[response]): event[response].append(sender_email) # else, remove all instances of them from other response lists. elif sender_email in event[response]: event[response] = [value for value in event[response] if value != sender_email] calendar_event_id = event.get('calendar_event') and event['calendar_event']['id'] if calendar_event_id: try: calendar_events.update_gcal_event(event, event_id) except calendar_events.KeyfilePathNotSpecifiedError: pass return event