diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2011-10-14 20:54:06 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2011-10-14 20:54:06 +0200 |
commit | 0fcf2d26f00dbdd849be511fb5b657c4f505b6bc (patch) | |
tree | cebaad2676dbe6d37259baabdc07efd08b1a7a72 /module/plugins | |
parent | improved extract plugin (diff) | |
download | pyload-0fcf2d26f00dbdd849be511fb5b657c4f505b6bc.tar.xz |
simple unzip plugin
Diffstat (limited to 'module/plugins')
-rw-r--r-- | module/plugins/hooks/ExtractArchive.py | 5 | ||||
-rw-r--r-- | module/plugins/internal/UnZip.py | 49 |
2 files changed, 52 insertions, 2 deletions
diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py index 62d386c99..0489d1a0a 100644 --- a/module/plugins/hooks/ExtractArchive.py +++ b/module/plugins/hooks/ExtractArchive.py @@ -50,7 +50,7 @@ class ExtractArchive(Hook): self.passwords = [] names = [] - for p in ("UnRar",): + for p in ("UnRar", "UnZip"): try: module = self.core.pluginManager.getInternalModule(p) klass = getattr(module, p) @@ -166,13 +166,14 @@ class ExtractArchive(Hook): self.logDebug("Passwords: %s" % str(passwords)) for pw in passwords + self.getPasswords(): try: + self.logDebug("Try password: %s" % pw) if plugin.checkPassword(pw): plugin.extract(progress, pw) self.addPassword(pw) success = True break except WrongPassword: - self.logDebug("Tried wrong password %s" % pw) + self.logDebug("Password was wrong") if not success: self.logError(basename(plugin.file), _("Wrong password")) diff --git a/module/plugins/internal/UnZip.py b/module/plugins/internal/UnZip.py new file mode 100644 index 000000000..dc60c1041 --- /dev/null +++ b/module/plugins/internal/UnZip.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +""" + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. + + @author: RaNaN +""" + +import zipfile +import sys + +from module.plugins.hooks.ExtractArchive import AbtractExtractor + +class UnZip(AbtractExtractor): + __name__ = "UnZip" + __version__ = "0.1" + + @staticmethod + def checkDeps(): + return sys.version_info[:2] >= (2, 6) + + @staticmethod + def getTargets(files_ids): + result = [] + + for file, id in files_ids: + if file.endswith(".zip"): + result.append((file, id)) + + return result + + def extract(self, progress, password=None): + z = zipfile.ZipFile(self.file) + self.files = z.namelist() + z.extractall(self.out) + + def getDeleteFiles(self): + return [self.file]
\ No newline at end of file |