From 395c1ac07822838e6e1d9804814be6209b86cd3d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 26 Oct 2018 18:26:45 +0100 Subject: [PATCH] i-use: Cleanup code and statically deliver 404 image Signed-off-by: Michael Tremer --- Makefile.am | 1 + .../img/iuse-not-found.png} | Bin .../i-use/errors/IPFire-Banner1-Bronze.png | Bin 26291 -> 0 bytes .../i-use/errors/IPFire-Banner1-Gold.png | Bin 25800 -> 0 bytes src/web/__init__.py | 2 +- src/web/iuse.py | 28 ++++-------------- 6 files changed, 7 insertions(+), 24 deletions(-) rename src/{templates/i-use/errors/IPFire-Banner1-Silver.png => static/img/iuse-not-found.png} (100%) delete mode 100644 src/templates/i-use/errors/IPFire-Banner1-Bronze.png delete mode 100644 src/templates/i-use/errors/IPFire-Banner1-Gold.png diff --git a/Makefile.am b/Makefile.am index 37ee832b..12080b72 100644 --- a/Makefile.am +++ b/Makefile.am @@ -282,6 +282,7 @@ static_fontsdir = $(staticdir)/fonts static_images_DATA = \ src/static/img/default-avatar.jpg \ src/static/img/ipfire-tux.png \ + src/static/img/iuse-not-found.png \ src/static/img/lightningwirelabs-logo.svg static_imagesdir = $(staticdir)/img diff --git a/src/templates/i-use/errors/IPFire-Banner1-Silver.png b/src/static/img/iuse-not-found.png similarity index 100% rename from src/templates/i-use/errors/IPFire-Banner1-Silver.png rename to src/static/img/iuse-not-found.png diff --git a/src/templates/i-use/errors/IPFire-Banner1-Bronze.png b/src/templates/i-use/errors/IPFire-Banner1-Bronze.png deleted file mode 100644 index 52ee9198ed2727e965b7890b94d94745f4e3cc3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 26291 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

q)yeimh^V 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

n0D-%D$$ESeKn+T8iHhqOE2H3 z>jqgv)6Hvj&=yQ(wjl@=<#I%+9N~EpL7-5PMjI3FX;2FMP*e0Y$&#WkEBMHJhj{GA zCAO?juxXu(ZN)np=L%5+Ngx9S4&+14Oc*QfD~&-TFqF$4lam*T2K$+E|6Lr@X%+<2 z%yBn5ND!7rKwPYO!34f}GihGL6IU@^z7|uCPdrRVFEXtHa!IX6qYHH!6#1!vhI0=d98Ei9yKw)r+#2}u%gDLl|Fzo_U_@1l~ z3P)%X7Dy@Zv_S-d5KY2JWH~~W6-t1XP`x+(raduuh(E}J1IZVvfT4qr-L|lWW9r%Y zET^+w-Ui;j?e_u%y6d>FbV%WrqIz*m-TRhPTx%@=00bdPL_t*6L`|DxD?_~8{F?D< zXTH01Fg;-KZl0(oxeP#H8NNr;x@*I(_tOI1r^|E1v~!v^f|@eEWKh@%FJjoOwIK{O zrEdpMnFPv!umkX8ejmNSwwk;8-W|agz-aSA@PUOgp zliv#E%pnLOkV+64 zNO_uQR->Z`GbiKCl8tyTvq9;}xV95?B~W;?C)zsU?vz`01F)RHX5onra@rNNDeI{p zEMMDN?qz{XOT7Sr%b-R>-o1c;Uc@c$fTTwyS`_!vUU~omJ-yB)%pfcm#br=Iu;5a) zF{mh>NbtOXa>>W@LX0+XoFdn;;`Is*p07~K5QGuZ5=bHD`)x~yXFw>8lhWj86;dgr z22X>w!A)ppr(Ocv#rMH3u5Jeh;MGyq2z()m>B$EnlYw`$6)eR6*koPnOgH{p7l9z7m zdKnb8Dp@Y0cZH1jva4`OYA+^U{wnB6Z!Ib z%^uSgnt@ryZ*(PVr>E5BUAxu43L2_Q6iUULA;VCiwLwUM>sr{^v_(-s5NeDzgpnas z21x}dbSPPBgAj(Y(pUjl5<(p>ePA^Cd>+e9q9TQmg4jWqv8^KU@D=j_zGiD_e;IhpS#q{(5(9z&R&Vyq#j0^moDN`9_x`&kKDT^ zd*y*-JCZBj!+pX8 XAVhhS%*33#00000NkvXXu0mjfVN6mV diff --git a/src/web/__init__.py b/src/web/__init__.py index ff9a231d..796ae603 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -220,7 +220,7 @@ class Application(tornado.web.Application): # i-use.ipfire.org self.add_handlers(r"i-use(\.dev)?\.ipfire\.org", [ - (r"/profile/([a-f0-9]{40})/([0-9]+).png", iuse.Image), + (r"/profile/([a-f0-9]{40})/([0-9]+).png", iuse.ImageHandler), ]) # boot.ipfire.org diff --git a/src/web/iuse.py b/src/web/iuse.py index 71842d1d..c7dc3190 100644 --- a/src/web/iuse.py +++ b/src/web/iuse.py @@ -1,14 +1,11 @@ #!/usr/bin/python -import datetime import logging -import os -import random import tornado.web from . import base -class Image(base.BaseHandler): +class ImageHandler(base.BaseHandler): def write_error(self, status_code, **kwargs): """ Select a random image from the errors directory @@ -16,33 +13,18 @@ class Image(base.BaseHandler): """ self.set_expires(3600) - self.set_header("Content-Type", "image/png") - - template_path = self.application.settings.get("template_path", "") - template_path = os.path.join(template_path, "i-use", "errors") - - images = os.listdir(template_path) - if images: - image = random.choice(images) - image = os.path.join(template_path, image) - - imgdata = None - with open(image, "rb") as f: - imgdata = f.read() - - self.finish(imgdata) + # Redirect to static image + self.redirect(self.static_url("img/iuse-not-found.png")) def get(self, profile_id, image_id): - image = None - when = self.get_argument_date("when", None) - logging.info("Rendering new image for profile: %s" % profile_id) - profile = self.fireinfo.get_profile_with_data(profile_id, when=when) if not profile: raise tornado.web.HTTPError(404, "Profile '%s' was not found." % profile_id) + logging.info("Rendering new image for profile: %s" % profile_id) + image_cls = self.iuse.get_imagetype(image_id) if not image_cls: raise tornado.web.HTTPError(404, "Image class is unknown: %s" % image_id) -- 2.39.2