def handle_signature(self, message): """ The user is setting their signature via blank email. """ (sender, message_body, is_html, html_body, plain_body, subject) = self.parse_message(message) user = db.Query(Users).filter('pt_emails =', sender).get() if user is None: self.log_and_reply(sender, "Could not find your user. Have you signed up and set up your email yet?\n\n" + "You can sign up at ptreply.com.\n\n" + "Your signature will not be added.\n\nYour original email:\n%s" % (message_body)) return #strip appropriately plain_body = plain_body.strip() html_body = re.sub('^(\s*<br[^>]*>\s*)+|(\s*<br[^>]*>\s*)+$', lambda x: '', html_body) reply = '' error = False (code, message) = ModelsUtil.add_signature(user, html_body) if code != 200: error = True reply = "Your HTML signature was not added. Reason: %s" % (message) else: reply = "The following HTML signature was added:\n%s" % (html_body) (code, message) = ModelsUtil.add_signature(user, plain_body) if code != 200: error = True reply = "%s\n========\nYour plain text signature was not added. Reason: %s" % (reply, message) else: reply = "%s\n========\nThe following plain text signature was added:\n%s" % (reply, plain_body) mail.send_mail(sender=self.noreply, to=sender, subject="PT Reply Signature", body=reply)
def post(self): """ this handler supports http post """ signature = self.request.get('signature').strip() if signature == '': self.response.set_status(400) self.response.out.write('Signature is required.') else: google_user = google_users.get_current_user() user = db.Query(Users).filter('user_id =', google_user.user_id()).get() if user is None: user = Users(user_id = google_user.user_id(), email = google_user.email()) (code, message) = ModelsUtil.add_signature(user, signature) self.response.set_status(code) self.response.out.write(message)