summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xPb/Breaker/__init__.py20
-rw-r--r--Pb/Params/__init__.py4
-rw-r--r--Pb/__init__.py27
-rwxr-xr-xpbserver.py7
4 files changed, 33 insertions, 25 deletions
diff --git a/Pb/Breaker/__init__.py b/Pb/Breaker/__init__.py
index 14e33b5..2d2f573 100755
--- a/Pb/Breaker/__init__.py
+++ b/Pb/Breaker/__init__.py
@@ -17,28 +17,32 @@ HEADER_OFFSET = 2000
class Breaker(Pb):
def __init__(self, url=None, breaktype=None, finalformat=DEFAULT_FINALFORMAT,
- breakmode=None, breakangle=None, username=None, expanded=None):
+ breakmode=None, breakangle=None, username=None, expanded=None, firsttime=None):
super(Breaker,self).__init__();
self.params.breaktype = self._get_breaktype(breaktype);
self.params.url = url
_frame = inspect.currentframe();
- _args_vals = inspect.getargvalues(frame);
+ _args_vals = inspect.getargvalues(_frame);
for arg in _args_vals.args:
- if arg not in ['breaktype', 'url']:
- self.params.__setattr__(arg, self.bool_correct(_args_vals.locals[arg]))
-
- self.params = Params(**self.params);
+ if arg == "self":
+ continue
+ try:
+ if arg not in ['breaktype', 'url']:
+ self.params.__setattr__(arg, self.bool_correct(str(_args_vals.locals.get(arg))))
+ except Exception as e:
+ sys.stderr.write("\n"+str(e)+"\n")
self.tag = "imBreak"
self.commands = [];
self._now = self.now()
self.files_created = []
- self.basename, self._first_format = self._get_filename_and_type_from_url();
+ self.basename, self._first_format = self._get_filename_and_type_from_url(self.params.url);
self._downloaded_file = self.tempname_create(basename=self.basename, fmt=self._first_format)
+
try:
self.download(self.params.url, self._downloaded_file)
self.files_created.append(self._downloaded_file)
@@ -60,7 +64,7 @@ class Breaker(Pb):
self._conversion_file = self.tempname_create(basename=self.basename, fmt=self.params.breaktype);
def _call_cmd(self, cmd):
- super(Breaker,self)._call_cmd(cmd, error)
+ super(Breaker,self)._call_cmd(cmd)
self.commands.append(" ".join(cmd));
def _get_breaktype(self, key):
diff --git a/Pb/Params/__init__.py b/Pb/Params/__init__.py
index 114b117..2285e7a 100644
--- a/Pb/Params/__init__.py
+++ b/Pb/Params/__init__.py
@@ -4,5 +4,7 @@ class Params(object):
setattr(self, key, value)
def __getattr__(self, attr):
return self.get(attr, None)
-
+ def __iter__(self):
+ for key, value in vars(self).iteritems():
+ yield key, value
diff --git a/Pb/__init__.py b/Pb/__init__.py
index 5e5aa65..909f03b 100644
--- a/Pb/__init__.py
+++ b/Pb/__init__.py
@@ -48,14 +48,16 @@ class Pb(object):
except (ValueError, TypeError):
return False
- @staticmethod
- def bool_correct(s):
- if re.match(r'^false$', s, re.IGNORECASE):
- return False
- elif re.match(r'^true$', s, re.IGNORECASE):
- return True
- else:
- return s
+ def bool_correct(self, s):
+ try:
+ if re.match(r'^false$', str(s), re.IGNORECASE):
+ return False
+ elif re.match(r'^true$', str(s), re.IGNORECASE):
+ return True
+ else:
+ return s
+ except Exception as e:
+ sys.stderr.write("WHAT THE FUCK")
@staticmethod
def get_mimetype(f):
@@ -69,8 +71,7 @@ class Pb(object):
sys.stderr.write(str(e))
raise;
- @staticmethod
- def sanitize (s):
+ def sanitize (self, s):
return re.sub(r'\W+', '', s)
@staticmethod
@@ -140,11 +141,11 @@ class Pb(object):
def _get_filename_and_type_from_url (self, url):
name = re.sub(r'(?:\s|\?.*|.*/)', '', urllib.unquote(url));
try:
- basename, ext = map(lambda s: self.santize(s), re.search(r'(^.*)\.(.*$)', name).groups());
+ basename, ext = map(lambda s: self.sanitize(s), re.search(r'(^.*)\.(.*$)', name).groups());
except Exception as e:
self.err_warn("Incompatible input file type")
- if (len(name_part) > 20):
- name_part = name_part[:-20]
+ if (len(basename) > 20):
+ basename = basename[:-20]
return "{}{}_{}_{}".format(self.tag, basename, self._now, self.params.username or ""), ext
def random_string_create(self):
diff --git a/pbserver.py b/pbserver.py
index d1fcc32..a1da5d5 100755
--- a/pbserver.py
+++ b/pbserver.py
@@ -69,13 +69,13 @@ def format_im_data(im, insert_url="NULL"):
db.insert_cmd(
date=im._now,
remote_addr=request.environ.get('REMOTE_ADDR', "NULL"),
- username=im.params.get('username', "NULL"),
+ username=im.params.username or "NULL",
url=insert_url,
directory=directory,
oldfile="NULL",
newfile=im.filename,
dataobj=";".join(im.commands),
- cmd=json.dumps(im.params),
+ cmd=json.dumps(dict(im.params)),
tag=im.tag,
)
return json.dumps({
@@ -85,6 +85,7 @@ def format_im_data(im, insert_url="NULL"):
'height' : "{}px".format(dimensions[1]),
})
except Exception as e:
+ sys.stderr.write("Problem sending to database or s3\n")
sys.stderr.write(str(e))
raise;
@@ -141,7 +142,7 @@ def breaker():
try:
im = Breaker(**(dict(request.forms)))
im.create();
- return return_image(im, im.params['url'])
+ return return_image(im, im.params.url)
except Exception as e:
sys.stderr.write(str(e))
return json.dumps({ 'error' : 'Request could not be processed' })