diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-09-22 20:28:06 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-09-22 20:28:06 -0700 |
| commit | 301fc6b40e2465e26981e299838c7d58d0bbeb2c (patch) | |
| tree | 8c7b141f3396b5c0b26aa08161e0b47e04b894a7 /lib | |
| parent | 87f7b452be8e9e2a59f178236a510747739c4a37 (diff) | |
ok it works!
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Param/Bool/__init__.py | 3 | ||||
| -rw-r--r-- | lib/Param/String/__init__.py | 5 | ||||
| -rw-r--r-- | lib/Pb/__init__.py | 3 | ||||
| -rw-r--r-- | lib/Server/__init__.py | 33 |
4 files changed, 26 insertions, 18 deletions
diff --git a/lib/Param/Bool/__init__.py b/lib/Param/Bool/__init__.py index 8ccca00..7b779cb 100644 --- a/lib/Param/Bool/__init__.py +++ b/lib/Param/Bool/__init__.py @@ -1,5 +1,6 @@ from Param import Param import re +import sys class ParamBool(Param): def __init__(self, value, classname=""): super(ParamBool, self).__init__(classname=classname) @@ -8,7 +9,7 @@ class ParamBool(Param): else: self.value = False def _bool_correct(self, b): - if type(b) == str: + if type(b) == str or type(b) == unicode: if re.match(r'true', b, re.IGNORECASE): return True elif re.match(r'false', b, re.IGNORECASE): diff --git a/lib/Param/String/__init__.py b/lib/Param/String/__init__.py index df65c9d..8f08e49 100644 --- a/lib/Param/String/__init__.py +++ b/lib/Param/String/__init__.py @@ -1,6 +1,6 @@ from Param import Param import re - +import sys class ParamString(Param): def __init__(self, value, classname=""): super(ParamString, self).__init__(classname=classname) @@ -8,8 +8,7 @@ class ParamString(Param): try: self.value = self.sanitize(value) except Exception as e: - self.err_warn("Unable to sanitize: %s" % str(value)) - self.err_warn(str(e)) + self.err_warn("Unable to sanitize: %s\nreason:%s" % (str(value), str(e))) else: self.value = "" def sanitize (self, s): diff --git a/lib/Pb/__init__.py b/lib/Pb/__init__.py index 1b3c79e..bfb9d36 100644 --- a/lib/Pb/__init__.py +++ b/lib/Pb/__init__.py @@ -165,10 +165,9 @@ class Pb(object): 'oldfile' : None, 'newfile' : self.filename, 'dataobj' : json.dumps(dict(self._input_kwargs)), - 'cmd' : ";".join(self.commands), + 'cmd' : "; ".join(self.commands), 'tag' : self._tag, } - sys.stderr.write(str(_insert_data)) db.insert_cmd(**_insert_data) except Exception as e: self.err_warn("Problem sending to database:\n %s" % str(e)) diff --git a/lib/Server/__init__.py b/lib/Server/__init__.py index c3688c2..6e6d8a7 100644 --- a/lib/Server/__init__.py +++ b/lib/Server/__init__.py @@ -1,5 +1,5 @@ from flask import Flask -from flask import abort, redirect, url_for +from flask import abort, redirect, url_for, request, jsonify import sys, os sys.path.append("./lib") from Pb import * @@ -8,9 +8,9 @@ from Server.InvalidUsage import InvalidUsage class Server(object): def __init__(self): self.app = Flask(__name__) - @self.app.route('/im/pb/<pb_classname>', methods=['POST']) - def pb(): - self._response_post(pb_classname, request) + @self.app.route('/<pb_classname>', methods=['POST']) + def pb(pb_classname): + return self._response_post(pb_classname, request.form.to_dict()) @self.app.errorhandler(InvalidUsage) def handle_invalid_usage(error): @@ -21,29 +21,38 @@ class Server(object): self._classname_aliases = { 'generate' : 'PbGenerate', 'imgrid' : 'PbGrid', + 'imbreak' : 'PbBreak', + 'impattern' : 'PbPattern', + 'imgradient' : 'PbGradient', + 'landscape' : 'PbLandscape', } + def _find_class_by_name(self, pb_classname): pb_classname = self._classname_aliases.get(pb_classname, None) or pb_classname try: - filter(lambda c: c.__name__ == pb_classname, Pb.__subclasses__())[0] + return filter(lambda c: c.__name__ == pb_classname, Pb.__subclasses__())[0] except IndexError: raise InvalidUsage('No such api', status_code=410) - def _response_post(self, pb_classname, request): + def _response_post(self, pb_classname, request_form): pb_class = self._find_class_by_name(pb_classname) classnames = map(lambda c: c.__name__, Pb.__subclasses__()) try: - im = pb_class(**(dict(request.forms))) - im.create(); - return im.file_json(); + pb = pb_class(**request_form) + pb.create(); + pb.file_s3move() + pb.db_send(); + return pb.file_json(); + #FIXME handle BadParamsError and PbError separately except Exception as e: sys.stderr.write("%s failure" % pb_class.__name__) sys.stderr.write("params:\n") - for i in request.forms: - sys.stderr.write("{}:{}\n".format(i, request.forms[i])) + sys.stderr.write(str(e)) + for i in request_form.keys(): + sys.stderr.write("{}:{}\n".format(i, request_form[i])) raise; - return json.dumps({ 'error' : 'Request could not be processed' }) + return jsonify({ 'error' : 'Request could not be processed' }) def run(self): self.app.run() |
