diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-04-30 15:08:01 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-04-30 15:08:01 -0700 |
| commit | 03f45bb4225740f2ebe4adfd8de24f67d33ee0e3 (patch) | |
| tree | f555265c798f7d1dff25315e79eb90055f4bab74 /gradient.py | |
| parent | da8255b0ad5703837c315c082a6f69edc47754a7 (diff) | |
good
Diffstat (limited to 'gradient.py')
| -rwxr-xr-x | gradient.py | 103 |
1 files changed, 35 insertions, 68 deletions
diff --git a/gradient.py b/gradient.py index 991f853..68de55b 100755 --- a/gradient.py +++ b/gradient.py @@ -5,26 +5,11 @@ from subprocess import call import simplejson as json
import sys
import os
-import db
import sha
+import lib.utils as utils
+from config import *
-#{{{ logging
-#import logging
-#logger = logging.getLogger('gradient')
-#logging.FileHandler('/var/www/cache/gradient.log')
-#formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
-#hdlr.setFormatter(formatter)
-#logger.addHandler(hdlr)
-#logger.setLevel(logging.WARNING)
-#}}}
-def is_color(s):
- if s == "":
- return "transparent"
- if re.match('(rgba?\([0-9]+,[0-9]+,[0-9]+\))|([a-zA-Z]+)|(\#[A-Ha-h0-9]+)', s):
- return s.replace(' ','')
- else:
- raise ValueError
PARAM_LIST = [
"width", "height",
"color1", "color2",
@@ -40,20 +25,14 @@ PARAM_LIST = [ "gradienttype",
"username",
]
-BIN_CONVERT = "/usr/bin/convert"
-BIN_IDENTIFY = "/usr/bin/identify"
-BEVELBORDER = "./bevelborder"
DEFAULT_FORMAT = "png"
DEFAULT_COLORS = {
"color1" : "white",
"color2" : "black",
};
-#WORKING_DIR = '/tmp'
-WORKING_DIR = '/var/www/cache'
DEFAULT_WIDTH = "200"
DEFAULT_HEIGHT = "200"
-
DEFAULT_BEVEL_PERCENT = "12";
HALFTONEVALUES = {
@@ -65,36 +44,9 @@ HALFTONEVALUES = { "flatstripes": "o2x2",
}
-TEST_FORM = {
- "width" : "200",
- "color1" : "#ffdead",
- "color2" : "blue",
- "stripes" : "true",
- "stripenumber" : "20",
- "gradienttype" : "radial",
- "stripeintensity" : "20",
- "halftone" : "checkeredfade",
- "percentbeveled" : "30",
- "flip" : "true",
- "bevel" : "flatinner",
- "rotate" : "20",
- "height" : "200",
- "filetype" : "jpg",
- "username" : "whatever"
-}
-
-def sanitize (s):
- return re.sub(re.compile(r'\W+'), '', s)
-
-def is_number(s):
- try:
- return int(s)
- except (ValueError, TypeError):
- return False
class Gradient:
- def __init__(self, form):
- self.now = int(time.time())
+ def __init__(self, **kwargs):
self.tag = "imGradient"
self.directory = WORKING_DIR
self.commands = []
@@ -103,20 +55,20 @@ class Gradient: params = {}
for key in PARAM_LIST:
- if key in form:
+ if key in kwargs:
if key in ['color1', 'color2']:
- params[key] = is_color(form[key])
+ params[key] = utils.is_color(kwargs[key])
else:
- params[key] = sanitize(form[key])
+ params[key] = utils.sanitize(kwargs[key])
if key in ['rotate','tilt','blurriness','stripenumber','stripeintensity']:
- params[key] = params[key] if is_number(params[key]) else ""
+ params[key] = params[key] if utils.is_number(params[key]) else ""
elif key in ['brightness', 'contrast', 'hue']:
- if not is_number(params[key]) or params[key] == "100": params[key] = ""
+ if not utils.is_number(params[key]) or params[key] == "100": params[key] = ""
else:
params[key] = ""
- params['width'] = params['width'] if is_number(params['width']) else DEFAULT_WIDTH
- params['height'] = params['height'] if is_number(params['height']) else DEFAULT_HEIGHT
+ params['width'] = params['width'] if utils.is_number(params['width']) else DEFAULT_WIDTH
+ params['height'] = params['height'] if utils.is_number(params['height']) else DEFAULT_HEIGHT
params["color1"] = params["color1"] or DEFAULT_COLORS["color1"];
params["color2"] = params["color2"] or DEFAULT_COLORS["color2"];
self.params = params
@@ -125,25 +77,24 @@ class Gradient: "flatout", "flatinner", "evenlyframed", "biginner",
"bigouter", "dramaticflatout", "dramaticflatinner",
]
+
def newfilename(self):
return "{}{}-{}_{}_{}.{}".format(
self.tag,
self.params['color1'].replace('#','').replace('(','-').replace(')','-'),
self.params['color2'].replace('#','').replace('(','-').replace(')','-'),
- self.now,
+ utils.now(),
self.params['username'],
self.params['filetype'] or DEFAULT_FORMAT,
)
- def _call_cmd(self, cmd, error=""):
+ def _call_cmd(self, cmd):
try:
- call(cmd)
+ utils.call_cmd(cmd)
self.commands.append(" ".join(cmd));
- except Exception as e:
- if error:
- sys.stderr.write(error)
- else:
- sys.stderr.write(str(e))
+ except Exception:
+ raise Exception("Unable to call cmd {}".format(str(cmd)))
+
def _build_cmd(self):
cmd = [BIN_CONVERT]
@@ -241,8 +192,24 @@ class Gradient: self._make_bevel()
if __name__ == "__main__":
- g = Gradient(TEST_FORM);
+ TEST_FORM = {
+ "width" : "200",
+ "color1" : "#ffdead",
+ "color2" : "blue",
+ "stripes" : "true",
+ "stripenumber" : "20",
+ "gradienttype" : "radial",
+ "stripeintensity" : "20",
+ "halftone" : "checkeredfade",
+ "percentbeveled" : "30",
+ "flip" : "true",
+ "bevel" : "flatinner",
+ "rotate" : "20",
+ "height" : "200",
+ "filetype" : "jpg",
+ "username" : "whatever"
+ }
+ g = Gradient(**TEST_FORM);
g.create();
- print g.now
print " ".join(g.commands)
print g.filename
|
