diff options
| author | 2013-11-17 16:14:22 +0100 | |
|---|---|---|
| committer | 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(",")] | 
