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)
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)