notifyFrontend
This commit is contained in:
parent
7c1c01a756
commit
5a9fd08511
3 changed files with 20 additions and 4 deletions
|
@ -23,9 +23,13 @@ def httpExpires(sec):
|
||||||
class Root(controllers.RootController):
|
class Root(controllers.RootController):
|
||||||
@expose()
|
@expose()
|
||||||
def default(self, md5Hash, action, position = None):
|
def default(self, md5Hash, action, position = None):
|
||||||
f = ArchiveFile.byMd5sum(md5Hash)
|
try:
|
||||||
|
f = ArchiveFile.byMd5sum(md5Hash)
|
||||||
|
except:
|
||||||
|
return dict()
|
||||||
|
|
||||||
if action == 'metadata':
|
if action == 'metadata':
|
||||||
return dict(meta = f)
|
return dict(metadata = f)
|
||||||
elif action in ('timeline', 'timeline.png'):
|
elif action in ('timeline', 'timeline.png'):
|
||||||
cherrypy.response.headerMap['Content-Type'] = "image/jpeg"
|
cherrypy.response.headerMap['Content-Type'] = "image/jpeg"
|
||||||
cherrypy.response.headerMap["Expires"] = httpExpires(60*60*24*15)
|
cherrypy.response.headerMap["Expires"] = httpExpires(60*60*24*15)
|
||||||
|
@ -39,4 +43,4 @@ class Root(controllers.RootController):
|
||||||
return f.clip(position)
|
return f.clip(position)
|
||||||
elif action == 'frame':
|
elif action == 'frame':
|
||||||
return f.frame(position)
|
return f.frame(position)
|
||||||
redirect('http://0xdb.oil21.org/')
|
return dict()
|
|
@ -7,6 +7,7 @@
|
||||||
#
|
#
|
||||||
# @jsonify can convert your objects to following types:
|
# @jsonify can convert your objects to following types:
|
||||||
# lists, dicts, numbers and strings
|
# lists, dicts, numbers and strings
|
||||||
|
import time
|
||||||
|
|
||||||
from turbojson.jsonify import jsonify, jsonify_sqlobject
|
from turbojson.jsonify import jsonify, jsonify_sqlobject
|
||||||
|
|
||||||
|
@ -17,7 +18,9 @@ def jsonify_ArchiveFile(obj):
|
||||||
result = jsonify_sqlobject( obj )
|
result = jsonify_sqlobject( obj )
|
||||||
#FIXME, possibly do something with the date values
|
#FIXME, possibly do something with the date values
|
||||||
# date, date_added, modDate, pubDate
|
# date, date_added, modDate, pubDate
|
||||||
|
for key in ('date_added', 'modDate', 'pubDate', 'date'):
|
||||||
|
result[key] = time.mktime(getattr(obj, key).timetuple())
|
||||||
|
|
||||||
for key in ('id', 'archiveID', 'subtitle_meta_id'):
|
for key in ('id', 'archiveID', 'subtitle_meta_id'):
|
||||||
result.pop(key)
|
result.pop(key)
|
||||||
print "after, json", result
|
|
||||||
return result
|
return result
|
||||||
|
|
|
@ -29,6 +29,7 @@ __connection__ = hub
|
||||||
class Archive(SQLObject):
|
class Archive(SQLObject):
|
||||||
name = UnicodeCol(length=255, alternateID=True)
|
name = UnicodeCol(length=255, alternateID=True)
|
||||||
basePath = UnicodeCol()
|
basePath = UnicodeCol()
|
||||||
|
baseUrlFrontend = UnicodeCol(default = '')
|
||||||
|
|
||||||
def _get_basePath(self):
|
def _get_basePath(self):
|
||||||
basePath = self._SO_get_basePath()
|
basePath = self._SO_get_basePath()
|
||||||
|
@ -37,6 +38,12 @@ class Archive(SQLObject):
|
||||||
self.basePath = basePath
|
self.basePath = basePath
|
||||||
return basePath
|
return basePath
|
||||||
|
|
||||||
|
def notifyFrontend(self, action, md5sum):
|
||||||
|
if self.baseUrlFrontend:
|
||||||
|
url = "%s/%s?md5sum=%s" % (self.baseUrlFrontend, action, md5sum)
|
||||||
|
result = read_url(url)
|
||||||
|
print "Frontend:", result
|
||||||
|
|
||||||
def _get_files(self):
|
def _get_files(self):
|
||||||
q = ArchiveFile.select(ArchiveFile.q.archiveID == self.id)
|
q = ArchiveFile.select(ArchiveFile.q.archiveID == self.id)
|
||||||
return [f for f in q]
|
return [f for f in q]
|
||||||
|
@ -110,6 +117,7 @@ class Archive(SQLObject):
|
||||||
)
|
)
|
||||||
ret = "added entry"
|
ret = "added entry"
|
||||||
f.updateMeta()
|
f.updateMeta()
|
||||||
|
self.notifyFrontend('add', f.md5sum)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def removeFile(self, md5sum):
|
def removeFile(self, md5sum):
|
||||||
|
@ -123,6 +131,7 @@ class Archive(SQLObject):
|
||||||
if q.count() == 1:
|
if q.count() == 1:
|
||||||
for i in q:
|
for i in q:
|
||||||
ArchiveFile.delete(i.id)
|
ArchiveFile.delete(i.id)
|
||||||
|
self.notifyFrontend('remove', f.md5sum)
|
||||||
return dict(result="file removed")
|
return dict(result="file removed")
|
||||||
return dict(result="not in archive")
|
return dict(result="not in archive")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue