summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/addons
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-11-17 16:14:22 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-11-17 16:14:22 +0100
commit0b27b9690f626fff0f494b32093be5736c2d1b6b (patch)
treeedbe6c49c95c9fd3f1982048e7f5a1dad49937d2 /pyload/plugins/addons
parentfixed the plugin parser to handle multi line statements (diff)
parentMerge pull request #394 from vuolter/s/hoster/Keep2shareCC (diff)
downloadpyload-0b27b9690f626fff0f494b32093be5736c2d1b6b.tar.xz
Merge remote-tracking branch 'origin/stable'
Conflicts: module/config/default.conf module/plugins/accounts/DdlstorageCom.py module/plugins/accounts/RealdebridCom.py module/plugins/accounts/UploadheroCom.py module/plugins/crypter/DownloadVimeoCom.py module/plugins/crypter/FilebeerInfoFolder.py module/plugins/crypter/Movie2kTo.py module/plugins/hooks/AlldebridCom.py module/plugins/hooks/DebridItaliaCom.py module/plugins/hooks/MultishareCz.py module/plugins/hooks/Premium4Me.py module/plugins/hooks/PremiumizeMe.py module/plugins/hooks/RealdebridCom.py module/plugins/hooks/XFileSharingPro.py module/plugins/hooks/ZeveraCom.py module/plugins/hoster/ChipDe.py module/plugins/hoster/DdlstorageCom.py module/plugins/hoster/MovReelCom.py module/plugins/hoster/RyushareCom.py module/plugins/hoster/ShareRapidCom.py module/plugins/hoster/SpeedLoadOrg.py module/plugins/hoster/ZeveraCom.py module/web/media/default/css/default.css module/web/media/default/css/window.css module/web/templates/default/base.html module/web/templates/default/captcha.html module/web/templates/default/home.html module/web/templates/default/queue.html module/web/templates/default/window.html pyload/plugins/accounts/AlldebridCom.py pyload/plugins/accounts/Http.py pyload/plugins/accounts/MultishareCz.py pyload/plugins/accounts/Premium4Me.py pyload/plugins/accounts/PremiumizeMe.py pyload/plugins/accounts/ZeveraCom.py pyload/plugins/addons/Captcha9kw.py pyload/plugins/addons/CaptchaTrader.py pyload/plugins/addons/ClickAndLoad.py pyload/plugins/addons/Ev0InFetcher.py pyload/plugins/addons/ExternalScripts.py pyload/plugins/addons/ExtractArchive.py pyload/plugins/addons/HotFolder.py pyload/plugins/addons/MergeFiles.py pyload/plugins/addons/MultiHome.py pyload/plugins/addons/XMPPInterface.py pyload/plugins/crypter/C1neonCom.py pyload/plugins/crypter/CryptItCom.py pyload/plugins/crypter/ILoadTo.py pyload/plugins/crypter/LofCc.py pyload/plugins/crypter/NCryptIn.py pyload/plugins/crypter/OronComFolder.py pyload/plugins/crypter/RSLayerCom.py pyload/plugins/crypter/SecuredIn.py pyload/plugins/crypter/TrailerzoneInfo.py pyload/plugins/crypter/WiiReloadedOrg.py pyload/plugins/hoster/AlldebridCom.py pyload/plugins/hoster/BasePlugin.py pyload/plugins/hoster/CzshareCom.py pyload/plugins/hoster/DepositfilesCom.py pyload/plugins/hoster/EgoFilesCom.py pyload/plugins/hoster/FastshareCz.py pyload/plugins/hoster/FreakshareCom.py pyload/plugins/hoster/MegasharesCom.py pyload/plugins/hoster/MultishareCz.py pyload/plugins/hoster/MyvideoDe.py pyload/plugins/hoster/NetloadIn.py pyload/plugins/hoster/NovafileCom.py pyload/plugins/hoster/NowDownloadEu.py pyload/plugins/hoster/PornhostCom.py pyload/plugins/hoster/Premium4Me.py pyload/plugins/hoster/PremiumizeMe.py pyload/plugins/hoster/PutlockerCom.py pyload/plugins/hoster/RapidshareCom.py pyload/plugins/hoster/RealdebridCom.py pyload/plugins/hoster/ShareplaceCom.py pyload/plugins/hoster/TusfilesNet.py pyload/plugins/hoster/UnrestrictLi.py pyload/plugins/hoster/UploadedTo.py pyload/plugins/hoster/WebshareCz.py pyload/plugins/hoster/X7To.py pyload/plugins/hoster/XHamsterCom.py pyload/plugins/hoster/YoupornCom.py pyload/plugins/hoster/YourfilesTo.py pyload/plugins/hoster/YoutubeCom.py pyload/plugins/hoster/ZippyshareCom.py pyload/plugins/internal/SimpleCrypter.py pyload/plugins/internal/SimpleHoster.py
Diffstat (limited to 'pyload/plugins/addons')
-rw-r--r--pyload/plugins/addons/AlldebridCom.py29
-rwxr-xr-xpyload/plugins/addons/Captcha9kw.py7
-rw-r--r--pyload/plugins/addons/CaptchaTrader.py4
-rw-r--r--pyload/plugins/addons/ClickAndLoad.py6
-rw-r--r--pyload/plugins/addons/DebridItaliaCom.py42
-rw-r--r--pyload/plugins/addons/Ev0InFetcher.py12
-rw-r--r--pyload/plugins/addons/ExternalScripts.py13
-rw-r--r--pyload/plugins/addons/ExtractArchive.py18
-rw-r--r--pyload/plugins/addons/FastixRu.py27
-rw-r--r--pyload/plugins/addons/HotFolder.py4
-rw-r--r--pyload/plugins/addons/MergeFiles.py4
-rw-r--r--pyload/plugins/addons/MultiHome.py4
-rw-r--r--pyload/plugins/addons/MultishareCz.py24
-rw-r--r--pyload/plugins/addons/Premium4Me.py32
-rw-r--r--pyload/plugins/addons/PremiumizeMe.py52
-rw-r--r--pyload/plugins/addons/RPNetBiz.py47
-rw-r--r--pyload/plugins/addons/RealdebridCom.py26
-rw-r--r--pyload/plugins/addons/SimplydebridCom.py20
-rw-r--r--pyload/plugins/addons/WindowsPhoneToastNotify.py6
-rw-r--r--pyload/plugins/addons/XMPPInterface.py30
-rw-r--r--pyload/plugins/addons/ZeveraCom.py20
21 files changed, 362 insertions, 65 deletions
diff --git a/pyload/plugins/addons/AlldebridCom.py b/pyload/plugins/addons/AlldebridCom.py
new file mode 100644
index 000000000..d0e9b1f77
--- /dev/null
+++ b/pyload/plugins/addons/AlldebridCom.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+# should be working
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class AlldebridCom(MultiHoster):
+ __name__ = "AlldebridCom"
+ __version__ = "0.13"
+ __type__ = "hook"
+
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("https", "bool", "Enable HTTPS", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to stanard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+
+ __description__ = """Real-Debrid.com hook plugin"""
+ __author_name__ = ("Andy, Voigt")
+ __author_mail__ = ("spamsales@online.de")
+
+ def getHoster(self):
+ https = "https" if self.getConfig("https") else "http"
+ page = getURL(https + "://www.alldebrid.com/api.php?action=get_host").replace("\"", "").strip()
+
+ return [x.strip() for x in page.split(",") if x.strip()]
diff --git a/pyload/plugins/addons/Captcha9kw.py b/pyload/plugins/addons/Captcha9kw.py
index d6fef549f..6a9de24de 100755
--- a/pyload/plugins/addons/Captcha9kw.py
+++ b/pyload/plugins/addons/Captcha9kw.py
@@ -29,7 +29,7 @@ from module.plugins.Hook import Hook
class Captcha9kw(Hook):
__name__ = "Captcha9kw"
- __version__ = "0.08"
+ __version__ = "0.09"
__description__ = """send captchas to 9kw.eu"""
__config__ = [("activated", "bool", "Activated", False),
("force", "bool", "Force CT even if client is connected", True),
@@ -38,8 +38,9 @@ class Captcha9kw(Hook):
("captchaperhour", "int", "Captcha per hour (max. 9999)", "9999"),
("prio", "int", "Prio 1-10 (Cost +1-10)", "0"),
("selfsolve", "bool",
- "If enabled and you have a 9kw client active only you will get your captcha to solve it", "False"),
- ("timeout", "int", "Timeout (max. 300)", "220"),
+ "If enabled and you have a 9kw client active only you will get your captcha to solve it (Selfsolve)",
+ "False"),
+ ("timeout", "int", "Timeout (max. 300)", "300"),
("passkey", "password", "API key", ""), ]
__author_name__ = ("RaNaN")
__author_mail__ = ("RaNaN@pyload.org")
diff --git a/pyload/plugins/addons/CaptchaTrader.py b/pyload/plugins/addons/CaptchaTrader.py
index 81528ff62..51bb75a17 100644
--- a/pyload/plugins/addons/CaptchaTrader.py
+++ b/pyload/plugins/addons/CaptchaTrader.py
@@ -22,7 +22,7 @@ from pycurl import FORM_FILE, LOW_SPEED_TIME
from module.common.json_layer import json_loads
from module.network.RequestFactory import getURL, getRequest
from module.network.HTTPRequest import BadHeader
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
PYLOAD_KEY = "9f65e7f381c3af2b076ea680ae96b0b7"
@@ -41,7 +41,7 @@ class CaptchaTraderException(Exception):
return "<CaptchaTraderException %s>" % self.err
-class CaptchaTrader(Addon):
+class CaptchaTrader(Hook):
__name__ = "CaptchaTrader"
__version__ = "0.16"
__description__ = """send captchas to captchatrader.com"""
diff --git a/pyload/plugins/addons/ClickAndLoad.py b/pyload/plugins/addons/ClickAndLoad.py
index 8958da8af..0fc78abfe 100644
--- a/pyload/plugins/addons/ClickAndLoad.py
+++ b/pyload/plugins/addons/ClickAndLoad.py
@@ -21,10 +21,10 @@
import socket
import thread
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
-class ClickAndLoad(Addon):
+class ClickAndLoad(Hook):
__name__ = "ClickAndLoad"
__version__ = "0.22"
__description__ = """Gives abillity to use jd's click and load. depends on webinterface"""
@@ -33,7 +33,7 @@ class ClickAndLoad(Addon):
__author_name__ = ("RaNaN", "mkaay")
__author_mail__ = ("RaNaN@pyload.de", "mkaay@mkaay.de")
- def activate(self):
+ def coreReady(self):
self.port = int(self.config['webinterface']['port'])
if self.config['webinterface']['activated']:
try:
diff --git a/pyload/plugins/addons/DebridItaliaCom.py b/pyload/plugins/addons/DebridItaliaCom.py
new file mode 100644
index 000000000..71ebac85c
--- /dev/null
+++ b/pyload/plugins/addons/DebridItaliaCom.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+
+############################################################################
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU Affero 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 Affero General Public License for more details. #
+# #
+# You should have received a copy of the GNU Affero General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+############################################################################
+
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class DebridItaliaCom(MultiHoster):
+ __name__ = "DebridItaliaCom"
+ __version__ = "0.07"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to standard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+
+ __description__ = """Debriditalia.com hook plugin"""
+ __author_name__ = ("stickell")
+ __author_mail__ = ("l.stickell@yahoo.it")
+
+ def getHoster(self):
+ return ["netload.in", "hotfile.com", "rapidshare.com", "multiupload.com",
+ "uploading.com", "megashares.com", "crocko.com", "filepost.com",
+ "bitshare.com", "share-links.biz", "putlocker.com", "uploaded.to",
+ "speedload.org", "rapidgator.net", "likeupload.net", "cyberlocker.ch",
+ "depositfiles.com", "extabit.com", "filefactory.com", "sharefiles.co",
+ "ryushare.com", "tusfiles.net", "nowvideo.co", "cloudzer.net", "letitbit.net",
+ "easybytez.com", "uptobox.com", "ddlstorage.com"]
diff --git a/pyload/plugins/addons/Ev0InFetcher.py b/pyload/plugins/addons/Ev0InFetcher.py
index 4c89f5265..912cb5964 100644
--- a/pyload/plugins/addons/Ev0InFetcher.py
+++ b/pyload/plugins/addons/Ev0InFetcher.py
@@ -18,19 +18,19 @@
from time import mktime, time
from module.lib import feedparser
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
-class Ev0InFetcher(Addon):
+class Ev0InFetcher(Hook):
__name__ = "Ev0InFetcher"
__version__ = "0.21"
__description__ = """checks rss feeds for ev0.in"""
__config__ = [("activated", "bool", "Activated", "False"),
("interval", "int", "Check interval in minutes", "10"),
("queue", "bool", "Move new shows directly to Queue", False),
- ("shows", "str", "Shows to check for (comma separated)", ""),
+ ("shows", "str", "Shows to check for (comma seperated)", ""),
("quality", "xvid;x264;rmvb", "Video Format", "xvid"),
- ("hoster", "str", "Hoster to use (comma separated)",
+ ("hoster", "str", "Hoster to use (comma seperated)",
"NetloadIn,RapidshareCom,MegauploadCom,HotfileCom")]
__author_name__ = ("mkaay")
__author_mail__ = ("mkaay@mkaay.de")
@@ -41,8 +41,8 @@ class Ev0InFetcher(Addon):
def filterLinks(self, links):
results = self.core.pluginManager.parseUrls(links)
sortedLinks = {}
-
- for url, hoster in results[0]:
+
+ for url, hoster in results:
if hoster not in sortedLinks:
sortedLinks[hoster] = []
sortedLinks[hoster].append(url)
diff --git a/pyload/plugins/addons/ExternalScripts.py b/pyload/plugins/addons/ExternalScripts.py
index 7b7dafae4..de8afda5f 100644
--- a/pyload/plugins/addons/ExternalScripts.py
+++ b/pyload/plugins/addons/ExternalScripts.py
@@ -14,18 +14,19 @@
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
+ @author: mkaay
+ @interface-version: 0.1
"""
import subprocess
-from os import access, X_OK, makedirs
-from os.path import basename
+from os import listdir, access, X_OK, makedirs
+from os.path import join, exists, basename
-from module.plugins.Addon import Addon
-from module.utils.fs import save_join, exists, join, listdir
+from module.plugins.Hook import Hook
+from module.utils import save_join
-class ExternalScripts(Addon):
+class ExternalScripts(Hook):
__name__ = "ExternalScripts"
__version__ = "0.23"
__description__ = """Run external scripts"""
diff --git a/pyload/plugins/addons/ExtractArchive.py b/pyload/plugins/addons/ExtractArchive.py
index 3592163e7..be023301c 100644
--- a/pyload/plugins/addons/ExtractArchive.py
+++ b/pyload/plugins/addons/ExtractArchive.py
@@ -3,7 +3,8 @@
import sys
import os
-from os.path import basename, isfile, isdir, join
+from os import remove, chmod, makedirs
+from os.path import exists, basename, isfile, isdir, join
from traceback import print_exc
from copy import copy
@@ -48,17 +49,17 @@ if os.name != "nt":
from pwd import getpwnam
from grp import getgrnam
-from module.utils.fs import save_join, fs_encode, exists, remove, chmod, makedirs
-from module.plugins.Addon import Addon, threaded, Expose
+from module.utils import save_join, fs_encode
+from module.plugins.Hook import Hook, threaded, Expose
from module.plugins.internal.AbstractExtractor import ArchiveError, CRCError, WrongPassword
-class ExtractArchive(Addon):
+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),
@@ -67,11 +68,12 @@ class ExtractArchive(Addon):
("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 ;)", ""),
("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"]
@@ -176,7 +178,7 @@ class ExtractArchive(Addon):
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/pyload/plugins/addons/FastixRu.py b/pyload/plugins/addons/FastixRu.py
new file mode 100644
index 000000000..25c9a1a67
--- /dev/null
+++ b/pyload/plugins/addons/FastixRu.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+# should be working
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+from module.common.json_layer import json_loads
+
+
+class FastixRu(MultiHoster):
+ __name__ = "FastixRu"
+ __version__ = "0.02"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("unloadFailing", "bool", "Revert to standard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+ __description__ = """Fastix hook plugin"""
+ __author_name__ = ("Massimo, Rosamilia")
+ __author_mail__ = ("max@spiritix.eu")
+
+ def getHoster(self):
+ page = getURL(
+ "http://fastix.ru/api_v2/?apikey=5182964c3f8f9a7f0b00000a_kelmFB4n1IrnCDYuIFn2y&sub=allowed_sources")
+ host_list = json_loads(page)
+ host_list = host_list['allow']
+ return host_list
diff --git a/pyload/plugins/addons/HotFolder.py b/pyload/plugins/addons/HotFolder.py
index 2c51f196e..e44c1e172 100644
--- a/pyload/plugins/addons/HotFolder.py
+++ b/pyload/plugins/addons/HotFolder.py
@@ -26,10 +26,10 @@ from os.path import isfile
from shutil import move
import time
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
-class HotFolder(Addon):
+class HotFolder(Hook):
__name__ = "HotFolder"
__version__ = "0.11"
__description__ = """observe folder and file for changes and add container and links"""
diff --git a/pyload/plugins/addons/MergeFiles.py b/pyload/plugins/addons/MergeFiles.py
index 7cd7571d1..869b5b6f8 100644
--- a/pyload/plugins/addons/MergeFiles.py
+++ b/pyload/plugins/addons/MergeFiles.py
@@ -23,12 +23,12 @@ import traceback
from os.path import join
from module.utils import save_join, fs_encode
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
BUFFER_SIZE = 4096
-class MergeFiles(Addon):
+class MergeFiles(Hook):
__name__ = "MergeFiles"
__version__ = "0.12"
__description__ = "Merges parts splitted with hjsplit"
diff --git a/pyload/plugins/addons/MultiHome.py b/pyload/plugins/addons/MultiHome.py
index 243f2dcf3..473e6dcb1 100644
--- a/pyload/plugins/addons/MultiHome.py
+++ b/pyload/plugins/addons/MultiHome.py
@@ -19,10 +19,10 @@
from time import time
-from module.plugins.Addon import Addon
+from module.plugins.Hook import Hook
-class MultiHome(Addon):
+class MultiHome(Hook):
__name__ = "MultiHome"
__version__ = "0.11"
__description__ = """ip address changer"""
diff --git a/pyload/plugins/addons/MultishareCz.py b/pyload/plugins/addons/MultishareCz.py
new file mode 100644
index 000000000..fc35bb785
--- /dev/null
+++ b/pyload/plugins/addons/MultishareCz.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+import re
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class MultishareCz(MultiHoster):
+ __name__ = "MultishareCz"
+ __version__ = "0.04"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", "uloz.to")]
+ __description__ = """MultiShare.cz hook plugin"""
+ __author_name__ = ("zoidberg")
+ __author_mail__ = ("zoidberg@mujmail.cz")
+
+ HOSTER_PATTERN = r'<img class="logo-shareserveru"[^>]*?alt="([^"]+)"></td>\s*<td class="stav">[^>]*?alt="OK"'
+
+ def getHoster(self):
+ page = getURL("http://www.multishare.cz/monitoring/")
+ return re.findall(self.HOSTER_PATTERN, page)
diff --git a/pyload/plugins/addons/Premium4Me.py b/pyload/plugins/addons/Premium4Me.py
new file mode 100644
index 000000000..4bcc79b25
--- /dev/null
+++ b/pyload/plugins/addons/Premium4Me.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class Premium4Me(MultiHoster):
+ __name__ = "Premium4Me"
+ __version__ = "0.03"
+ __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__ = """Premium.to hook plugin"""
+ __author_name__ = ("RaNaN", "zoidberg", "stickell")
+ __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it")
+
+ def getHoster(self):
+ page = getURL("http://premium.to/api/hosters.php?authcode=%s" % self.account.authcode)
+ return [x.strip() for x in page.replace("\"", "").split(";")]
+
+ def coreReady(self):
+ self.account = self.core.accountManager.getAccountPlugin("Premium4Me")
+
+ user = self.account.selectAccount()[0]
+
+ if not user:
+ self.logError(_("Please add your premium.to account first and restart pyLoad"))
+ return
+
+ return MultiHoster.coreReady(self)
diff --git a/pyload/plugins/addons/PremiumizeMe.py b/pyload/plugins/addons/PremiumizeMe.py
new file mode 100644
index 000000000..07630420c
--- /dev/null
+++ b/pyload/plugins/addons/PremiumizeMe.py
@@ -0,0 +1,52 @@
+from module.plugins.internal.MultiHoster import MultiHoster
+
+from module.common.json_layer import json_loads
+from module.network.RequestFactory import getURL
+
+
+class PremiumizeMe(MultiHoster):
+ __name__ = "PremiumizeMe"
+ __version__ = "0.12"
+ __type__ = "hook"
+ __description__ = """Premiumize.Me hook plugin"""
+
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported):", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to stanard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+
+ __author_name__ = ("Florian Franzen")
+ __author_mail__ = ("FlorianFranzen@gmail.com")
+
+ def getHoster(self):
+ # If no accounts are available there will be no hosters available
+ if not self.account or not self.account.canUse():
+ return []
+
+ # Get account data
+ (user, data) = self.account.selectAccount()
+
+ # Get supported hosters list from premiumize.me using the
+ # json API v1 (see https://secure.premiumize.me/?show=api)
+ answer = getURL("https://api.premiumize.me/pm-api/v1.php?method=hosterlist&params[login]=%s&params[pass]=%s" % (
+ user, data['password']))
+ data = json_loads(answer)
+
+ # If account is not valid thera are no hosters available
+ if data['status'] != 200:
+ return []
+
+ # Extract hosters from json file
+ return data['result']['hosterlist']
+
+ def coreReady(self):
+ # Get account plugin and check if there is a valid account available
+ self.account = self.core.accountManager.getAccountPlugin("PremiumizeMe")
+ if not self.account.canUse():
+ self.account = None
+ self.logError(_("Please add a valid premiumize.me account first and restart pyLoad."))
+ return
+
+ # Run the overwriten core ready which actually enables the multihoster hook
+ return MultiHoster.coreReady(self)
diff --git a/pyload/plugins/addons/RPNetBiz.py b/pyload/plugins/addons/RPNetBiz.py
new file mode 100644
index 000000000..69976ffc9
--- /dev/null
+++ b/pyload/plugins/addons/RPNetBiz.py
@@ -0,0 +1,47 @@
+from module.plugins.internal.MultiHoster import MultiHoster
+from module.common.json_layer import json_loads
+from module.network.RequestFactory import getURL
+
+
+class RPNetBiz(MultiHoster):
+ __name__ = "RPNetBiz"
+ __version__ = "0.1"
+ __type__ = "hook"
+ __description__ = """RPNet.Biz hook plugin"""
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported):", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to stanard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+ __author_name__ = ("Dman")
+ __author_mail__ = ("dmanugm@gmail.com")
+
+ def getHoster(self):
+ # No hosts supported if no account
+ if not self.account or not self.account.canUse():
+ return []
+
+ # Get account data
+ (user, data) = self.account.selectAccount()
+
+ response = getURL("https://premium.rpnet.biz/client_api.php",
+ get={"username": user, "password": data['password'], "action": "showHosterList"})
+ hoster_list = json_loads(response)
+
+ # If account is not valid thera are no hosters available
+ if 'error' in hoster_list:
+ return []
+
+ # Extract hosters from json file
+ return hoster_list['hosters']
+
+ def coreReady(self):
+ # Get account plugin and check if there is a valid account available
+ self.account = self.core.accountManager.getAccountPlugin("RPNetBiz")
+ if not self.account.canUse():
+ self.account = None
+ self.logError(_("Please enter your %s account or deactivate this plugin") % "rpnet")
+ return
+
+ # Run the overwriten core ready which actually enables the multihoster hook
+ return MultiHoster.coreReady(self)
diff --git a/pyload/plugins/addons/RealdebridCom.py b/pyload/plugins/addons/RealdebridCom.py
new file mode 100644
index 000000000..41e988495
--- /dev/null
+++ b/pyload/plugins/addons/RealdebridCom.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class RealdebridCom(MultiHoster):
+ __name__ = "RealdebridCom"
+ __version__ = "0.43"
+ __type__ = "hook"
+
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("https", "bool", "Enable HTTPS", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported):", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to stanard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24")]
+ __description__ = """Real-Debrid.com hook plugin"""
+ __author_name__ = ("Devirex, Hazzard")
+ __author_mail__ = ("naibaf_11@yahoo.de")
+
+ def getHoster(self):
+ https = "https" if self.getConfig("https") else "http"
+ page = getURL(https + "://real-debrid.com/api/hosters.php").replace("\"", "").strip()
+
+ return [x.strip() for x in page.split(",") if x.strip()]
diff --git a/pyload/plugins/addons/SimplydebridCom.py b/pyload/plugins/addons/SimplydebridCom.py
new file mode 100644
index 000000000..3272df567
--- /dev/null
+++ b/pyload/plugins/addons/SimplydebridCom.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class SimplydebridCom(MultiHoster):
+ __name__ = "SimplydebridCom"
+ __version__ = "0.01"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", "")]
+ __description__ = """Simply-Debrid.com hook plugin"""
+ __author_name__ = ("Kagenoshin")
+ __author_mail__ = ("kagenoshin@gmx.ch")
+
+ def getHoster(self):
+ page = getURL("http://simply-debrid.com/api.php?list=1")
+ return [x.strip() for x in page.rstrip(';').replace("\"", "").split(";")]
diff --git a/pyload/plugins/addons/WindowsPhoneToastNotify.py b/pyload/plugins/addons/WindowsPhoneToastNotify.py
index 888862575..d110f7896 100644
--- a/pyload/plugins/addons/WindowsPhoneToastNotify.py
+++ b/pyload/plugins/addons/WindowsPhoneToastNotify.py
@@ -34,9 +34,9 @@ class WindowsPhoneToastNotify(Hook):
self.info = {}
def getXmlData(self):
- myxml = "<?xml version='1.0' encoding='utf-8'?> <wp:Notification xmlns:wp='WPNotification'> " \
- "<wp:Toast> <wp:Text1>Pyload Mobile</wp:Text1> <wp:Text2>Captcha waiting!</wp:Text2> " \
- "</wp:Toast> </wp:Notification>"
+ myxml = ("<?xml version='1.0' encoding='utf-8'?> <wp:Notification xmlns:wp='WPNotification'> "
+ "<wp:Toast> <wp:Text1>Pyload Mobile</wp:Text1> <wp:Text2>Captcha waiting!</wp:Text2> "
+ "</wp:Toast> </wp:Notification>")
return myxml
def doRequest(self):
diff --git a/pyload/plugins/addons/XMPPInterface.py b/pyload/plugins/addons/XMPPInterface.py
index a94f2ed05..adffc04e3 100644
--- a/pyload/plugins/addons/XMPPInterface.py
+++ b/pyload/plugins/addons/XMPPInterface.py
@@ -19,12 +19,12 @@
"""
from pyxmpp import streamtls
-from pyxmpp.all import JID, Message, Presence
+from pyxmpp.all import JID, Message
from pyxmpp.jabber.client import JabberClient
from pyxmpp.interface import implements
from pyxmpp.interfaces import *
-from module.plugins.addons.IRCInterface import IRCInterface
+from module.plugins.hooks.IRCInterface import IRCInterface
class XMPPInterface(IRCInterface, JabberClient):
@@ -124,25 +124,6 @@ class XMPPInterface(IRCInterface, JabberClient):
("normal", self.message),
]
- def presence_control(self, stanza):
- from_jid = unicode(stanza.get_from_jid())
- stanza_type = stanza.get_type()
- self.log.debug("pyLoad XMPP: %s stanza from %s" % (stanza_type,
- from_jid))
-
- if from_jid in self.getConfig("owners"):
- return stanza.make_accept_response()
-
- return stanza.make_deny_response()
-
- def session_started(self):
- self.stream.send(Presence())
-
- self.stream.set_presence_handler("subscribe", self.presence_control)
- self.stream.set_presence_handler("subscribed", self.presence_control)
- self.stream.set_presence_handler("unsubscribe", self.presence_control)
- self.stream.set_presence_handler("unsubscribed", self.presence_control)
-
def message(self, stanza):
"""Message handler for the component."""
subject = stanza.get_subject()
@@ -268,10 +249,3 @@ class VersionHandler(object):
q.newTextChild(q.ns(), "name", "Echo component")
q.newTextChild(q.ns(), "version", "1.0")
return iq
-
- def unload(self):
- self.log.debug("pyLoad XMPP: unloading")
- self.disconnect()
-
- def deactivate(self):
- self.unload()
diff --git a/pyload/plugins/addons/ZeveraCom.py b/pyload/plugins/addons/ZeveraCom.py
new file mode 100644
index 000000000..fb84886d1
--- /dev/null
+++ b/pyload/plugins/addons/ZeveraCom.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+
+from module.network.RequestFactory import getURL
+from module.plugins.internal.MultiHoster import MultiHoster
+
+
+class ZeveraCom(MultiHoster):
+ __name__ = "ZeveraCom"
+ __version__ = "0.02"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", "")]
+ __description__ = """Real-Debrid.com hook plugin"""
+ __author_name__ = ("zoidberg")
+ __author_mail__ = ("zoidberg@mujmail.cz")
+
+ def getHoster(self):
+ page = getURL("http://www.zevera.com/jDownloader.ashx?cmd=gethosters")
+ return [x.strip() for x in page.replace("\"", "").split(",")]