diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rwxr-xr-x | gradient.py | 7 | ||||
| -rwxr-xr-x | imgrid.py | 9 | ||||
| -rwxr-xr-x | pbserver.py | 2 |
4 files changed, 17 insertions, 4 deletions
@@ -1,2 +1,5 @@ ./s3config.py ./db.py +*.swp +*.swo +*.pyc diff --git a/gradient.py b/gradient.py index 6d2e15f..4d01f9b 100755 --- a/gradient.py +++ b/gradient.py @@ -18,6 +18,11 @@ import sha #logger.setLevel(logging.WARNING)
#}}}
+def is_color(s):
+ if re.match('(rgba?\([0-9]+,[0-9]+,[0-9]+\))|([a-zA-Z]+)|(\#[A-Ha-h0-9]+)', s):
+ return s
+ else:
+ raise ValueError
PARAM_LIST = [
"width", "height",
"color1", "color2",
@@ -98,7 +103,7 @@ class Gradient: for key in PARAM_LIST:
if key in form:
if key in ['color1', 'color2']:
- params[key] = form[key]
+ params[key] = is_color(form[key])
else:
params[key] = sanitize(form[key])
@@ -31,6 +31,11 @@ DEFAULT_LINE_COLOR = "silver" DEFAULT_FINALFORMAT = "png" #{{{Utility functions +def is_color(s): + if re.match('(rgba?\([0-9]+,[0-9]+,[0-9]+\))|([a-zA-Z]+)|(\#[A-Ha-h0-9]+)', s): + return s + else: + raise ValueError def bool_correct(s): if re.match(r'^false$', s, re.IGNORECASE): return False @@ -169,8 +174,8 @@ class Imgrid(): except Exception as e: sys.stderr.write(str(e)) raise; - elif k in [ 'bgcolor', 'planebgcolor' ]: - self.params[k] = params[k] + elif k in [ 'bgcolor', 'planebgcolor','linecolor' ]: + self.params[k] = is_color(params[k]) elif k == 'opacity': self.params[k] = str(float(params[k])) elif k == 'zoom': diff --git a/pbserver.py b/pbserver.py index 9f2a209..5501f54 100755 --- a/pbserver.py +++ b/pbserver.py @@ -154,7 +154,7 @@ def pattern(): try: im = Pattern(request.forms) im.create(); - return return_image(im, im.params['url']) + return return_image(im, im.params['image_url']) except Exception as e: sys.stderr.write(str(e)) sys.stderr.write("imgradient failure\n") |
