Esempio n. 1
0
 def get(self):
     '''no arguments'''
     random_pic = Picture.gql(
         'WHERE rand > :1 ORDER BY rand LIMIT 1',
         random()
     ).get()
     logging.debug('Random Picture: %s' % random_pic)
     self.redirect('/photo/%s' % random_pic.gphoto_id)
Esempio n. 2
0
 def get(self):
     """no arguments"""
     rss = memcache.get("feed")
     if rss is None:
         pics = Picture.gql("ORDER BY uploaded DESC LIMIT 11")
         host = self.request.host_url
         rss = render("feed.xml", {"pics": pics, "host": host})
         memcache.set("feed", rss, time=900)
     self.response.out.write(rss)
Esempio n. 3
0
 def get(self):
     '''no arguments'''
     page = memcache.get('mosaic')
     if page is None:
         pics = Picture.gql('ORDER BY uploaded ASC')
         page = render('list.html', {'pics':pics})
         if not memcache.add('mosaic', page):
             logging.error('Mosaic not written to memcache')
         else:
             logging.debug('New memcache entry: mosaic')
     logging.debug('All pictures listed')
     self.response.out.write(page)
Esempio n. 4
0
def _get_newer_or_older(pic, newer=True):
    '''query the database for adjacent pictures
    
    @param pic: center picture
    @param newer: True for LHS, False for RHS
    '''
    if newer:
        options = ('>', 'ASC')
    else:
        options = ('<', 'DESC')
    query = 'WHERE uploaded %s :1 ORDER BY uploaded %s LIMIT 1' % options
    picture = Picture.gql(query, pic.uploaded)
    return picture.get()
Esempio n. 5
0
 def get(self, gphoto_id=None):
     '''display the picture
     @param gphoto_id: the numeric ID from picasa
     '''
     if not gphoto_id:
         query = Picture.gql('ORDER BY uploaded DESC LIMIT 1')
         latest_picture = query.get()
         gphoto_id = str(latest_picture.gphoto_id)
     page = memcache.get(gphoto_id, namespace='pics')
     if page is None:
         pics = Picture.all().filter('gphoto_id =', int(gphoto_id))
         pic = pics.get()
         logging.debug('Picture view: %s' % pic.gphoto_id)
         page = render('pic.html', {'pic':pic,
                                     'next':get_newer(pic),
                                     'prev':get_older(pic)
         })
         if not memcache.add(gphoto_id, page, 86400, namespace='pics'):
             logging.error('Page %s not written to memcache' % gphoto_id)
         else:
             logging.debug('New memcache entry: %s' % gphoto_id)
     self.response.out.write(page)