40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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':
|
|
return dict(meta = f)
|
|
elif position or action == 'timeline': #clip / frame / timeline
|
|
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 == 'timeline':
|
|
return f.timeline()
|
|
if action == 'clip':
|
|
return f.clip(position)
|
|
elif action == 'frame':
|
|
return f.frame(position)
|
|
redirect('http://0xdb.oil21.org/')
|
|
|
|
@expose()
|
|
def index(self):
|
|
redirect('http://0xdb.oil21.org/')
|