diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-11-17 16:14:22 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-11-17 16:14:22 +0100 |
commit | 0b27b9690f626fff0f494b32093be5736c2d1b6b (patch) | |
tree | edbe6c49c95c9fd3f1982048e7f5a1dad49937d2 /pyload/plugins/addons | |
parent | fixed the plugin parser to handle multi line statements (diff) | |
parent | Merge pull request #394 from vuolter/s/hoster/Keep2shareCC (diff) | |
download | pyload-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')
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¶ms[login]=%s¶ms[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(",")] |