示例#1
0
 def handle_css(self):
     try:
         f = open(os.path.join(self.config.static_path, "css", "main.css"))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="text/css")
示例#2
0
 def handle_css(self):
     try:
         f = open(os.path.join(self.config.static_path, "css", "main.css"))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="text/css")
示例#3
0
 def handle_index(self):
     """Serve up the one static index page."""
     try:
         f = open(os.path.join(self.config.static_path, "index.html"))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype='text/html')
示例#4
0
 def handle_index(self):
     """Serve up the one static index page."""
     try:
         f = open(os.path.join(self.config.static_path, "index.html"))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype='text/html')
示例#5
0
 def handle_svg_img(self, name):
     img_dir = os.path.join(self.config.static_path, "img")
     if name not in os.listdir(img_dir):
         raise NotFound
     try:
         f = open(os.path.join(img_dir, name))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="image/svg+xml")
示例#6
0
 def handle_js(self, name):
     js_dir = os.path.join(self.config.static_path, "js")
     if name not in os.listdir(js_dir):
         raise NotFound
     try:
         f = open(os.path.join(js_dir, name))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="application/javascript")
示例#7
0
 def handle_svg_img(self, name):
     img_dir = os.path.join(self.config.static_path, "img")
     if name not in os.listdir(img_dir):
         raise NotFound
     try:
         f = open(os.path.join(img_dir, name))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="image/svg+xml")
示例#8
0
 def handle_js(self, name):
     js_dir = os.path.join(self.config.static_path, "js")
     if name not in os.listdir(js_dir):
         raise NotFound
     try:
         f = open(os.path.join(js_dir, name))
     except IOError:
         get_sentry().captureException()
         return Response(status=500, response="Internal Server Error")
     txt = f.read()
     f.close()
     return Response(response=txt, mimetype="application/javascript")
示例#9
0
 def __call__(self, request):
     try:
         with closing(self.engine.connect()) as conn:
             response = CoverArtRedirect(self.config, conn).handle(request)
         response.headers.add('Access-Control-Allow-Origin', '*')
         return response
     except werkzeug.exceptions.HTTPException as e:
         get_sentry().captureException()
         return e
     except:  # FIXME: Exception clause is too broad
         get_sentry().captureException()
         logging.error("Caught exception\n" + traceback.format_exc())
         return werkzeug.wrappers.Response(
             status=500,
             response=["Whoops. Our bad.\n"],
         )
示例#10
0
 def __call__(self, request):
     try:
         with closing(self.engine.connect()) as conn:
             response = CoverArtRedirect(self.config, conn).handle(request)
     except werkzeug.exceptions.HTTPException as e:
         get_sentry().captureException()
         response = e.get_response()
     except:  # FIXME: Exception clause is too broad
         get_sentry().captureException()
         logging.error("Caught exception\n" + traceback.format_exc())
         response = werkzeug.wrappers.Response(
             status=500,
             response=["Whoops. Our bad.\n"],
         )
     response.headers.add('Access-Control-Allow-Origin', '*')
     return response
示例#11
0
    def handle_options(self, request, entity):
        """Repond to OPTIONS requests with a status code of 200 and the allowed
        request methods.
        """
        if request.environ["SERVER_PROTOCOL"] != "HTTP/1.1":
            # OPTIONS does not exist in HTTP/1.0
            raise NotImplemented()
        if entity:
            if not entity == '*':
                self.validate_entity(entity)
            elif pop_path_info(request.environ) is not None:
                # There's more than a single asterisk in the request uri
                raise BadRequest()
            else:
                return Response(status=200,
                                headers=[("Allow", "GET, HEAD, OPTIONS")])

            req_mbid = shift_path_info(request.environ)
            self.validate_mbid(req_mbid)

            image_id = shift_path_info(request.environ)

            if image_id and image_id is not None:
                image_id = splitext(image_id)[0]
                _split = image_id.split('-')
                if len(_split) > 0:
                    id_text = _split[0]

                try:
                    int(id_text)
                except ValueError:
                    if id_text not in ('front', 'back'):
                        raise BadRequest()
                    else:
                        get_sentry().captureException()

                if len(_split) > 1:
                    size = _split[1]
                    if size not in ('250', '500'):
                        raise BadRequest()

        return Response(status=200, headers=[("Allow", "GET, HEAD, OPTIONS")])
示例#12
0
    def handle_options(self, request, entity):
        """Repond to OPTIONS requests with a status code of 200 and the allowed
        request methods.
        """
        if request.environ["SERVER_PROTOCOL"] != "HTTP/1.1":
            # OPTIONS does not exist in HTTP/1.0
            raise NotImplemented()
        if entity:
            if not entity == '*':
                self.validate_entity(entity)
            elif pop_path_info(request.environ) is not None:
                # There's more than a single asterisk in the request uri
                raise BadRequest()
            else:
                return Response(status=200, headers=[("Allow", "GET, HEAD, OPTIONS")])

            req_mbid = shift_path_info(request.environ)
            self.validate_mbid(req_mbid)

            image_id = shift_path_info(request.environ)

            if image_id and image_id is not None:
                image_id = splitext(image_id)[0]
                _split = image_id.split('-')
                if len(_split) > 0:
                    id_text = _split[0]

                try:
                    int(id_text)
                except ValueError:
                    if id_text not in ('front', 'back'):
                        raise BadRequest()
                    else:
                        get_sentry().captureException()

                if len(_split) > 1:
                    size = _split[1]
                    if size not in ('250', '500', '1200'):
                        raise BadRequest()

        return Response(status=200, headers=[("Allow", "GET, HEAD, OPTIONS")])