Update web ui to use new TrackerIcons

This commit is contained in:
John Garland 2010-05-04 03:42:11 +10:00
commit a8ac98bb37

View file

@ -46,13 +46,6 @@ import tempfile
import mimetypes import mimetypes
import pkg_resources import pkg_resources
try:
import PIL.Image as Image
import cStringIO
import deluge.ui.Win32IconImagePlugin
except ImportError:
Image = None
from twisted.application import service, internet from twisted.application import service, internet
from twisted.internet import reactor, defer, error from twisted.internet import reactor, defer, error
from twisted.internet.ssl import SSL from twisted.internet.ssl import SSL
@ -202,31 +195,21 @@ class Tracker(resource.Resource):
return self return self
def render(self, request): def render(self, request):
headers = {} def on_get_icon(icon):
filename = self.tracker_icons.get(request.tracker_name) headers = {}
if filename: if icon:
request.setHeader("cache-control", request.setHeader("cache-control",
"public, must-revalidate, max-age=86400") "public, must-revalidate, max-age=86400")
if Image: request.setHeader("content-type", icon.get_mimetype())
im = Image.open(filename)
if im.size > (16, 16):
im = im.resize((16, 16), Image.ANTIALIAS)
fp = cStringIO.StringIO()
im.save(fp, "png")
request.setHeader("content-type", "image/png")
request.setResponseCode(http.OK) request.setResponseCode(http.OK)
return fp.getvalue() return icon.get_data()
else: else:
if filename.endswith(".ico"): request.setResponseCode(http.NOT_FOUND)
request.setHeader("content-type", "image/x-icon") return ""
elif filename.endswith(".png"):
request.setHeader("content-type", "image/png") d = self.tracker_icons.get(request.tracker_name)
data = open(filename, "rb") d.addCallback(on_get_icon)
request.setResponseCode(http.OK) return d
return data.read()
else:
request.setResponseCode(http.NOT_FOUND)
return ""
class Flag(resource.Resource): class Flag(resource.Resource):
def getChild(self, path, request): def getChild(self, path, request):