Example #1
0
    def response(self, user, text, reply_to=None):
        self._scanner = ReminderScanner(text)
        response = "" 
        valid = True
        tweet_hash = hashlib.sha1()
        tweet_hash.update(text)
        tweet_hash = tweet_hash.hexdigest()[:6]

        try:
            self._reminder = self._scanner.extract()
        except:
            valid = False
            response += gs("PARSE_ERROR") 

            return self._split("@" + user, response, reply_to=reply_to) 

        if self._reminder.error != None:
            valid = False
            response += gs("ERROR_OCCURRED") % self._reminder.error
        elif self._reminder.timedelta == None:
            valid = False
            response += gs("NO_TIMEDELTA")
        elif self._reminder.text == None:
            response += gs("NO_REMINDER_TEXT") % tweet_hash
        if self._reminder.text != None and valid:
            response += gs("REMINDER_SET") % tweet_hash

        # Save the job in the scheduler
        if valid:
            j = Job(extra={'user': user}, payload=self._reminder)
            j.store(r)

        return self._split("@" + user, response, reply_to=reply_to) 
Example #2
0
 def execute(self, backend, extra):
     if not self.text: self.text = gs("REMINDER_PLACEHOLDER")
     text = {
         'reply': '@%s %s',
         'dm': 'd %s %s'
     }.get(self._method) % (extra['user'], self.text)
     backend.publish("reminders", text)