def migrate_all(self, id): gal = GalleryModel.get(id) if (gal): imgs = ImageModel.gql("WHERE gallery = :gallery", gallery=gal.key()).fetch(_MAX_FETCH) for img in imgs: result = ImageModel2.gql("WHERE orig_image = :img", img=img.key()).fetch(1) if not result: imgblob = ImageBlobModel() imgblob.image = img.image imgblob.thumbnail = img.thumbnail imgblob.put() img2 = ImageModel2() img2.name = img.name img2.desc = img.desc img2.orig_image = img.key() img2.priority = img.priority img2.gallery = img.gallery img2.imageblob = imgblob.key() img2.put() else: logging.info("Image %s has already been migrated" % img.key()) else: logging.info("Gallery %s not found" % id) self.error(503)
def migrate(self, id): img = ImageModel.get(id) if (img): result = ImageModel2.gql("WHERE orig_image = :img", img=img.key()).fetch(1) if not result: imgblob = ImageBlobModel() imgblob.image = img.image imgblob.thumbnail = img.thumbnail imgblob.put() img2 = ImageModel2() img2.name = img.name img2.desc = img.desc img2.priority = img.priority img2.orig_image = img.key() img2.gallery = img.gallery img2.imageblob = imgblob.key() img2.put() referrer = self.request.headers['referer'] self.redirect(referrer) else: logging.info("Image %s has already been migrated" % img.key()) referrer = self.request.headers['referer'] self.redirect(referrer) else: self.error(503)
def view(self, id): img = ImageModel2.get(id) if (img): data = { "img": img, "template": "public/image_view.tpl" } self.generate(base_template, data) else: self.error(503)
def render_thumb(self, id): img = ImageModel2.get(id) if img: content_type, width, height = getImageInfo(img.imageblob.thumbnail) self.response.headers['Content-Type'] = content_type self.response.headers['Content-Disposition'] = img.name expires = datetime.datetime.now() + datetime.timedelta(days=7) self.response.headers.add_header("Expires", expires.strftime("%a, %d %b %Y %H:%M:%S %Z") + "GMT") self.response.headers['Cache-Control'] = 'public,max-age=%d' % int(7*24*60) self.response.out.write(img.imageblob.thumbnail) else: self.error(404)
def view(self, id, gal_name): gal = GalleryModel.get(id) if (gal): imgs = ImageModel2.gql("WHERE gallery = :gallery", gallery=gal.key()).fetch(_MAX_FETCH) imgs = sorted(imgs, priority_sort) data = { "gal_name": gal_name, "gal": gal, "imgs": imgs, "template": "public/gallery_view.tpl" } self.generate(base_template, data) else: self.error(503)
def view_xml(self, id): gal = GalleryModel.get(id) if (gal): imgs = ImageModel2.gql("WHERE gallery = :gallery", gallery=gal.key()).fetch(_MAX_FETCH) imgs = sorted(imgs, priority_sort) xml = '<?xml version="1.0" encoding="utf-8"?>' xml += '<pics>' for img in imgs: src = '/image/?render=%s' % img.key() xml += '<pic src=%s title=%s/>' % (quoteattr(src), quoteattr(img.name)) xml += '</pics>' self.response.headers['Content-Type'] = 'application/xml' self.response.out.write(xml) else: self.error(503)
def render(self, id): image_model = ImageModel2.get(id) img_name = image_model.name.replace(' ', ''); if (image_model): img = images.Image(image_model.imageblob.image) img.resize(1024, 768) image_output = img.execute_transforms(output_encoding=images.JPEG) self.response.headers['Content-Type'] = 'image/jpeg' self.response.headers['Content-Disposition'] = 'filename=' + img_name expires = datetime.datetime.now() + datetime.timedelta(days=7) self.response.headers.add_header("Expires", expires.strftime("%a, %d %b %Y %H:%M:%S %Z") + "GMT") self.response.headers['Cache-Control'] = 'public,max-age=%d' % int(7*24*60) self.response.out.write(image_output) else: self.error(404)
def migrate_all(self): imgs = ImageModel.all() for img in imgs: result = ImageModel2.gql("WHERE orig_image = :img", img=img.key()).fetch(1) if not result: imgblob = ImageBlobModel() imgblob.image = img.image imgblob.thumbnail = img.thumbnail imgblob.put() img2 = ImageModel2() img2.name = img.name img2.desc = img.desc img2.orig_image = img.key() img2.priority = img.priority img2.gallery = img.gallery img2.imageblob = imgblob.key() img2.put() else: logging.info("Image %s has already been migrated" % img.key())