summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorGravatar AndroKev <neureither.kevin@gmail.com> 2013-10-27 17:42:19 +0100
committerGravatar AndroKev <neureither.kevin@gmail.com> 2013-10-27 17:42:19 +0100
commit5b71ec94fabd87c267f1dea446c53ef786e1b8f7 (patch)
tree9bbd92112a7942dbacbcf9941c40d0739f94c362 /module
parentNew hoster and folder: DuploadOrg (diff)
downloadpyload-5b71ec94fabd87c267f1dea446c53ef786e1b8f7.tar.xz
ExtractArchives - add an option to excludefiles
Diffstat (limited to 'module')
-rw-r--r--module/plugins/hooks/ExtractArchive.py9
-rw-r--r--module/plugins/internal/AbstractExtractor.py7
-rw-r--r--module/plugins/internal/UnRar.py8
3 files changed, 15 insertions, 9 deletions
diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py
index 2cb546fbb..704ef3c6e 100644
--- a/module/plugins/hooks/ExtractArchive.py
+++ b/module/plugins/hooks/ExtractArchive.py
@@ -59,7 +59,7 @@ class ExtractArchive(Hook):
Provides: unrarFinished (folder, filename)
"""
__name__ = "ExtractArchive"
- __version__ = "0.15"
+ __version__ = "0.16"
__description__ = "Extract different kind of archives"
__config__ = [("activated", "bool", "Activated", True),
("fullpath", "bool", "Extract full path", True),
@@ -68,11 +68,12 @@ class ExtractArchive(Hook):
("deletearchive", "bool", "Delete archives when done", False),
("subfolder", "bool", "Create subfolder for each package", False),
("destination", "folder", "Extract files to", ""),
+ ("excludefiles", "str", "Exclude files from unpacking(seperated by ;)", "nfo;log"),
("recursive", "bool", "Extract archives in archvies", True),
("queue", "bool", "Wait for all downloads to be finished", True),
("renice", "int", "CPU Priority", 0)]
- __author_name__ = ("pyload Team")
- __author_mail__ = ("admin<at>pyload.org")
+ __author_name__ = ("pyload Team", "AndroKev")
+ __author_mail__ = ("admin<at>pyload.org", "@pyloadforum")
event_list = ["allDownloadsProcessed"]
@@ -177,7 +178,7 @@ class ExtractArchive(Hook):
continue
extracted.append(target) # prevent extracting same file twice
- klass = plugin(self, target, out, self.getConfig("fullpath"), self.getConfig("overwrite"),
+ klass = plugin(self, target, out, self.getConfig("fullpath"), self.getConfig("overwrite"), self.getConfig("excludefiles"),
self.getConfig("renice"))
klass.init()
diff --git a/module/plugins/internal/AbstractExtractor.py b/module/plugins/internal/AbstractExtractor.py
index 2130f910e..2ba2f2edf 100644
--- a/module/plugins/internal/AbstractExtractor.py
+++ b/module/plugins/internal/AbstractExtractor.py
@@ -27,10 +27,10 @@ class AbtractExtractor:
raise NotImplementedError
- def __init__(self, m, file, out, fullpath, overwrite, renice):
+ def __init__(self, m, file, out, fullpath, overwrite, excludefiles, renice):
"""Initialize extractor for specific file
- :param m: ExtractArchive Hook plugin
+ :param m: Extracd pylctArchive Hook plugin
:param file: Absolute filepath
:param out: Absolute path to destination directory
:param fullpath: extract to fullpath
@@ -42,6 +42,7 @@ class AbtractExtractor:
self.out = out
self.fullpath = fullpath
self.overwrite = overwrite
+ self.excludefiles = excludefiles
self.renice = renice
self.files = [] # Store extracted files here
@@ -90,4 +91,4 @@ class AbtractExtractor:
def getExtractedFiles(self):
"""Populate self.files at some point while extracting"""
- return self.files \ No newline at end of file
+ return self.files
diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py
index da8e7cf3d..00f15791a 100644
--- a/module/plugins/internal/UnRar.py
+++ b/module/plugins/internal/UnRar.py
@@ -29,7 +29,7 @@ from module.plugins.internal.AbstractExtractor import AbtractExtractor, WrongPas
class UnRar(AbtractExtractor):
__name__ = "UnRar"
- __version__ = "0.13"
+ __version__ = "0.14"
# there are some more uncovered rar formats
re_splitfile = re.compile(r"(.*)\.part(\d+)\.rar$", re.I)
@@ -185,6 +185,11 @@ class UnRar(AbtractExtractor):
args = []
#overwrite flag
args.append("-o+") if self.overwrite else args.append("-o-")
+
+ if self.excludefiles != "":
+ for word in self.excludefiles.split(';'):
+ args.append("-x*" + word)
+
# assume yes on all queries
args.append("-y")
@@ -195,7 +200,6 @@ class UnRar(AbtractExtractor):
else:
args.append("-p-")
-
#NOTE: return codes are not reliable, some kind of threading, cleanup whatever issue
call = [self.CMD, command] + args + list(xargs)
self.m.logDebug(" ".join(call))