def get_details(self, coverid, size=""): try: coverid = int(coverid) except ValueError: return None # Use tar index if available to avoid db query. We have 0-6M images in tar balls. if isinstance(coverid, int) and coverid < 6000000 and size in "sml": path = self.get_tar_filename(coverid, size) if path: if size: key = "filename_%s" % size else: key = "filename" return web.storage({"id": coverid, key: path, "created": datetime.datetime(2010, 1, 1)}) return db.details(coverid)
def GET(self, category, key, value): d = _query(category, key, value) if key == 'id': web.header('Content-Type', 'application/json') d = db.details(value) if d: if isinstance(d['created'], datetime.datetime): d['created'] = d['created'].isoformat() d['last_modified'] = d['last_modified'].isoformat() return simplejson.dumps(d) else: raise web.notfound("") else: value = _query(category, key, value) if value is None: return web.notfound("") else: return web.found("/%s/id/%s.json" % (category, value))