Exemplo n.º 1
0
  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))
Exemplo n.º 2
0
  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))
Exemplo n.º 3
0
  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))
Exemplo n.º 4
0
  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))
Exemplo n.º 5
0
  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))
Exemplo n.º 6
0
  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))
Exemplo n.º 7
0
  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))
Exemplo n.º 8
0
  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))
Exemplo n.º 9
0
  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
Exemplo n.º 10
0
  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))
Exemplo n.º 11
0
  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