diff options
| author | yo mama <pepper@scannerjammer.com> | 2016-03-10 07:05:05 -0800 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2016-03-10 07:05:05 -0800 |
| commit | 74ea1ebc0eec045a783e0f7f63ef276b59b9112f (patch) | |
| tree | 2212bd749ac524944a1c6dee349295ffc5515a43 | |
| parent | 327b2d96da372814ba1be6eb84707358a9df37cc (diff) | |
errorserrors
| -rw-r--r-- | photoblaster/param/__init__.py | 2 | ||||
| -rw-r--r-- | photoblaster/param/base.py | 9 | ||||
| -rw-r--r-- | photoblaster/param/img_url.py | 14 | ||||
| -rw-r--r-- | photoblaster/server.py | 11 |
4 files changed, 23 insertions, 13 deletions
diff --git a/photoblaster/param/__init__.py b/photoblaster/param/__init__.py index f6d7e9c..a991f7b 100644 --- a/photoblaster/param/__init__.py +++ b/photoblaster/param/__init__.py @@ -1,5 +1,5 @@ """imports for the param package""" -from photoblaster.param.base import Param, BadParamError +from photoblaster.param.base import Param, BadParamError, FileTooBigError from photoblaster.param.int_ import Int from photoblaster.param.raw import Raw from photoblaster.param.bool_ import Bool diff --git a/photoblaster/param/base.py b/photoblaster/param/base.py index 31b6829..535488b 100644 --- a/photoblaster/param/base.py +++ b/photoblaster/param/base.py @@ -4,6 +4,11 @@ import sys from photoblaster.config import WORKING_DIR + +class FileTooBigError(Exception): + pass + + class BadParamError(Exception): pass @@ -52,6 +57,6 @@ class Param(object): def _error_log(self, s, fatal=False): message = "ERROR - BAD PARAM" - if fatal: message += "- [FATAL] -" + if fatal: + message += "- [FATAL] -" sys.stderr.write("{}:{} - {}\n".format(message, self._classname, s)) - diff --git a/photoblaster/param/img_url.py b/photoblaster/param/img_url.py index f85fa63..4a5fef8 100644 --- a/photoblaster/param/img_url.py +++ b/photoblaster/param/img_url.py @@ -1,5 +1,5 @@ """Img_url param class definition lives here""" -from photoblaster.param import Param +from photoblaster.param import Param, FileTooBigError from photoblaster.config import MAX_SIZE, SPECIAL_DOWNLOADERS,\ SPECIAL_DOWNLOADERS_MAX_SIZE,\ BIN_IDENTIFY @@ -94,11 +94,13 @@ class Img_url(Param): if len(rawimg) == 0: self.err_warn("got zero-length file") if len(rawimg) > max_size: - self.err_warn("file too big: max size {} KB / {} is {} KB".format( - str(MAX_SIZE/1024), - destination, - str(len(rawimg)/1024) - )) + raise FileTooBigError( + "file too big: max size {} KB / {} is {} KB".format( + str(MAX_SIZE/1024), + destination, + str(len(rawimg)/1024) + ) + ) f = open(destination, "w") f.write(rawimg) f.close() diff --git a/photoblaster/server.py b/photoblaster/server.py index 56cdd1b..802d8b1 100644 --- a/photoblaster/server.py +++ b/photoblaster/server.py @@ -11,7 +11,7 @@ import urllib2 from photoblaster.modules import Modules, PbProcessError from photoblaster.db.models.imcmd import ImCmd -from photoblaster.param import BadParamError +from photoblaster.param import BadParamError, FileTooBigError from photoblaster.config import SERVER_HOST, SERVER_PORT, STATIC_FOLDER, \ WORKING_DIR, LOCAL @@ -226,7 +226,7 @@ class Server(object): raise InvalidUsage('No such api', status_code=410) def _response_post(self, pb_classname, request_form, remote_addr=None): - #load plugins here + # load plugins here pb_class = self._find_class_by_name(pb_classname) try: pb = pb_class(**request_form) @@ -240,15 +240,18 @@ class Server(object): return "%s(%s)" % (pb.params.callback, json_data) return json_data + except FileTooBigError as error: + raise InvalidUsage(str(error), status_code=410) + except BadParamError: for i in request_form.keys(): sys.stderr.write('\'%s\':\'%s\'\n' % ( i, request_form[i] or None )) - return jsonify({'error': 'Bad Params'}) + raise InvalidUsage('Bad Params') except PbProcessError: sys.stderr.write(dict(request_form)) - return jsonify({'error': 'Problem with server-side processing'}) + raise InvalidUsage('Problem with server-side processing') def run(self, host=SERVER_HOST, port=SERVER_PORT): self.app.run(host=host, port=port, debug=True) |
