diff options
Diffstat (limited to 'module/plugins/hooks')
-rw-r--r-- | module/plugins/hooks/ExtractArchive.py | 20 | ||||
-rw-r--r-- | module/plugins/hooks/Premium4Me.py | 46 | ||||
-rw-r--r-- | module/plugins/hooks/RehostTo.py | 4 | ||||
-rw-r--r-- | module/plugins/hooks/UpdateManager.py | 10 |
4 files changed, 67 insertions, 13 deletions
diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py index 53f88b3a5..12bd40d1b 100644 --- a/module/plugins/hooks/ExtractArchive.py +++ b/module/plugins/hooks/ExtractArchive.py @@ -24,7 +24,8 @@ if sys.version_info < (2, 7) and os.name != "nt": continue raise - def wait(self): + # unsued timeout option for older python version + def wait(self, timeout=0): """Wait for child process to terminate. Returns returncode attribute.""" if self.returncode is None: @@ -56,7 +57,7 @@ class ExtractArchive(Hook): Provides: unrarFinished (folder, filename) """ __name__ = "ExtractArchive" - __version__ = "0.1" + __version__ = "0.12" __description__ = "Extract different kind of archives" __config__ = [("activated", "bool", "Activated", True), ("fullpath", "bool", "Extract full path", True), @@ -65,7 +66,8 @@ class ExtractArchive(Hook): ("deletearchive", "bool", "Delete archives when done", False), ("subfolder", "bool", "Create subfolder for each package", False), ("destination", "folder", "Extract files to", ""), - ("queue", "bool", "Wait for all downloads to be fninished", True), + ("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") @@ -157,6 +159,7 @@ class ExtractArchive(Hook): makedirs(out) files_ids = [(save_join(dl, p.folder, x["name"]), x["id"]) for x in p.getChildren().itervalues()] + matched = False # check as long there are unseen files while files_ids: @@ -164,7 +167,9 @@ class ExtractArchive(Hook): for plugin in self.plugins: targets = plugin.getTargets(files_ids) - if targets: self.logDebug("Targets for %s: %s" % (plugin.__name__, targets)) + if targets: + self.logDebug("Targets for %s: %s" % (plugin.__name__, targets)) + matched = True for target, fid in targets: if target in extracted: self.logDebug(basename(target), "skipped") @@ -184,11 +189,14 @@ class ExtractArchive(Hook): if not exists(file): self.logDebug("new file %s does not exists" % file) continue - if isfile(file): + if self.getConfig("recursive") and isfile(file): new_files_ids.append((file, fid)) #append as new target files_ids = new_files_ids # also check extracted files + if not matched: self.logInfo(_("No files found to extract")) + + def startExtracting(self, plugin, fid, passwords, thread): pyfile = self.core.files.getFile(fid) @@ -303,4 +311,4 @@ class ExtractArchive(Hook): gid = getgrnam(self.config["permission"]["group"])[2] chown(f, uid, gid) except Exception, e: - self.log.warning(_("Setting User and Group failed"), e)
\ No newline at end of file + self.log.warning(_("Setting User and Group failed"), e) diff --git a/module/plugins/hooks/Premium4Me.py b/module/plugins/hooks/Premium4Me.py new file mode 100644 index 000000000..fc3ce2343 --- /dev/null +++ b/module/plugins/hooks/Premium4Me.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*-
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+class Premium4Me(MultiHoster):
+ __name__ = "Premium4Me"
+ __version__ = "0.02"
+ __type__ = "hook"
+
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for downloads from supported hosters:", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", "")]
+ __description__ = """premium4.me hook plugin"""
+ __author_name__ = ("RaNaN", "zoidberg")
+ __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz")
+
+ replacements = [("freakshare.net", "freakshare.com")]
+
+ def getHoster(self):
+
+ page = getURL("http://premium4.me/api/hosters.php?authcode=%s" % self.account.authcode)
+ hosters = set([x.strip() for x in page.replace("\"", "").split(";")])
+
+ configMode = self.getConfig('hosterListMode')
+ if configMode in ("listed", "unlisted"):
+ configList = set(self.getConfig('hosterList').strip().lower().replace(',','|').split('|'))
+ configList.discard(u'')
+ if configMode == "listed":
+ hosters &= configList
+ elif configMode == "unlisted":
+ hosters -= configList
+
+ return list(hosters)
+
+ def coreReady(self):
+
+ self.account = self.core.accountManager.getAccountPlugin("Premium4Me")
+
+ user = self.account.selectAccount()[0]
+
+ if not user:
+ self.logError(_("Please add your premium4.me account first and restart pyLoad"))
+ return
+
+ return MultiHoster.coreReady(self)
\ No newline at end of file diff --git a/module/plugins/hooks/RehostTo.py b/module/plugins/hooks/RehostTo.py index 34bcbf4c7..b16987f5c 100644 --- a/module/plugins/hooks/RehostTo.py +++ b/module/plugins/hooks/RehostTo.py @@ -5,7 +5,7 @@ from module.plugins.internal.MultiHoster import MultiHoster class RehostTo(MultiHoster): __name__ = "RehostTo" - __version__ = "0.4" + __version__ = "0.41" __type__ = "hook" __config__ = [("activated", "bool", "Activated", "False")] @@ -24,7 +24,7 @@ class RehostTo(MultiHoster): def coreReady(self): - self.account = self.core.accountManager.loadClass("accounts", "RehostTo") + self.account = self.core.accountManager.getAccountPlugin("RehostTo") user = self.account.selectAccount()[0] diff --git a/module/plugins/hooks/UpdateManager.py b/module/plugins/hooks/UpdateManager.py index d0c7f213d..230a6e858 100644 --- a/module/plugins/hooks/UpdateManager.py +++ b/module/plugins/hooks/UpdateManager.py @@ -15,7 +15,6 @@ along with this program; if not, see <http://www.gnu.org/licenses/>. @author: RaNaN - @interface-version: 0.1 """ import sys @@ -30,7 +29,7 @@ from module.plugins.Hook import threaded, Expose, Hook class UpdateManager(Hook): __name__ = "UpdateManager" - __version__ = "0.1" + __version__ = "0.12" __description__ = """checks for updates""" __config__ = [("activated", "bool", "Activated", "True"), ("interval", "int", "Check interval in minutes", "360"), @@ -129,6 +128,7 @@ class UpdateManager(Hook): else: name = filename.replace(".py", "") + #TODO: obsolete if prefix.endswith("s"): type = prefix[:-1] else: @@ -165,7 +165,7 @@ class UpdateManager(Hook): f.close() self.updated = True - reloads.append((type, name)) + reloads.append((prefix, name)) self.reloaded = self.core.pluginManager.reloadPlugins(reloads) @@ -176,7 +176,7 @@ class UpdateManager(Hook): self.last_check = time() modules = filter( - lambda m: m and (m.__name__.startswith("module.plugins.") or m.__name__.startswith("userplugins.")), + lambda m: m and (m.__name__.startswith("module.plugins.") or m.__name__.startswith("userplugins.")) and m.__name__.count(".") >= 2, sys.modules.itervalues()) reloads = [] @@ -196,4 +196,4 @@ class UpdateManager(Hook): reloads.append(id) self.mtimes[id] = mtime - self.core.pluginManager.reloadPlugins(reloads)
\ No newline at end of file + self.core.pluginManager.reloadPlugins(reloads) |