summaryrefslogtreecommitdiff
path: root/Pb
diff options
context:
space:
mode:
Diffstat (limited to 'Pb')
-rwxr-xr-xPb/Breaker/__init__.py20
-rw-r--r--Pb/Params/__init__.py4
-rw-r--r--Pb/__init__.py27
3 files changed, 29 insertions, 22 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):