diff options
Diffstat (limited to 'Pb')
| -rwxr-xr-x | Pb/Breaker/__init__.py | 20 | ||||
| -rw-r--r-- | Pb/Params/__init__.py | 4 | ||||
| -rw-r--r-- | Pb/__init__.py | 27 |
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): |
