def save(self, force_insert=False, force_update=False, using=None): if not self.image and self.image_url: filename, headers = urllib.urlretrieve( self.image_url.encode('utf-8')) type = headers.get('Content-Type') if not type or not mimetypes.guess_all_extensions(type): raise ValidationError('Broken image') self.image = SimpleUploadedFile(filename, open(filename).read(), content_type=type) self.image_url = None super(Demot, self).save(force_insert, force_update, using) # generate demot if self.image and not self.final_image: demotivator = Demotivator(self.image, self.line1, self.line2, get_address()) demotivator.create(self.demot_path['path']) # generate default thumbnail self.get_thumbnail() self.final_image = self.demot_path['url'] self.save() # create/update activity self.save_activity()
def get_thumbnail(self, size=THUMBNAIL_SIZE): path = os.path.join(self.demot_directory, "thumb-%sx%s.png" % (size[0], size[1])) if not os.path.exists(path): demotivator = Demotivator(self.image.path, self.line1, self.line2, get_address()) demotivator.get_thumbnail(path, size) return { 'path': path, 'url': path.replace(settings.MEDIA_ROOT, settings.MEDIA_URL) }