示例#1
0
	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)
示例#2
0
	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)