oxdbarchive/oxdbarchive/controllers.py
j 9779cfc86a * cleanup oxdbarchive, consolidated cache code
* no tg_flash
* fix extract_timeline
2007-07-10 13:32:21 +00:00

42 lines
No EOL
1.3 KiB
Python

# -*- Mode: Python; -*-
# -*- coding: utf-8 -*-
# vi:si:et:sw=2:sts=2:ts=2
from turbogears import controllers, expose, flash, redirect
from model import *
import cherrypy
# import logging
# log = logging.getLogger("oxdbarchive.controllers")
'''
/md5/frame/position.jpg
/md5/clip/position.jpg
/md5/metadata
'''
def httpExpires(sec):
exp_date = cherrypy.lib.httptools.HTTPDate(time.gmtime(time.mktime(time.gmtime()) + sec))
return exp_date
class Root(controllers.RootController):
@expose()
def default(self, md5Hash, action, position = None):
f = ArchiveFile.byMd5sum(md5Hash)
if action == 'metadata':
print f
return dict(meta = f)
elif action in ('timeline', 'timeline.png'):
cherrypy.response.headerMap['Content-Type'] = "image/jpeg"
cherrypy.response.headerMap["Expires"] = httpExpires(60*60*24*15)
return f.timeline()
elif position: #clip / frame
cherrypy.response.headerMap['Content-Type'] = "image/jpeg"
cherrypy.response.headerMap["Expires"] = httpExpires(60*60*24*15)
position = position.replace('.png', '').replace('.jpg', '')
position = position.replace('-', ':').replace('.',':')
if action == 'clip':
return f.clip(position)
elif action == 'frame':
return f.frame(position)
redirect('http://0xdb.oil21.org/')