Beispiel #1
0
class PhotoHandler(RequestHandler):
    per_page = 15
    
    def __init__(self):
        self.flickr = MyFlickr("bf1a023e68d6ce32412b9988a3c5cdcb", "a9953877adb04b9f")
        
    def parse(self):
        page = 1
        item = self.request.url.split("/")[-1]
        if re.search("\?page=", item):
            item, page = item.split("?page=")
            page = int(page)
        return (item, page)
    
    def fetch(self, method, **kwargs):
        the_user = users.get_current_user()
        if the_user:
            user = User.get_by_key_name("foo_" + the_user.email())
        args = {'per_page': self.per_page, 'extras': "owner_name,o_dims,media"}
        args.update(kwargs)
        if the_user:
            args.update({"auth_token": user.token})
            photos = self.flickr.signed_call(method, **args)
        else:
            photos = self.flickr.call(method, **args)
        for photo in photos["photos"]["photo"]:
            sizes = self.flickr.call("flickr.photos.getSizes",
                                    photo_id=photo["id"])
            for size in sizes["sizes"]["size"]:
                photo[size["label"].replace(' ', '_')] = size
        return photos["photos"]["photo"]
    
    
    def photo_render(self, **kwargs):
        photos_block = template.render("photos.html", kwargs)
        if (str(self.request.accept).startswith("text/javascript")):
            self.response.out.write(photos_block)
        else:
            kwargs.update({"photos_block": photos_block})
            self.render("photo_page.html", **kwargs)