diff options
Diffstat (limited to 'module/plugins/internal/UnZip.py')
-rw-r--r-- | module/plugins/internal/UnZip.py | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/module/plugins/internal/UnZip.py b/module/plugins/internal/UnZip.py deleted file mode 100644 index 5ec56cbdf..000000000 --- a/module/plugins/internal/UnZip.py +++ /dev/null @@ -1,86 +0,0 @@ -# -*- coding: utf-8 -*- - -from __future__ import with_statement - -import sys -import zipfile - -from module.plugins.internal.Extractor import Extractor, ArchiveError, CRCError, PasswordError - - -class UnZip(Extractor): - __name__ = "UnZip" - __version__ = "1.01" - - __description__ = """Zip extractor plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - EXTENSIONS = ["zip", "zip64"] - - - @classmethod - def checkDeps(cls): - return sys.version_info[:2] >= (2, 6) - - - @classmethod - def isArchive(cls, file): - return zipfile.is_zipfile(file) - - - def verify(self): - try: - with zipfile.ZipFile(self.file, 'r', allowZip64=True) as z: - z.setpassword(self.password) - badcrc = z.testzip() - - except (BadZipfile, LargeZipFile), e: - raise ArchiveError(e) - - except RuntimeError, e: - if 'encrypted' in e: - raise PasswordError - else: - raise ArchiveError(e) - - else: - if badcrc: - raise CRCError - - if not self.list(): - raise ArchiveError("Empty archive") - - - def list(self): - try: - with zipfile.ZipFile(self.file, 'r', allowZip64=True) as z: - z.setpassword(self.password) - return z.namelist() - except Exception: - return list() - - - def extract(self, progress=lambda x: None): - try: - with zipfile.ZipFile(self.file, 'r', allowZip64=True) as z: - progress(0) - z.extractall(self.out, pwd=self.password) - progress(100) - - except (BadZipfile, LargeZipFile), e: - raise ArchiveError(e) - - except RuntimeError, e: - if e is "Bad password for file": - raise PasswordError - else: - raise ArchiveError(e) - - finally: - self.files = self.list() - - - def getDeleteFiles(self): - return [self.file] |