def post(self): try: sender = self.request.GET.get("from", "") if not sender or sender == '': self.error(500) return recipient = self.request.GET.get("to", "") if recipient == ADMIN_ADDRESS: mail.send_mail(sender=CONTACT_ADDRESS, to=ADMIN_ADDRESS, subject="mail to [email protected] from %s" % sender, body=self.request.body) return message = email.message_from_string(self.request.body) for part in message.walk(): if part.get_content_maintype() == 'multipart': continue filename = part.get_filename() if filename and filename not in BAD_FILES: ext = mimetypes.guess_extension(part.get_content_type()) if ext in ALLOWED_EXTENSIONS: image = db.Blob(part.get_payload(decode=True)) ext = ext.replace('.', '') # turn .jpe's into jpgs, there's no content/type: jpe if ext == 'jpe': ext = 'jpg' image_id = ImageStore.add(image, ext=ext, author=users.User(sender)) url = IMAGE_URL % image_id mail.send_mail(sender=CONTACT_ADDRESS, to=sender, subject="tsurp: %s" % url, body=url) logging.debug('sent image url %s to %s' % (url, sender)) else: logging.debug('invalid ext for %s: %s' % (filename, ext)) except apiproxy_errors.OverQuotaError, e: self.error(500) logging.debug('lost message for %s, over quota: %s.' % (sender, e))
def post(self): try: if not isinstance(self.request.get('img'), str): self.redirect('/') image = db.Blob(self.request.get('img')) ext = self.request.POST.get('img').filename.split('.')[-1] author = users.get_current_user() title = self.request.get('title') image_id = ImageStore.add(image, ext=ext, author=author, title=title) self.redirect('/' + image_id) except Exception, e: self.error(500) logging.error('%s: %s' % (self.__class__.__name__, traceback.print_exc()))