summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hooks')
-rw-r--r--module/plugins/hooks/ExtractArchive.py20
-rw-r--r--module/plugins/hooks/Premium4Me.py46
-rw-r--r--module/plugins/hooks/RehostTo.py4
-rw-r--r--module/plugins/hooks/UpdateManager.py10
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)