diff options
Diffstat (limited to 'module/plugins/hoster')
164 files changed, 806 insertions, 1376 deletions
diff --git a/module/plugins/hoster/AlldebridCom.py b/module/plugins/hoster/AlldebridCom.py index b2064f22f..7201f1929 100644 --- a/module/plugins/hoster/AlldebridCom.py +++ b/module/plugins/hoster/AlldebridCom.py @@ -1,23 +1,27 @@ # -*- coding: utf-8 -*- import re -from urllib import unquote + from random import randrange -from module.plugins.Hoster import Hoster +from urllib import unquote + from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster from module.utils import parseFileSize class AlldebridCom(Hoster): __name__ = "AlldebridCom" - __version__ = "0.34" __type__ = "hoster" + __version__ = "0.34" __pattern__ = r'https?://(?:[^/]*\.)?alldebrid\..*' + __description__ = """Alldebrid.com hoster plugin""" __author_name__ = "Andy Voigt" __author_mail__ = "spamsales@online.de" + def getFilename(self, url): try: name = unquote(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/BasePlugin.py b/module/plugins/hoster/BasePlugin.py index 9206aaabd..839c4100a 100644 --- a/module/plugins/hoster/BasePlugin.py +++ b/module/plugins/hoster/BasePlugin.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from urlparse import urlparse from re import match, search from urllib import unquote +from urlparse import urlparse from module.network.HTTPRequest import BadHeader from module.plugins.Hoster import Hoster @@ -12,8 +12,10 @@ from module.utils import html_unescape, remove_chars class BasePlugin(Hoster): __name__ = "BasePlugin" __type__ = "hoster" - __pattern__ = r'^unmatchable$' __version__ = "0.19" + + __pattern__ = r'^unmatchable$' + __description__ = """Base Plugin when any other didnt fit""" __author_name__ = "RaNaN" __author_mail__ = "RaNaN@pyload.org" diff --git a/module/plugins/hoster/BayfilesCom.py b/module/plugins/hoster/BayfilesCom.py index 272c7cd88..dc7e8cbf0 100644 --- a/module/plugins/hoster/BayfilesCom.py +++ b/module/plugins/hoster/BayfilesCom.py @@ -1,32 +1,20 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from time import time -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.common.json_layer import json_loads +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BayfilesCom(SimpleHoster): __name__ = "BayfilesCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>[a-zA-Z0-9]+/[a-zA-Z0-9]+/[^/]+)' __version__ = "0.07" + + __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>[a-zA-Z0-9]+/[a-zA-Z0-9]+/[^/]+)' + __description__ = """Bayfiles.com hoster plugin""" __author_name__ = ("zoidberg", "Walter Purcaro") __author_mail__ = ("zoidberg@mujmail.cz", "vuolter@gmail.com") @@ -39,6 +27,7 @@ class BayfilesCom(SimpleHoster): FREE_LINK_PATTERN = r"javascript:window.location.href = '([^']+)';" PREMIUM_LINK_PATTERN = r'(?:<a class="highlighted-btn" href="|(?=http://s\d+\.baycdn\.com/dl/))(.*?)"' + def handleFree(self): m = re.search(self.WAIT_PATTERN, self.html) if m: diff --git a/module/plugins/hoster/BezvadataCz.py b/module/plugins/hoster/BezvadataCz.py index a6336ad19..7156db473 100644 --- a/module/plugins/hoster/BezvadataCz.py +++ b/module/plugins/hoster/BezvadataCz.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BezvadataCz(SimpleHoster): __name__ = "BezvadataCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?bezvadata.cz/stahnout/.*' __version__ = "0.24" + + __pattern__ = r'http://(?:www\.)?bezvadata.cz/stahnout/.*' + __description__ = """BezvaData.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -32,6 +20,7 @@ class BezvadataCz(SimpleHoster): FILE_SIZE_PATTERN = r'<li><strong>Velikost:</strong> (?P<S>[^<]+)</li>' OFFLINE_PATTERN = r'<title>BezvaData \| Soubor nenalezen</title>' + def setup(self): self.multiDL = self.resumeDownload = True diff --git a/module/plugins/hoster/BillionuploadsCom.py b/module/plugins/hoster/BillionuploadsCom.py index ab2634c91..c55b9073c 100644 --- a/module/plugins/hoster/BillionuploadsCom.py +++ b/module/plugins/hoster/BillionuploadsCom.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class BillionuploadsCom(XFileSharingPro): __name__ = "BillionuploadsCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?billionuploads.com/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?billionuploads.com/\w{12}' + __description__ = """Billionuploads.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py index a6ed51d94..3c84ce5da 100644 --- a/module/plugins/hoster/BitshareCom.py +++ b/module/plugins/hoster/BitshareCom.py @@ -10,8 +10,8 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BitshareCom(SimpleHoster): __name__ = "BitshareCom" - __version__ = "0.50" __type__ = "hoster" + __version__ = "0.50" __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/(?P<id1>[a-zA-Z0-9]+)(/(?P<name>.*?)\.html)?|\?f=(?P<id2>[a-zA-Z0-9]+))' diff --git a/module/plugins/hoster/BoltsharingCom.py b/module/plugins/hoster/BoltsharingCom.py index a1672dc22..d038c50ca 100644 --- a/module/plugins/hoster/BoltsharingCom.py +++ b/module/plugins/hoster/BoltsharingCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class BoltsharingCom(DeadHoster): __name__ = "BoltsharingCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?boltsharing.com/\w{12}' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?boltsharing.com/\w{12}' + __description__ = """Boltsharing.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/CatShareNet.py b/module/plugins/hoster/CatShareNet.py index 2cd85420d..4bbdfce89 100644 --- a/module/plugins/hoster/CatShareNet.py +++ b/module/plugins/hoster/CatShareNet.py @@ -1,15 +1,18 @@ # -*- coding: utf-8 -*- import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class CatShareNet(SimpleHoster): __name__ = "CatShareNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?catshare.net/\w{16}.*' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?catshare.net/\w{16}.*' + __description__ = """CatShare.net hoster plugin""" __author_name__ = "z00nx" __author_mail__ = "z00nx0@gmail.com" diff --git a/module/plugins/hoster/CloudzerNet.py b/module/plugins/hoster/CloudzerNet.py index 6e47ce53f..72332c56f 100644 --- a/module/plugins/hoster/CloudzerNet.py +++ b/module/plugins/hoster/CloudzerNet.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class CloudzerNet(DeadHoster): __name__ = "CloudzerNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(cloudzer\.net/file/|clz\.to/(file/)?)\w+' __version__ = "0.05" + + __pattern__ = r'https?://(?:www\.)?(cloudzer\.net/file/|clz\.to/(file/)?)\w+' + __description__ = """Cloudzer.net hoster plugin""" __author_name__ = ("gs", "z00nx", "stickell") __author_mail__ = ("I-_-I-_-I@web.de", "z00nx0@gmail.com", "l.stickell@yahoo.it") diff --git a/module/plugins/hoster/CramitIn.py b/module/plugins/hoster/CramitIn.py index 79ed07e73..6a872ab34 100644 --- a/module/plugins/hoster/CramitIn.py +++ b/module/plugins/hoster/CramitIn.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class CramitIn(XFileSharingPro): __name__ = "CramitIn" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?cramit.in/\w{12}' __version__ = "0.04" + + __pattern__ = r'http://(?:www\.)?cramit.in/\w{12}' + __description__ = """Cramit.in hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -17,6 +19,7 @@ class CramitIn(XFileSharingPro): FILE_INFO_PATTERN = r'<span class=t2>\s*(?P<N>.*?)</span>.*?<small>\s*\((?P<S>.*?)\)' LINK_PATTERN = r'href="(http://cramit.in/file_download/.*?)"' + def setup(self): self.resumeDownload = self.multiDL = self.premium diff --git a/module/plugins/hoster/CrockoCom.py b/module/plugins/hoster/CrockoCom.py index b36d59993..80d9b3d61 100644 --- a/module/plugins/hoster/CrockoCom.py +++ b/module/plugins/hoster/CrockoCom.py @@ -2,15 +2,17 @@ import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class CrockoCom(SimpleHoster): __name__ = "CrockoCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(crocko|easy-share).com/\w+' __version__ = "0.16" + + __pattern__ = r'http://(?:www\.)?(crocko|easy-share).com/\w+' + __description__ = """Crocko hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/CyberlockerCh.py b/module/plugins/hoster/CyberlockerCh.py index a08bf8518..bfab72b7c 100644 --- a/module/plugins/hoster/CyberlockerCh.py +++ b/module/plugins/hoster/CyberlockerCh.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class CyberlockerCh(DeadHoster): __name__ = "CyberlockerCh" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?cyberlocker\.ch/\w+' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?cyberlocker\.ch/\w+' + __description__ = """Cyberlocker.ch hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/CzshareCom.py b/module/plugins/hoster/CzshareCom.py index c34e73ff4..4f581651b 100644 --- a/module/plugins/hoster/CzshareCom.py +++ b/module/plugins/hoster/CzshareCom.py @@ -1,24 +1,10 @@ # -*- coding: utf-8 -*- - -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - -# Test links (random.bin): +# +# Test links: # http://czshare.com/5278880/random.bin import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.utils import parseFileSize @@ -26,8 +12,10 @@ from module.utils import parseFileSize class CzshareCom(SimpleHoster): __name__ = "CzshareCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/(\d+/|download.php\?).*' __version__ = "0.94" + + __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/(\d+/|download.php\?).*' + __description__ = """CZshare.com hoster plugin, now Sdilej.cz""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -107,7 +95,7 @@ class CzshareCom(SimpleHoster): self.logError(e) self.parseError('Form') - # get and decrypt captcha + # get and decrypt captcha captcha_url = 'http://sdilej.cz/captcha.php' for _ in xrange(5): inputs['captchastring2'] = self.decryptCaptcha(captcha_url) diff --git a/module/plugins/hoster/DailymotionCom.py b/module/plugins/hoster/DailymotionCom.py index 5f032ca8b..79b7acb45 100644 --- a/module/plugins/hoster/DailymotionCom.py +++ b/module/plugins/hoster/DailymotionCom.py @@ -1,26 +1,11 @@ # -*- 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/>. -############################################################################ - import re +from module.PyFile import statusMap from module.common.json_layer import json_loads from module.network.RequestFactory import getURL from module.plugins.Hoster import Hoster -from module.PyFile import statusMap def getInfo(urls): @@ -56,13 +41,16 @@ def getInfo(urls): class DailymotionCom(Hoster): __name__ = "DailymotionCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?dailymotion\.com/.*?video/(?P<ID>[\w^_]+)' __version__ = "0.2" + + __pattern__ = r'https?://(?:www\.)?dailymotion\.com/.*?video/(?P<ID>[\w^_]+)' __config__ = [("quality", "Lowest;LD 144p;LD 240p;SD 384p;HQ 480p;HD 720p;HD 1080p;Highest", "Quality", "Highest")] + __description__ = """Dailymotion.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" + def setup(self): self.resumeDownload = self.multiDL = True diff --git a/module/plugins/hoster/DataHu.py b/module/plugins/hoster/DataHu.py index 9a7af288b..3dc01eef3 100644 --- a/module/plugins/hoster/DataHu.py +++ b/module/plugins/hoster/DataHu.py @@ -1,20 +1,6 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://data.hu/get/6381232/random.bin import re @@ -25,8 +11,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DataHu(SimpleHoster): __name__ = "DataHu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?data.hu/get/\w+' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?data.hu/get/\w+' + __description__ = """Data.hu hoster plugin""" __author_name__ = ("crash", "stickell") __author_mail__ = "l.stickell@yahoo.it" @@ -35,6 +23,7 @@ class DataHu(SimpleHoster): OFFLINE_PATTERN = ur'Az adott f\xe1jl nem l\xe9tezik' LINK_PATTERN = r'<div class="download_box_button"><a href="([^"]+)">' + def handleFree(self): self.resumeDownload = True self.html = self.load(self.pyfile.url, decode=True) diff --git a/module/plugins/hoster/DataportCz.py b/module/plugins/hoster/DataportCz.py index 19be45f44..56b2c2398 100644 --- a/module/plugins/hoster/DataportCz.py +++ b/module/plugins/hoster/DataportCz.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DataportCz(SimpleHoster): __name__ = "DataportCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?dataport.cz/file/(.*)' __version__ = "0.37" + + __pattern__ = r'http://(?:www\.)?dataport.cz/file/(.*)' + __description__ = """Dataport.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/DateiTo.py b/module/plugins/hoster/DateiTo.py index 4d39b178e..ff8c430ee 100644 --- a/module/plugins/hoster/DateiTo.py +++ b/module/plugins/hoster/DateiTo.py @@ -1,30 +1,18 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DateiTo(SimpleHoster): __name__ = "DateiTo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html' + __description__ = """Datei.to hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -38,6 +26,7 @@ class DateiTo(SimpleHoster): DATA_PATTERN = r'url: "(.*?)", data: "(.*?)",' RECAPTCHA_KEY_PATTERN = r'Recaptcha.create\("(.*?)"' + def handleFree(self): url = 'http://datei.to/ajax/download.php' data = {'P': 'I', 'ID': self.file_info['ID']} diff --git a/module/plugins/hoster/DdlstorageCom.py b/module/plugins/hoster/DdlstorageCom.py index 9122b094a..46255aaad 100644 --- a/module/plugins/hoster/DdlstorageCom.py +++ b/module/plugins/hoster/DdlstorageCom.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- import re + from hashlib import md5 -from module.plugins.hoster.XFileSharingPro import XFileSharingPro +from module.common.json_layer import json_loads from module.network.RequestFactory import getURL from module.plugins.Plugin import chunks -from module.common.json_layer import json_loads +from module.plugins.hoster.XFileSharingPro import XFileSharingPro def getInfo(urls): @@ -42,8 +43,10 @@ def getInfo(urls): class DdlstorageCom(XFileSharingPro): __name__ = "DdlstorageCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?ddlstorage.com/(?P<ID>\w{12})' __version__ = "1.01" + + __pattern__ = r'http://(?:www\.)?ddlstorage.com/(?P<ID>\w{12})' + __description__ = """DDLStorage.com hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") @@ -52,6 +55,7 @@ class DdlstorageCom(XFileSharingPro): FILE_INFO_PATTERN = r'<p class="sub_title"[^>]*>(?P<N>.+) \((?P<S>[^)]+)\)</p>' + def prepare(self): self.getAPIData() super(DdlstorageCom, self).prepare() diff --git a/module/plugins/hoster/DebridItaliaCom.py b/module/plugins/hoster/DebridItaliaCom.py index a8b4248b4..5880b2738 100644 --- a/module/plugins/hoster/DebridItaliaCom.py +++ b/module/plugins/hoster/DebridItaliaCom.py @@ -1,18 +1,4 @@ # -*- 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/>. # -############################################################################ import re @@ -21,13 +7,16 @@ from module.plugins.Hoster import Hoster class DebridItaliaCom(Hoster): __name__ = "DebridItaliaCom" - __version__ = "0.05" __type__ = "hoster" + __version__ = "0.05" + __pattern__ = r'https?://(?:[^/]*\.)?debriditalia\.com' + __description__ = """Debriditalia.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" + def setup(self): self.chunkLimit = -1 self.resumeDownload = True diff --git a/module/plugins/hoster/DlFreeFr.py b/module/plugins/hoster/DlFreeFr.py index 5fb527136..e25de18b4 100644 --- a/module/plugins/hoster/DlFreeFr.py +++ b/module/plugins/hoster/DlFreeFr.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -import re import pycurl +import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns from module.common.json_layer import json_loads from module.network.Browser import Browser from module.network.CookieJar import CookieJar +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns class CustomBrowser(Browser): @@ -109,8 +109,10 @@ class AdYouLike: class DlFreeFr(SimpleHoster): __name__ = "DlFreeFr" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?dl\.free\.fr/([a-zA-Z0-9]+|getfile\.pl\?file=/[a-zA-Z0-9]+)' __version__ = "0.25" + + __pattern__ = r'http://(?:www\.)?dl\.free\.fr/([a-zA-Z0-9]+|getfile\.pl\?file=/[a-zA-Z0-9]+)' + __description__ = """Dl.free.fr hoster plugin""" __author_name__ = ("the-razer", "zoidberg", "Toilal") __author_mail__ = ("daniel_ AT gmx DOT net", "zoidberg@mujmail.cz", "toilal.dev@gmail.com") @@ -148,7 +150,7 @@ class DlFreeFr(SimpleHoster): self.html = self.load(valid_url) self.handleFree() else: - # Direct access to requested file for users using free.fr as Internet Service Provider. + # Direct access to requested file for users using free.fr as Internet Service Provider. self.download(valid_url, disposition=True) elif headers.get('code') == 404: self.offline() diff --git a/module/plugins/hoster/DuploadOrg.py b/module/plugins/hoster/DuploadOrg.py index 5909f7ccf..c11d694c5 100644 --- a/module/plugins/hoster/DuploadOrg.py +++ b/module/plugins/hoster/DuploadOrg.py @@ -1,18 +1,4 @@ # -*- 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.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -20,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class DuploadOrg(XFileSharingPro): __name__ = "DuploadOrg" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?dupload\.org/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?dupload\.org/\w{12}' + __description__ = """Dupload.grg hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/EasybytezCom.py b/module/plugins/hoster/EasybytezCom.py index c10c22fd9..2e61e6d16 100644 --- a/module/plugins/hoster/EasybytezCom.py +++ b/module/plugins/hoster/EasybytezCom.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo class EasybytezCom(XFileSharingPro): __name__ = "EasybytezCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?easybytez.com/(\w+).*' __version__ = "0.17" + + __pattern__ = r'http://(?:www\.)?easybytez.com/(\w+).*' + __description__ = """Easybytez.com hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") @@ -36,6 +23,7 @@ class EasybytezCom(XFileSharingPro): OVR_LINK_PATTERN = r'<h2>Download Link</h2>\s*<textarea[^>]*>([^<]+)' ERROR_PATTERN = r'(?:class=["\']err["\'][^>]*>|<Center><b>)(.*?)</' + def setup(self): self.resumeDownload = self.multiDL = self.premium diff --git a/module/plugins/hoster/EdiskCz.py b/module/plugins/hoster/EdiskCz.py index f0715bfc7..449dc0050 100644 --- a/module/plugins/hoster/EdiskCz.py +++ b/module/plugins/hoster/EdiskCz.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class EdiskCz(SimpleHoster): __name__ = "EdiskCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?edisk.(cz|sk|eu)/(stahni|sk/stahni|en/download)/.*' __version__ = "0.21" + + __pattern__ = r'http://(?:www\.)?edisk.(cz|sk|eu)/(stahni|sk/stahni|en/download)/.*' + __description__ = """Edisk.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/EgoFilesCom.py b/module/plugins/hoster/EgoFilesCom.py index f4fdda5a3..547f042e4 100644 --- a/module/plugins/hoster/EgoFilesCom.py +++ b/module/plugins/hoster/EgoFilesCom.py @@ -1,33 +1,21 @@ # -*- 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/>. # -############################################################################ - -# Test link (random.bin): +# +# Test links: # http://egofiles.com/mOZfMI1WLZ6HBkGG/random.bin import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class EgoFilesCom(SimpleHoster): __name__ = "EgoFilesCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?egofiles.com/(\w+)' __version__ = "0.15" + + __pattern__ = r'https?://(?:www\.)?egofiles.com/(\w+)' + __description__ = """Egofiles.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/EpicShareNet.py b/module/plugins/hoster/EpicShareNet.py index 062c8186f..73b16c08e 100644 --- a/module/plugins/hoster/EpicShareNet.py +++ b/module/plugins/hoster/EpicShareNet.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +# # Test links: # BigBuckBunny_320x180.mp4 - 61.7 Mb - http://epicshare.net/fch3m2bk6ihp/BigBuckBunny_320x180.mp4.html @@ -9,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class EpicShareNet(XFileSharingPro): __name__ = "EpicShareNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?epicshare\.net/\w{12}' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?epicshare\.net/\w{12}' + __description__ = """EpicShare.net hoster plugin""" __author_name__ = "t4skforce" __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" diff --git a/module/plugins/hoster/EuroshareEu.py b/module/plugins/hoster/EuroshareEu.py index 5365e7312..fdb76cd5c 100644 --- a/module/plugins/hoster/EuroshareEu.py +++ b/module/plugins/hoster/EuroshareEu.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class EuroshareEu(SimpleHoster): __name__ = "EuroshareEu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?euroshare.(eu|sk|cz|hu|pl)/file/.*' __version__ = "0.25" + + __pattern__ = r'http://(?:www\.)?euroshare.(eu|sk|cz|hu|pl)/file/.*' + __description__ = """Euroshare.eu hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/ExtabitCom.py b/module/plugins/hoster/ExtabitCom.py index fac7922db..2409d8517 100644 --- a/module/plugins/hoster/ExtabitCom.py +++ b/module/plugins/hoster/ExtabitCom.py @@ -1,34 +1,21 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re from module.common.json_layer import json_loads from module.plugins.hoster.UnrestrictLi import secondsToMidnight -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class ExtabitCom(SimpleHoster): __name__ = "ExtabitCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?extabit\.com/(file|go|fid)/(?P<ID>\w+)' __version__ = "0.6" + + __pattern__ = r'http://(?:www\.)?extabit\.com/(file|go|fid)/(?P<ID>\w+)' + __description__ = """Extabit.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -40,6 +27,7 @@ class ExtabitCom(SimpleHoster): LINK_PATTERN = r'[\'"](http://guest\d+\.extabit\.com/[a-z0-9]+/.*?)[\'"]' + def handleFree(self): if r">Only premium users can download this file" in self.html: self.fail("Only premium users can download this file") diff --git a/module/plugins/hoster/FastixRu.py b/module/plugins/hoster/FastixRu.py index a59fae498..199544840 100644 --- a/module/plugins/hoster/FastixRu.py +++ b/module/plugins/hoster/FastixRu.py @@ -1,21 +1,26 @@ # -*- coding: utf-8 -*- import re -from urllib import unquote + from random import randrange -from module.plugins.Hoster import Hoster +from urllib import unquote + from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster class FastixRu(Hoster): __name__ = "FastixRu" - __version__ = "0.04" __type__ = "hoster" + __version__ = "0.04" + __pattern__ = r'http://(?:www\.)?fastix\.(ru|it)/file/(?P<ID>[a-zA-Z0-9]{24})' + __description__ = """Fastix hoster plugin""" __author_name__ = "Massimo Rosamilia" __author_mail__ = "max@spiritix.eu" + def getFilename(self, url): try: name = unquote(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/FastshareCz.py b/module/plugins/hoster/FastshareCz.py index e1fd9a666..7a847fdc4 100644 --- a/module/plugins/hoster/FastshareCz.py +++ b/module/plugins/hoster/FastshareCz.py @@ -1,23 +1,10 @@ # -*- 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/>. -############################################################################### - -# Test links (random.bin): +# Test links: # http://www.fastshare.cz/2141189/random.bin import re + from urlparse import urljoin from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -26,8 +13,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FastshareCz(SimpleHoster): __name__ = "FastshareCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?fastshare\.cz/\d+/.+' __version__ = "0.22" + + __pattern__ = r'http://(?:www\.)?fastshare\.cz/\d+/.+' + __description__ = """FastShare.cz hoster plugin""" __author_name__ = ("zoidberg", "stickell", "Walter Purcaro") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it", "vuolter@gmail.com") diff --git a/module/plugins/hoster/File4safeCom.py b/module/plugins/hoster/File4safeCom.py index bc0f20dbe..4ec814fd9 100644 --- a/module/plugins/hoster/File4safeCom.py +++ b/module/plugins/hoster/File4safeCom.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import re + from pycurl import FOLLOWLOCATION from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -9,14 +10,17 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class File4safeCom(XFileSharingPro): __name__ = "File4safeCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?file4safe\.com/\w+' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?file4safe\.com/\w+' + __description__ = """File4safe.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" HOSTER_NAME = "file4safe.com" + def handlePremium(self): self.req.http.lastURL = self.pyfile.url diff --git a/module/plugins/hoster/FileApeCom.py b/module/plugins/hoster/FileApeCom.py index 43625c92c..91744c7c2 100644 --- a/module/plugins/hoster/FileApeCom.py +++ b/module/plugins/hoster/FileApeCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FileApeCom(DeadHoster): __name__ = "FileApeCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?fileape\.com/(index\.php\?act=download\&id=|dl/)\w+' __version__ = "0.12" + + __pattern__ = r'http://(?:www\.)?fileape\.com/(index\.php\?act=download\&id=|dl/)\w+' + __description__ = """FileApe.com hoster plugin""" __author_name__ = "espes" __author_mail__ = None diff --git a/module/plugins/hoster/FileParadoxIn.py b/module/plugins/hoster/FileParadoxIn.py index 6234c36df..d6395b130 100644 --- a/module/plugins/hoster/FileParadoxIn.py +++ b/module/plugins/hoster/FileParadoxIn.py @@ -8,8 +8,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class FileParadoxIn(XFileSharingPro): __name__ = "FileParadoxIn" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?fileparadox\.in/\w+' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?fileparadox\.in/\w+' + __description__ = """FileParadox.in hoster plugin""" __author_name__ = "RazorWing" __author_mail__ = "muppetuk1@hotmail.com" diff --git a/module/plugins/hoster/FileStoreTo.py b/module/plugins/hoster/FileStoreTo.py index 37eec6684..98d67609a 100644 --- a/module/plugins/hoster/FileStoreTo.py +++ b/module/plugins/hoster/FileStoreTo.py @@ -1,20 +1,5 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -23,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FileStoreTo(SimpleHoster): __name__ = "FileStoreTo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?filestore\.to/\?d=(?P<ID>\w+)' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?filestore\.to/\?d=(?P<ID>\w+)' + __description__ = """FileStore.to hoster plugin""" __author_name__ = ("Walter Purcaro", "stickell") __author_mail__ = ("vuolter@gmail.com", "l.stickell@yahoo.it") @@ -32,6 +19,7 @@ class FileStoreTo(SimpleHoster): FILE_INFO_PATTERN = r'File: <span[^>]*>(?P<N>.+)</span><br />Size: (?P<S>[\d,.]+) (?P<U>\w+)' OFFLINE_PATTERN = r'>Download-Datei wurde nicht gefunden<' + def setup(self): self.resumeDownload = self.multiDL = True diff --git a/module/plugins/hoster/FilebeerInfo.py b/module/plugins/hoster/FilebeerInfo.py index dd26b9120..3e8cfb6a3 100644 --- a/module/plugins/hoster/FilebeerInfo.py +++ b/module/plugins/hoster/FilebeerInfo.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FilebeerInfo(DeadHoster): __name__ = "FilebeerInfo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?filebeer\.info/(?!\d*~f)(?P<ID>\w+).*' __version__ = "0.03" + + __pattern__ = r'http://(?:www\.)?filebeer\.info/(?!\d*~f)(?P<ID>\w+).*' + __description__ = """Filebeer.info plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/FilecloudIo.py b/module/plugins/hoster/FilecloudIo.py index 8fc1ddca2..025bd483f 100644 --- a/module/plugins/hoster/FilecloudIo.py +++ b/module/plugins/hoster/FilecloudIo.py @@ -1,31 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.common.json_layer import json_loads from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilecloudIo(SimpleHoster): __name__ = "FilecloudIo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(?:filecloud\.io|ifile\.it|mihd\.net)/(?P<ID>\w+).*' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?(?:filecloud\.io|ifile\.it|mihd\.net)/(?P<ID>\w+).*' + __description__ = """Filecloud.io hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") diff --git a/module/plugins/hoster/FilefactoryCom.py b/module/plugins/hoster/FilefactoryCom.py index 98a97121c..1ac7550fc 100644 --- a/module/plugins/hoster/FilefactoryCom.py +++ b/module/plugins/hoster/FilefactoryCom.py @@ -1,23 +1,9 @@ # -*- 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/>. # -############################################################################ import re -from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo from module.network.RequestFactory import getURL +from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo def getInfo(urls): @@ -34,8 +20,10 @@ def getInfo(urls): class FilefactoryCom(SimpleHoster): __name__ = "FilefactoryCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?filefactory\.com/file/(?P<id>[a-zA-Z0-9]+)' __version__ = "0.50" + + __pattern__ = r'https?://(?:www\.)?filefactory\.com/file/(?P<id>[a-zA-Z0-9]+)' + __description__ = """Filefactory.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/FilejungleCom.py b/module/plugins/hoster/FilejungleCom.py index ab582b3a3..9380be90e 100644 --- a/module/plugins/hoster/FilejungleCom.py +++ b/module/plugins/hoster/FilejungleCom.py @@ -1,20 +1,5 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.hoster.FileserveCom import FileserveCom, checkFile from module.plugins.Plugin import chunks @@ -22,8 +7,10 @@ from module.plugins.Plugin import chunks class FilejungleCom(FileserveCom): __name__ = "FilejungleCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?filejungle\.com/f/(?P<id>[^/]+).*' __version__ = "0.51" + + __pattern__ = r'http://(?:www\.)?filejungle\.com/f/(?P<id>[^/]+).*' + __description__ = """Filejungle.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/FileomCom.py b/module/plugins/hoster/FileomCom.py index 7fd1efd34..2f876466b 100644 --- a/module/plugins/hoster/FileomCom.py +++ b/module/plugins/hoster/FileomCom.py @@ -1,20 +1,6 @@ # -*- 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/>. -############################################################################### - -# Test links (random.bin): +# Test links: # http://fileom.com/gycaytyzdw3g/random.bin.html from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -23,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class FileomCom(XFileSharingPro): __name__ = "FileomCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?fileom\.com/\w+' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?fileom\.com/\w+' + __description__ = """Fileom.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" @@ -41,6 +29,7 @@ class FileomCom(XFileSharingPro): LINK_PATTERN = r"var url2 = '(.+?)';" + def setup(self): self.resumeDownload = self.premium self.multiDL = True diff --git a/module/plugins/hoster/FilepostCom.py b/module/plugins/hoster/FilepostCom.py index 93488236a..0e1b6ea5a 100644 --- a/module/plugins/hoster/FilepostCom.py +++ b/module/plugins/hoster/FilepostCom.py @@ -1,39 +1,21 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. - - - changelog: - 0.27 - 2012-08-12 - hgg - fix "global name 'js_answer' is not defined" bug - fix captcha bug #1 (failed on non-english "captcha wrong" errors) -""" - import re + from time import time -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -from module.plugins.internal.CaptchaService import ReCaptcha from module.common.json_layer import json_loads +from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilepostCom(SimpleHoster): __name__ = "FilepostCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp.io)/([^/]+).*' __version__ = "0.28" + + __pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp.io)/([^/]+).*' + __description__ = """Filepost.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -45,6 +27,7 @@ class FilepostCom(SimpleHoster): RECAPTCHA_KEY_PATTERN = r"Captcha.init\({\s*key:\s*'([^']+)'" FLP_TOKEN_PATTERN = r"set_store_options\({token: '([^']+)'" + def handleFree(self): # Find token and captcha key file_id = re.match(self.__pattern__, self.pyfile.url).group(1) @@ -70,7 +53,7 @@ class FilepostCom(SimpleHoster): post_dict = {"token": flp_token, "code": file_id, "file_pass": ''} if 'var is_pass_exists = true;' in self.html: - # Solve password + # Solve password for file_pass in self.getPassword().splitlines(): get_dict['JsHttpRequest'] = str(int(time() * 10000)) + '-xml' post_dict['file_pass'] = file_pass diff --git a/module/plugins/hoster/FilerNet.py b/module/plugins/hoster/FilerNet.py index 91805ca40..a36607f8a 100644 --- a/module/plugins/hoster/FilerNet.py +++ b/module/plugins/hoster/FilerNet.py @@ -1,36 +1,25 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://filer.net/get/ivgf5ztw53et3ogd # http://filer.net/get/hgo14gzcng3scbvv import pycurl import re + from urlparse import urljoin -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilerNet(SimpleHoster): __name__ = "FilerNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?filer\.net/get/(\w+)' __version__ = "0.03" + + __pattern__ = r'https?://(?:www\.)?filer\.net/get/(\w+)' + __description__ = """Filer.net hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/FilerioCom.py b/module/plugins/hoster/FilerioCom.py index 72c8c6c1c..5cac34b04 100644 --- a/module/plugins/hoster/FilerioCom.py +++ b/module/plugins/hoster/FilerioCom.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class FilerioCom(XFileSharingPro): __name__ = "FilerioCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(filerio\.(in|com)|filekeen\.com)/\w{12}' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?(filerio\.(in|com)|filekeen\.com)/\w{12}' + __description__ = """FileRio.in hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -17,6 +19,7 @@ class FilerioCom(XFileSharingPro): OFFLINE_PATTERN = r'<b>"File Not Found"</b>|File has been removed due to Copyright Claim' FILE_URL_REPLACEMENTS = [(r'http://.*?/', 'http://filerio.in/')] + def setup(self): self.resumeDownload = self.multiDL = self.premium diff --git a/module/plugins/hoster/FilesMailRu.py b/module/plugins/hoster/FilesMailRu.py index eda3a1714..bbb6fa57b 100644 --- a/module/plugins/hoster/FilesMailRu.py +++ b/module/plugins/hoster/FilesMailRu.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- import re -from module.plugins.Hoster import Hoster + from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.plugins.Plugin import chunks @@ -31,12 +32,15 @@ def getInfo(urls): class FilesMailRu(Hoster): __name__ = "FilesMailRu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?files\.mail\.ru/.*' __version__ = "0.31" + + __pattern__ = r'http://(?:www\.)?files\.mail\.ru/.*' + __description__ = """Files.mail.ru hoster plugin""" __author_name__ = "oZiRiz" __author_mail__ = "ich@oziriz.de" + def setup(self): if not self.account: self.multiDL = False @@ -84,7 +88,7 @@ class FilesMailRu(Hoster): # HTML file and the Download is marked as "finished" # then the download will be restarted. It's only bad for these # who want download a HTML-File (it's one in a million ;-) ) - # + # # The maximum UploadSize allowed on files.mail.ru at the moment is 100MB # so i set it to check every download because sometimes there are downloads # that contain the HTML-Text and 60MB ZEROs after that in a xyzfile.part1.rar file diff --git a/module/plugins/hoster/FileserveCom.py b/module/plugins/hoster/FileserveCom.py index 52f39bab8..b7f051d80 100644 --- a/module/plugins/hoster/FileserveCom.py +++ b/module/plugins/hoster/FileserveCom.py @@ -1,30 +1,14 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.network.RequestFactory import getURL from module.common.json_layer import json_loads -from module.plugins.internal.CaptchaService import ReCaptcha -from module.utils import parseFileSize - +from module.network.RequestFactory import getURL from module.plugins.Hoster import Hoster from module.plugins.Plugin import chunks from module.plugins.hoster.UnrestrictLi import secondsToMidnight +from module.plugins.internal.CaptchaService import ReCaptcha +from module.utils import parseFileSize def checkFile(plugin, urls): @@ -49,8 +33,10 @@ def checkFile(plugin, urls): class FileserveCom(Hoster): __name__ = "FileserveCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?fileserve\.com/file/(?P<id>[^/]+).*' __version__ = "0.52" + + __pattern__ = r'http://(?:www\.)?fileserve\.com/file/(?P<id>[^/]+).*' + __description__ = """Fileserve.com hoster plugin""" __author_name__ = ("jeix", "mkaay", "Paul King", "zoidberg") __author_mail__ = ("jeix@hasnomail.de", "mkaay@mkaay.de", "", "zoidberg@mujmail.cz") @@ -66,7 +52,6 @@ class FileserveCom(Hoster): DAILY_LIMIT_PATTERN = r'Your daily download limit has been reached' NOT_LOGGED_IN_PATTERN = r'<form (name="loginDialogBoxForm"|id="login_form")|<li><a href="/login.php">Login</a></li>' - # shares code with FilejungleCom and UploadstationCom def setup(self): self.resumeDownload = self.multiDL = self.premium diff --git a/module/plugins/hoster/FileshareInUa.py b/module/plugins/hoster/FileshareInUa.py index 7c8c6f8ff..f76942f6d 100644 --- a/module/plugins/hoster/FileshareInUa.py +++ b/module/plugins/hoster/FileshareInUa.py @@ -1,16 +1,19 @@ # -*- coding: utf-8 -*- import re -from module.plugins.Hoster import Hoster + from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.utils import parseFileSize class FileshareInUa(Hoster): __name__ = "FileshareInUa" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?fileshare.in.ua/[A-Za-z0-9]+' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?fileshare.in.ua/[A-Za-z0-9]+' + __description__ = """Fileshare.in.ua hoster plugin""" __author_name__ = "fwannmacher" __author_mail__ = "felipe@warhammerproject.com" @@ -19,6 +22,7 @@ class FileshareInUa(Hoster): PATTERN_FILESIZE = r'<b class="b-filesize">(.*?)</b>' PATTERN_OFFLINE = r"This file doesn't exist, or has been removed." + def setup(self): self.resumeDownload = self.multiDL = True diff --git a/module/plugins/hoster/FilezyNet.py b/module/plugins/hoster/FilezyNet.py index c9d603939..969007a8a 100644 --- a/module/plugins/hoster/FilezyNet.py +++ b/module/plugins/hoster/FilezyNet.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import re + from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -8,8 +9,12 @@ class FilezyNet(XFileSharingPro): __name__ = "FilezyNet" __type__ = "hoster" __version__ = "0.1" + __pattern__ = r'http://(?:www\.)?filezy.net/.*/.*.html' + __description__ = """Filezy.net hoster plugin""" + __author_name__ = None + __author_mail__ = None HOSTER_NAME = "filezy.net" @@ -17,6 +22,7 @@ class FilezyNet(XFileSharingPro): WAIT_PATTERN = r'<div id="countdown_str" class="seconds">\n<!--Wait--> <span id=".*?">(\d+)</span>' DOWNLOAD_JS_PATTERN = r"<script type='text/javascript'>eval(.*)" + def setup(self): self.resumeDownload = True self.multiDL = self.premium diff --git a/module/plugins/hoster/FiredriveCom.py b/module/plugins/hoster/FiredriveCom.py index 6a77ded55..47c6a4214 100644 --- a/module/plugins/hoster/FiredriveCom.py +++ b/module/plugins/hoster/FiredriveCom.py @@ -1,18 +1,4 @@ # -*- 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/>. -############################################################################### import re @@ -22,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FiredriveCom(SimpleHoster): __name__ = "FiredriveCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' __version__ = "0.03" + + __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' + __description__ = """Firedrive.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" diff --git a/module/plugins/hoster/FlyFilesNet.py b/module/plugins/hoster/FlyFilesNet.py index 1d7ba4fcc..2bf9e0caf 100644 --- a/module/plugins/hoster/FlyFilesNet.py +++ b/module/plugins/hoster/FlyFilesNet.py @@ -1,24 +1,31 @@ # -*- coding: utf-8 -*- import re -import urllib -from module.plugins.internal.SimpleHoster import SimpleHoster +from urllib import unquote + from module.network.RequestFactory import getURL +from module.plugins.internal.SimpleHoster import SimpleHoster class FlyFilesNet(SimpleHoster): __name__ = "FlyFilesNet" - __version__ = "0.1" __type__ = "hoster" + __version__ = "0.1" + __pattern__ = r'http://(?:www\.)?flyfiles\.net/.*' + __description__ = """FlyFiles.net hoster plugin""" + __author_name__ = None + __author_mail__ = None + SESSION_PATTERN = r'flyfiles\.net/(.*)/.*' FILE_NAME_PATTERN = r'flyfiles\.net/.*/(.*)' + def process(self, pyfile): name = re.search(self.FILE_NAME_PATTERN, pyfile.url).group(1) - pyfile.name = urllib.unquote_plus(name) + pyfile.name = unquote_plus(name) session = re.search(self.SESSION_PATTERN, pyfile.url).group(1) diff --git a/module/plugins/hoster/FourSharedCom.py b/module/plugins/hoster/FourSharedCom.py index 6a32b5325..2668a22d3 100644 --- a/module/plugins/hoster/FourSharedCom.py +++ b/module/plugins/hoster/FourSharedCom.py @@ -8,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FourSharedCom(SimpleHoster): __name__ = "FourSharedCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+?/.*' __version__ = "0.29" + + __pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+?/.*' + __description__ = """4Shared.com hoster plugin""" __author_name__ = ("jeix", "zoidberg") __author_mail__ = ("jeix@hasnomail.de", "zoidberg@mujmail.cz") diff --git a/module/plugins/hoster/FreakshareCom.py b/module/plugins/hoster/FreakshareCom.py index ff1056c9f..1b042bde3 100644 --- a/module/plugins/hoster/FreakshareCom.py +++ b/module/plugins/hoster/FreakshareCom.py @@ -10,12 +10,15 @@ from module.plugins.internal.CaptchaService import ReCaptcha class FreakshareCom(Hoster): __name__ = "FreakshareCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?freakshare\.(net|com)/files/\S*?/' __version__ = "0.39" + + __pattern__ = r'http://(?:www\.)?freakshare\.(net|com)/files/\S*?/' + __description__ = """Freakshare.com hoster plugin""" __author_name__ = ("sitacuisses", "spoob", "mkaay", "Toilal") __author_mail__ = ("sitacuisses@yahoo.de", "spoob@pyload.org", "mkaay@mkaay.de", "toilal.dev@gmail.com") + def setup(self): self.multiDL = False self.req_opts = [] @@ -164,7 +167,7 @@ class FreakshareCom(Hoster): if challenge: re_captcha = ReCaptcha(self) - (request_options['recaptcha_challenge_field'], + (request_options['recaptcha_challenge_field'], request_options['recaptcha_response_field']) = re_captcha.challenge(challenge.group(1)) return request_options diff --git a/module/plugins/hoster/FreeWayMe.py b/module/plugins/hoster/FreeWayMe.py index ef07ebaff..dc9188f05 100644 --- a/module/plugins/hoster/FreeWayMe.py +++ b/module/plugins/hoster/FreeWayMe.py @@ -1,32 +1,20 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.Hoster import Hoster class FreeWayMe(Hoster): __name__ = "FreeWayMe" - __version__ = "0.11" __type__ = "hoster" + __version__ = "0.11" + __pattern__ = r'https://(?:www\.)?free-way.me/.*' + __description__ = """FreeWayMe hoster plugin""" __author_name__ = "Nicolas Giese" __author_mail__ = "james@free-way.me" + def setup(self): self.resumeDownload = False self.chunkLimit = 1 diff --git a/module/plugins/hoster/FreevideoCz.py b/module/plugins/hoster/FreevideoCz.py index 0945f173a..d6549a8df 100644 --- a/module/plugins/hoster/FreevideoCz.py +++ b/module/plugins/hoster/FreevideoCz.py @@ -5,8 +5,8 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FreevideoCz(DeadHoster): __name__ = "FreevideoCz" - __version__ = "0.3" __type__ = "hoster" + __version__ = "0.3" __pattern__ = r'http://(?:www\.)?freevideo\.cz/vase-videa/.+' diff --git a/module/plugins/hoster/FshareVn.py b/module/plugins/hoster/FshareVn.py index 0b728495a..bc042cbcc 100644 --- a/module/plugins/hoster/FshareVn.py +++ b/module/plugins/hoster/FshareVn.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- import re + from time import strptime, mktime, gmtime -from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo from module.network.RequestFactory import getURL +from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo def getInfo(urls): @@ -26,8 +27,10 @@ def doubleDecode(m): class FshareVn(SimpleHoster): __name__ = "FshareVn" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?fshare.vn/file/.*' __version__ = "0.16" + + __pattern__ = r'http://(?:www\.)?fshare.vn/file/.*' + __description__ = """FshareVn hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/Ftp.py b/module/plugins/hoster/Ftp.py index 07169ff2e..8de3f4f47 100644 --- a/module/plugins/hoster/Ftp.py +++ b/module/plugins/hoster/Ftp.py @@ -1,36 +1,24 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" -from urlparse import urlparse -from urllib import quote, unquote import pycurl import re +from urllib import quote, unquote +from urlparse import urlparse + from module.plugins.Hoster import Hoster class Ftp(Hoster): __name__ = "Ftp" - __version__ = "0.41" - __pattern__ = r'(ftps?|sftp)://(.*?:.*?@)?.*?/.*' # ftp://user:password@ftp.server.org/path/to/file __type__ = "hoster" + __version__ = "0.41" + __description__ = """Download from ftp directory""" __author_name__ = ("jeix", "mkaay", "zoidberg") __author_mail__ = ("jeix@hasnomail.com", "mkaay@mkaay.de", "zoidberg@mujmail.cz") + def setup(self): self.chunkLimit = -1 self.resumeDownload = True @@ -72,7 +60,7 @@ class Ftp(Hoster): pyfile.size = int(m.group(1)) self.download(pyfile.url) else: - #Naive ftp directory listing + #Naive ftp directory listing if re.search(r'^25\d.*?"', self.req.http.header, re.M): pyfile.url = pyfile.url.rstrip('/') pkgname = "/".join(pyfile.package().name, urlparse(pyfile.url).path.rpartition('/')[2]) diff --git a/module/plugins/hoster/GamefrontCom.py b/module/plugins/hoster/GamefrontCom.py index 8e0f8565f..66cef3013 100644 --- a/module/plugins/hoster/GamefrontCom.py +++ b/module/plugins/hoster/GamefrontCom.py @@ -1,16 +1,19 @@ # -*- coding: utf-8 -*- import re -from module.plugins.Hoster import Hoster + from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.utils import parseFileSize class GamefrontCom(Hoster): __name__ = "GamefrontCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?gamefront.com/files/[A-Za-z0-9]+' __version__ = "0.04" + + __pattern__ = r'http://(?:www\.)?gamefront.com/files/[A-Za-z0-9]+' + __description__ = """Gamefront.com hoster plugin""" __author_name__ = "fwannmacher" __author_mail__ = "felipe@warhammerproject.com" @@ -19,6 +22,7 @@ class GamefrontCom(Hoster): PATTERN_FILESIZE = r'<dt>File Size:</dt>[\n\s]*<dd>(.*?)</dd>' PATTERN_OFFLINE = r"This file doesn't exist, or has been removed." + def setup(self): self.resumeDownload = self.multiDL = True self.chunkLimit = -1 diff --git a/module/plugins/hoster/GigapetaCom.py b/module/plugins/hoster/GigapetaCom.py index 9d9825cb8..966ac8094 100644 --- a/module/plugins/hoster/GigapetaCom.py +++ b/module/plugins/hoster/GigapetaCom.py @@ -1,23 +1,9 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from random import randint + from pycurl import FOLLOWLOCATION +from random import randint from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -25,8 +11,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class GigapetaCom(SimpleHoster): __name__ = "GigapetaCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?gigapeta\.com/dl/\w+' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?gigapeta\.com/dl/\w+' + __description__ = """GigaPeta.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/GooIm.py b/module/plugins/hoster/GooIm.py index 9f06e5ca0..b2926e92a 100644 --- a/module/plugins/hoster/GooIm.py +++ b/module/plugins/hoster/GooIm.py @@ -1,18 +1,4 @@ # -*- 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/>. # -############################################################################ import re @@ -22,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class GooIm(SimpleHoster): __name__ = "GooIm" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?goo\.im/.+' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?goo\.im/.+' + __description__ = """Goo.im hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" @@ -31,6 +19,7 @@ class GooIm(SimpleHoster): FILE_NAME_PATTERN = r'<h3>Filename: (?P<N>.+)</h3>' OFFLINE_PATTERN = r'The file you requested was not found' + def setup(self): self.chunkLimit = -1 self.multiDL = self.resumeDownload = True diff --git a/module/plugins/hoster/HellshareCz.py b/module/plugins/hoster/HellshareCz.py index 54f931eb2..239d90f46 100644 --- a/module/plugins/hoster/HellshareCz.py +++ b/module/plugins/hoster/HellshareCz.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class HellshareCz(SimpleHoster): __name__ = "HellshareCz" __type__ = "hoster" - __pattern__ = r'(http://(?:www\.)?hellshare\.(?:cz|com|sk|hu|pl)/[^?]*/\d+).*' __version__ = "0.82" + + __pattern__ = r'(http://(?:www\.)?hellshare\.(?:cz|com|sk|hu|pl)/[^?]*/\d+).*' + __description__ = """Hellshare.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -33,6 +21,7 @@ class HellshareCz(SimpleHoster): OFFLINE_PATTERN = r'<h1>File not found.</h1>' SHOW_WINDOW_PATTERN = r'<a href="([^?]+/(\d+)/\?do=(fileDownloadButton|relatedFileDownloadButton-\2)-showDownloadWindow)"' + def setup(self): self.resumeDownload = self.multiDL = True if self.account else False self.chunkLimit = 1 diff --git a/module/plugins/hoster/HellspyCz.py b/module/plugins/hoster/HellspyCz.py index 399dea818..5800f28a0 100644 --- a/module/plugins/hoster/HellspyCz.py +++ b/module/plugins/hoster/HellspyCz.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class HellspyCz(DeadHoster): __name__ = "HellspyCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(?:hellspy\.(?:cz|com|sk|hu|pl)|sciagaj.pl)(/\S+/\d+)/?.*' __version__ = "0.28" + + __pattern__ = r'http://(?:www\.)?(?:hellspy\.(?:cz|com|sk|hu|pl)|sciagaj.pl)(/\S+/\d+)/?.*' + __description__ = """HellSpy.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/HotfileCom.py b/module/plugins/hoster/HotfileCom.py index 9a0947f2c..aac312a6b 100644 --- a/module/plugins/hoster/HotfileCom.py +++ b/module/plugins/hoster/HotfileCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class HotfileCom(DeadHoster): __name__ = "HotfileCom" __type__ = "hoster" - __pattern__ = r'https?://(www.)?hotfile\.com/dl/\d+/[0-9a-zA-Z]+/' __version__ = "0.37" + + __pattern__ = r'https?://(www.)?hotfile\.com/dl/\d+/[0-9a-zA-Z]+/' + __description__ = """Hotfile.com hoster plugin""" __author_name__ = ("sitacuisses", "spoob", "mkaay", "JoKoT3") __author_mail__ = ("sitacuisses@yhoo.de", "spoob@pyload.org", "mkaay@mkaay.de", "jokot3@gmail.com") diff --git a/module/plugins/hoster/HugefilesNet.py b/module/plugins/hoster/HugefilesNet.py index 2375c75f8..bf0a26c68 100644 --- a/module/plugins/hoster/HugefilesNet.py +++ b/module/plugins/hoster/HugefilesNet.py @@ -1,20 +1,6 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://hugefiles.net/prthf9ya4w6s from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -23,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class HugefilesNet(XFileSharingPro): __name__ = "HugefilesNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?hugefiles\.net/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?hugefiles\.net/\w{12}' + __description__ = """Hugefiles.net hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/HundredEightyUploadCom.py b/module/plugins/hoster/HundredEightyUploadCom.py index 6e5ffac30..e2e34ad00 100644 --- a/module/plugins/hoster/HundredEightyUploadCom.py +++ b/module/plugins/hoster/HundredEightyUploadCom.py @@ -1,20 +1,6 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://180upload.com/js9qdm6kjnrs from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -23,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class HundredEightyUploadCom(XFileSharingPro): __name__ = "HundredEightyUploadCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?180upload\.com/(\w+).*' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?180upload\.com/(\w+).*' + __description__ = """180upload.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/IFileWs.py b/module/plugins/hoster/IFileWs.py index 35b3544a1..94d3e599e 100644 --- a/module/plugins/hoster/IFileWs.py +++ b/module/plugins/hoster/IFileWs.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class IFileWs(XFileSharingPro): __name__ = "IFileWs" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?ifile\.ws/\w+(/.+)?' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?ifile\.ws/\w+(/.+)?' + __description__ = """Ifile.ws hoster plugin""" __author_name__ = "z00nx" __author_mail__ = "z00nx0@gmail.com" diff --git a/module/plugins/hoster/IcyFilesCom.py b/module/plugins/hoster/IcyFilesCom.py index 2f3c65c3b..a7c69009e 100644 --- a/module/plugins/hoster/IcyFilesCom.py +++ b/module/plugins/hoster/IcyFilesCom.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class IcyFilesCom(DeadHoster): __name__ = "IcyFilesCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?icyfiles\.com/(.*)' __version__ = "0.06" + + __pattern__ = r'http://(?:www\.)?icyfiles\.com/(.*)' + __description__ = """IcyFiles.com hoster plugin""" __author_name__ = "godofdream" __author_mail__ = "soilfiction@gmail.com" diff --git a/module/plugins/hoster/IfileIt.py b/module/plugins/hoster/IfileIt.py index b75daf3af..5dfd14d82 100644 --- a/module/plugins/hoster/IfileIt.py +++ b/module/plugins/hoster/IfileIt.py @@ -1,31 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.common.json_layer import json_loads from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class IfileIt(SimpleHoster): __name__ = "IfileIt" __type__ = "hoster" - __pattern__ = r'^unmatchable$' __version__ = "0.27" + + __pattern__ = r'^unmatchable$' + __description__ = """Ifile.it""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -36,6 +24,7 @@ class IfileIt(SimpleHoster): OFFLINE_PATTERN = r'<span style="cursor: default;[^>]*>\s* \s*<strong>\s*</strong>\s*</span>' TEMP_OFFLINE_PATTERN = r'<span class="msg_red">Downloading of this file is temporarily disabled</span>' + def handleFree(self): ukey = re.match(self.__pattern__, self.pyfile.url).group(1) json_url = 'http://ifile.it/new_download-request.json' diff --git a/module/plugins/hoster/IfolderRu.py b/module/plugins/hoster/IfolderRu.py index 912dbd491..efa8d8ab9 100644 --- a/module/plugins/hoster/IfolderRu.py +++ b/module/plugins/hoster/IfolderRu.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class IfolderRu(SimpleHoster): __name__ = "IfolderRu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(?:ifolder\.ru|rusfolder\.(?:com|net|ru))/(?:files/)?(?P<ID>\d+).*' __version__ = "0.38" + + __pattern__ = r'http://(?:www\.)?(?:ifolder\.ru|rusfolder\.(?:com|net|ru))/(?:files/)?(?P<ID>\d+).*' + __description__ = """Ifolder.ru hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -39,6 +27,7 @@ class IfolderRu(SimpleHoster): LINK_PATTERN = r'<a id="download_file_href" href="([^"]+)"' WRONG_CAPTCHA_PATTERN = ur'<font color=Red>МевеÑÐœÑй кПЎ,<br>ввеЎОÑе еÑе Ñаз</font><br>' + def setup(self): self.resumeDownload = self.multiDL = True if self.account else False self.chunkLimit = 1 diff --git a/module/plugins/hoster/JumbofilesCom.py b/module/plugins/hoster/JumbofilesCom.py index ad648dacf..2c9e4418b 100644 --- a/module/plugins/hoster/JumbofilesCom.py +++ b/module/plugins/hoster/JumbofilesCom.py @@ -1,14 +1,17 @@ # -*- coding: utf-8 -*- import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class JumbofilesCom(SimpleHoster): __name__ = "JumbofilesCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?jumbofiles.com/(\w{12}).*' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?jumbofiles.com/(\w{12}).*' + __description__ = """JumboFiles.com hoster plugin""" __author_name__ = "godofdream" __author_mail__ = "soilfiction@gmail.com" @@ -17,6 +20,7 @@ class JumbofilesCom(SimpleHoster): OFFLINE_PATTERN = r'Not Found or Deleted / Disabled due to inactivity or DMCA' LINK_PATTERN = r'<meta http-equiv="refresh" content="10;url=(.+)">' + def setup(self): self.resumeDownload = self.multiDL = True diff --git a/module/plugins/hoster/Keep2shareCC.py b/module/plugins/hoster/Keep2shareCC.py index 12df08743..c1ec66435 100644 --- a/module/plugins/hoster/Keep2shareCC.py +++ b/module/plugins/hoster/Keep2shareCC.py @@ -1,34 +1,23 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://k2s.cc/file/55fb73e1c00c5/random.bin import re + from urlparse import urlparse, urljoin -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class Keep2shareCC(SimpleHoster): __name__ = "Keep2shareCC" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(keep2share|k2s|keep2s)\.cc/file/(?P<ID>\w+)' __version__ = "0.10" + + __pattern__ = r'https?://(?:www\.)?(keep2share|k2s|keep2s)\.cc/file/(?P<ID>\w+)' + __description__ = """Keep2share.cc hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/LemUploadsCom.py b/module/plugins/hoster/LemUploadsCom.py index 0d4facea2..b8a6062cb 100644 --- a/module/plugins/hoster/LemUploadsCom.py +++ b/module/plugins/hoster/LemUploadsCom.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +# # Test links: # BigBuckBunny_320x180.mp4 - 61.7 Mb - http://lemuploads.com/uwol0aly9dld @@ -9,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class LemUploadsCom(XFileSharingPro): __name__ = "LemUploadsCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?lemuploads.com/\w{12}' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?lemuploads.com/\w{12}' + __description__ = """LemUploads.com hoster plugin""" __author_name__ = "t4skforce" __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index 1a5928f17..3159be4f1 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -1,30 +1,16 @@ # -*- coding: utf-8 -*- - -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - +# # API Documentation: # http://api.letitbit.net/reg/static/api.pdf -# Test links (random.bin): +# +# Test links: # http://letitbit.net/download/07874.0b5709a7d3beee2408bb1f2eefce/random.bin.html import re -import urllib -from module.common.json_layer import json_loads, json_dumps +from urllib import urlencode, urlopen +from module.common.json_layer import json_loads, json_dumps from module.plugins.hoster.UnrestrictLi import secondsToMidnight from module.plugins.internal.CaptchaService import ReCaptcha from module.plugins.internal.SimpleHoster import SimpleHoster @@ -32,8 +18,8 @@ from module.plugins.internal.SimpleHoster import SimpleHoster def api_download_info(url): json_data = ["yw7XQy2v9", ["download/info", {"link": url}]] - post_data = urllib.urlencode({'r': json_dumps(json_data)}) - api_rep = urllib.urlopen("http://api.letitbit.net/json", data=post_data).read() + post_data = urlencode({'r': json_dumps(json_data)}) + api_rep = urlopen("http://api.letitbit.net/json", data=post_data).read() return json_loads(api_rep) @@ -50,8 +36,10 @@ def getInfo(urls): class LetitbitNet(SimpleHoster): __name__ = "LetitbitNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(letitbit|shareflare).net/download/.*' __version__ = "0.24" + + __pattern__ = r'http://(?:www\.)?(letitbit|shareflare).net/download/.*' + __description__ = """Letitbit.net hoster plugin""" __author_name__ = ("zoidberg", "z00nx") __author_mail__ = ("zoidberg@mujmail.cz", "z00nx0@gmail.com") diff --git a/module/plugins/hoster/LinksnappyCom.py b/module/plugins/hoster/LinksnappyCom.py index 3de19945b..e4200e9f2 100644 --- a/module/plugins/hoster/LinksnappyCom.py +++ b/module/plugins/hoster/LinksnappyCom.py @@ -1,23 +1,27 @@ # -*- coding: utf-8 -*- import re + from urlparse import urlsplit -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads, json_dumps +from module.plugins.Hoster import Hoster class LinksnappyCom(Hoster): __name__ = "LinksnappyCom" - __version__ = "0.02" __type__ = "hoster" + __version__ = "0.02" + __pattern__ = r'https?://(?:[^/]*\.)?linksnappy\.com' + __description__ = """Linksnappy.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" SINGLE_CHUNK_HOSTERS = ('easybytez.com') + def setup(self): self.chunkLimit = -1 self.resumeDownload = True diff --git a/module/plugins/hoster/LoadTo.py b/module/plugins/hoster/LoadTo.py index af86cd026..a35712124 100644 --- a/module/plugins/hoster/LoadTo.py +++ b/module/plugins/hoster/LoadTo.py @@ -1,20 +1,6 @@ # -*- 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/>. # -############################################################################ - -# Test links (random.bin): +# +# Test links: # http://www.load.to/JWydcofUY6/random.bin # http://www.load.to/oeSmrfkXE/random100.bin @@ -26,8 +12,8 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class LoadTo(SimpleHoster): __name__ = "LoadTo" - __version__ = "0.15" __type__ = "hoster" + __version__ = "0.15" __pattern__ = r'http://(?:www\.)?load\.to/\w+' diff --git a/module/plugins/hoster/LomafileCom.py b/module/plugins/hoster/LomafileCom.py index 9f05d952e..98b89a732 100644 --- a/module/plugins/hoster/LomafileCom.py +++ b/module/plugins/hoster/LomafileCom.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + import re from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -6,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class LomafileCom(SimpleHoster): __name__ = "LomafileCom" __type__ = "hoster" - __pattern__ = r'https?://lomafile\.com/.+/[\w\.]+' __version__ = "0.1" + + __pattern__ = r'https?://lomafile\.com/.+/[\w\.]+' + __description__ = """Lomafile.com hoster plugin""" __author_name__ = "nath_schwarz" __author_mail__ = "nathan.notwhite@gmail.com" @@ -16,6 +20,7 @@ class LomafileCom(SimpleHoster): FILE_SIZE_PATTERN = r'\((?P<S>\d+)\s(?P<U>\w+)\)' FILE_OFFLINE_PATTERN = r'Software error' + def handleFree(self): for _ in range(3): captcha_id = re.search(r'src="http://lomafile\.com/captchas/(?P<id>\w+)\.jpg"', self.html) diff --git a/module/plugins/hoster/LuckyShareNet.py b/module/plugins/hoster/LuckyShareNet.py index 9479f583e..60f1204e5 100644 --- a/module/plugins/hoster/LuckyShareNet.py +++ b/module/plugins/hoster/LuckyShareNet.py @@ -1,17 +1,20 @@ # -*- coding: utf-8 -*- import re + from module.lib.bottle import json_loads -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class LuckyShareNet(SimpleHoster): __name__ = "LuckyShareNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?luckyshare.net/(?P<ID>\d{10,})' __version__ = "0.02" + + __pattern__ = r'https?://(?:www\.)?luckyshare.net/(?P<ID>\d{10,})' + __description__ = """LuckyShare.net hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/MediafireCom.py b/module/plugins/hoster/MediafireCom.py index 3281f66e6..d0878a34d 100644 --- a/module/plugins/hoster/MediafireCom.py +++ b/module/plugins/hoster/MediafireCom.py @@ -1,23 +1,9 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo + from module.plugins.internal.CaptchaService import SolveMedia +from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo from module.network.RequestFactory import getURL @@ -61,8 +47,10 @@ def getInfo(urls): class MediafireCom(SimpleHoster): __name__ = "MediafireCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?mediafire\.com/(file/|(view/?|download.php)?\?)(\w{11}|\w{15})($|/)' __version__ = "0.79" + + __pattern__ = r'http://(?:www\.)?mediafire\.com/(file/|(view/?|download.php)?\?)(\w{11}|\w{15})($|/)' + __description__ = """Mediafire.com hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") @@ -78,6 +66,7 @@ class MediafireCom(SimpleHoster): FILE_INFO_PATTERN = r"oFileSharePopup\.ald\('(?P<ID>[^']*)','(?P<N>[^']*)','(?P<S>[^']*)','','(?P<sha256>[^']*)'\)" OFFLINE_PATTERN = r'class="error_msg_title"> Invalid or Deleted File. </div>' + def setup(self): self.multiDL = False diff --git a/module/plugins/hoster/MegaDebridEu.py b/module/plugins/hoster/MegaDebridEu.py index 1e68cec22..13415d063 100644 --- a/module/plugins/hoster/MegaDebridEu.py +++ b/module/plugins/hoster/MegaDebridEu.py @@ -1,38 +1,27 @@ # -*- 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/>. # -############################################################################ import re + from urllib import unquote_plus -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster class MegaDebridEu(Hoster): __name__ = "MegaDebridEu" - __version__ = "0.4" __type__ = "hoster" + __version__ = "0.4" + __pattern__ = r'^https?://(?:w{3}\d+\.mega-debrid.eu|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/download/file/[^/]+/.+$' + __description__ = """mega-debrid.eu hoster plugin""" __author_name__ = "D.Ducatel" __author_mail__ = "dducatel@je-geek.fr" - # Define the base URL of MegaDebrid api API_URL = "https://www.mega-debrid.eu/api.php" + def getFilename(self, url): try: return unquote_plus(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/MegaFilesSe.py b/module/plugins/hoster/MegaFilesSe.py index e4895bc87..975708597 100644 --- a/module/plugins/hoster/MegaFilesSe.py +++ b/module/plugins/hoster/MegaFilesSe.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class MegaFilesSe(XFileSharingPro): __name__ = "MegaFilesSe" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?megafiles\.se/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?megafiles\.se/\w{12}' + __description__ = """MegaFiles.se hoster plugin""" __author_name__ = "t4skforce" __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" diff --git a/module/plugins/hoster/MegaNz.py b/module/plugins/hoster/MegaNz.py index cf35f2d2d..5562aad06 100644 --- a/module/plugins/hoster/MegaNz.py +++ b/module/plugins/hoster/MegaNz.py @@ -1,26 +1,25 @@ # -*- coding: utf-8 -*- -import re import random -from array import array -from os import remove -from base64 import standard_b64decode +import re from Crypto.Cipher import AES from Crypto.Util import Counter +from array import array +from base64 import standard_b64decode +from os import remove from module.common.json_layer import json_loads, json_dumps from module.plugins.Hoster import Hoster -#def getInfo(urls): -# pass - class MegaNz(Hoster): __name__ = "MegaNz" __type__ = "hoster" - __pattern__ = r'https?://([a-z0-9]+\.)?mega\.co\.nz/#!([a-zA-Z0-9!_\-]+)' __version__ = "0.14" + + __pattern__ = r'https?://([a-z0-9]+\.)?mega\.co\.nz/#!([a-zA-Z0-9!_\-]+)' + __description__ = """Mega.co.nz hoster plugin""" __author_name__ = "RaNaN" __author_mail__ = "ranan@pyload.org" @@ -28,6 +27,7 @@ class MegaNz(Hoster): API_URL = "https://g.api.mega.co.nz/cs?id=%d" FILE_SUFFIX = ".crypted" + def b64_decode(self, data): data = data.replace("-", "+").replace("_", "/") return standard_b64decode(data + '=' * (-len(data) % 4)) diff --git a/module/plugins/hoster/MegacrypterCom.py b/module/plugins/hoster/MegacrypterCom.py index aa167ba30..7a86dbf70 100644 --- a/module/plugins/hoster/MegacrypterCom.py +++ b/module/plugins/hoster/MegacrypterCom.py @@ -9,8 +9,10 @@ from module.plugins.hoster.MegaNz import MegaNz class MegacrypterCom(MegaNz): __name__ = "MegacrypterCom" __type__ = "hoster" - __pattern__ = r'(https?://[a-z0-9]{0,10}\.?megacrypter\.com/[a-zA-Z0-9!_\-]+)' __version__ = "0.2" + + __pattern__ = r'(https?://[a-z0-9]{0,10}\.?megacrypter\.com/[a-zA-Z0-9!_\-]+)' + __description__ = """Megacrypter.com decrypter plugin""" __author_name__ = "GonzaloSR" __author_mail__ = "gonzalo@gonzalosr.com" @@ -18,6 +20,7 @@ class MegacrypterCom(MegaNz): API_URL = "http://megacrypter.com/api" FILE_SUFFIX = ".crypted" + def callApi(self, **kwargs): """ Dispatch a call to the api, see megacrypter.com/api_doc """ self.logDebug("JSON request: " + json_dumps(kwargs)) diff --git a/module/plugins/hoster/MegareleaseOrg.py b/module/plugins/hoster/MegareleaseOrg.py index eea265323..05b05c3b5 100644 --- a/module/plugins/hoster/MegareleaseOrg.py +++ b/module/plugins/hoster/MegareleaseOrg.py @@ -1,18 +1,4 @@ # -*- 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.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -20,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class MegareleaseOrg(XFileSharingPro): __name__ = "MegareleaseOrg" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?megarelease.org/\w{12}' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?megarelease.org/\w{12}' + __description__ = """Megarelease.org hoster plugin""" __author_name__ = ("derek3x", "stickell") __author_mail__ = ("derek3x@vmail.me", "l.stickell@yahoo.it") diff --git a/module/plugins/hoster/MegasharesCom.py b/module/plugins/hoster/MegasharesCom.py index f8fa338f3..c12897ed0 100644 --- a/module/plugins/hoster/MegasharesCom.py +++ b/module/plugins/hoster/MegasharesCom.py @@ -1,30 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from time import time + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MegasharesCom(SimpleHoster): __name__ = "MegasharesCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?megashares.com/.*' __version__ = "0.24" + + __pattern__ = r'http://(?:www\.)?megashares.com/.*' + __description__ = """Megashares.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/MovReelCom.py b/module/plugins/hoster/MovReelCom.py index 266e9dc55..6b13422b0 100644 --- a/module/plugins/hoster/MovReelCom.py +++ b/module/plugins/hoster/MovReelCom.py @@ -1,16 +1,15 @@ # -*- coding: utf-8 -*- -#import re from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo -#from pycurl import FOLLOWLOCATION, LOW_SPEED_TIME - class MovReelCom(XFileSharingPro): __name__ = "MovReelCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?movreel.com/.*' __version__ = "1.20" + + __pattern__ = r'http://(?:www\.)?movreel.com/.*' + __description__ = """MovReel.com hoster plugin""" __author_name__ = "JorisV83" __author_mail__ = "jorisv83-pyload@yahoo.com" diff --git a/module/plugins/hoster/MultiDebridCom.py b/module/plugins/hoster/MultiDebridCom.py index 71f3df908..f70fa0f0e 100644 --- a/module/plugins/hoster/MultiDebridCom.py +++ b/module/plugins/hoster/MultiDebridCom.py @@ -1,34 +1,23 @@ # -*- 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/>. # -############################################################################ import re -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster class MultiDebridCom(Hoster): __name__ = "MultiDebridCom" - __version__ = "0.03" __type__ = "hoster" + __version__ = "0.03" + __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' + __description__ = """Multi-debrid.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" + def setup(self): self.chunkLimit = -1 self.resumeDownload = True diff --git a/module/plugins/hoster/MultishareCz.py b/module/plugins/hoster/MultishareCz.py index c2fbaf46e..fdf5fbd70 100644 --- a/module/plugins/hoster/MultishareCz.py +++ b/module/plugins/hoster/MultishareCz.py @@ -1,30 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from random import random + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MultishareCz(SimpleHoster): __name__ = "MultishareCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?multishare.cz/stahnout/(?P<ID>\d+).*' __version__ = "0.34" + + __pattern__ = r'http://(?:www\.)?multishare.cz/stahnout/(?P<ID>\d+).*' + __description__ = """MultiShare.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -33,6 +22,7 @@ class MultishareCz(SimpleHoster): OFFLINE_PATTERN = ur'<h1>Stáhnout soubor</h1><p><strong>PoÅŸadovanÃœ soubor neexistuje.</strong></p>' FILE_SIZE_REPLACEMENTS = [(' ', '')] + def process(self, pyfile): msurl = re.match(self.__pattern__, pyfile.url) if msurl: diff --git a/module/plugins/hoster/MyvideoDe.py b/module/plugins/hoster/MyvideoDe.py index 21d95d092..630c97ec0 100644 --- a/module/plugins/hoster/MyvideoDe.py +++ b/module/plugins/hoster/MyvideoDe.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster from module.unescape import unescape @@ -8,12 +9,15 @@ from module.unescape import unescape class MyvideoDe(Hoster): __name__ = "MyvideoDe" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?myvideo.de/watch/' __version__ = "0.9" + + __pattern__ = r'http://(?:www\.)?myvideo.de/watch/' + __description__ = """Myvideo.de hoster plugin""" __author_name__ = "spoob" __author_mail__ = "spoob@pyload.org" + def process(self, pyfile): self.pyfile = pyfile self.download_html() diff --git a/module/plugins/hoster/NarodRu.py b/module/plugins/hoster/NarodRu.py index 396e207a0..18bed0231 100644 --- a/module/plugins/hoster/NarodRu.py +++ b/module/plugins/hoster/NarodRu.py @@ -1,30 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from random import random + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class NarodRu(SimpleHoster): __name__ = "NarodRu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?narod(\.yandex)?\.ru/(disk|start/[0-9]+\.\w+-narod\.yandex\.ru)/(?P<ID>\d+)/.+' __version__ = "0.1" + + __pattern__ = r'http://(?:www\.)?narod(\.yandex)?\.ru/(disk|start/[0-9]+\.\w+-narod\.yandex\.ru)/(?P<ID>\d+)/.+' + __description__ = """Narod.ru hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -40,6 +29,7 @@ class NarodRu(SimpleHoster): CAPTCHA_PATTERN = r'<number url="(.*?)">(\w+)</number>' LINK_PATTERN = r'<a class="h-link" rel="yandex_bar" href="(.+?)">' + def handleFree(self): for _ in xrange(5): self.html = self.load('http://narod.ru/disk/getcapchaxml/?rnd=%d' % int(random() * 777)) diff --git a/module/plugins/hoster/NetloadIn.py b/module/plugins/hoster/NetloadIn.py index 2baeed5da..a45aafa63 100644 --- a/module/plugins/hoster/NetloadIn.py +++ b/module/plugins/hoster/NetloadIn.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- import re + from time import sleep, time -from module.plugins.Hoster import Hoster from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.plugins.Plugin import chunks @@ -51,12 +52,15 @@ def getInfo(urls): class NetloadIn(Hoster): __name__ = "NetloadIn" __type__ = "hoster" - __pattern__ = r'https?://(?:[^/]*\.)?netload\.in/(?:datei(.*?)(?:\.htm|/)|index.php?id=10&file_id=)' __version__ = "0.45" + + __pattern__ = r'https?://(?:[^/]*\.)?netload\.in/(?:datei(.*?)(?:\.htm|/)|index.php?id=10&file_id=)' + __description__ = """Netload.in hoster plugin""" __author_name__ = ("spoob", "RaNaN", "Gregy") __author_mail__ = ("spoob@pyload.org", "ranan@pyload.org", "gregy@gregy.cz") + def setup(self): self.multiDL = self.resumeDownload = self.premium @@ -151,7 +155,7 @@ class NetloadIn(Hoster): self.offline() name = re.search(r'class="dl_first_filename">([^<]+)', page, re.MULTILINE) - # the found filename is not truncated + # the found filename is not truncated if name: name = name.group(1).strip() if not name.endswith(".."): diff --git a/module/plugins/hoster/NosuploadCom.py b/module/plugins/hoster/NosuploadCom.py index ff7628c46..3187dd89f 100644 --- a/module/plugins/hoster/NosuploadCom.py +++ b/module/plugins/hoster/NosuploadCom.py @@ -9,7 +9,9 @@ class NosuploadCom(XFileSharingPro): __name__ = "NosuploadCom" __type__ = "hoster" __version__ = "0.1" + __pattern__ = r'http://(?:www\.)?nosupload\.com/\?d=\w{12}' + __description__ = """Nosupload.com hoster plugin""" __author_name__ = "igel" __author_mail__ = "igelkun@myopera.com" @@ -20,6 +22,7 @@ class NosuploadCom(XFileSharingPro): LINK_PATTERN = r'<a class="select" href="(http://.+?)">Download</a>' WAIT_PATTERN = r'Please wait.*?>(\d+)</span>' + def getDownloadLink(self): # stage1: press the "Free Download" button data = self.getPostParameters() diff --git a/module/plugins/hoster/NovafileCom.py b/module/plugins/hoster/NovafileCom.py index 9b4d50907..4a89064ea 100644 --- a/module/plugins/hoster/NovafileCom.py +++ b/module/plugins/hoster/NovafileCom.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- - -# Test links (random.bin): +# +# Test links: # http://novafile.com/vfun4z6o2cit # http://novafile.com/s6zrr5wemuz4 @@ -10,8 +10,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class NovafileCom(XFileSharingPro): __name__ = "NovafileCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?novafile\.com/\w{12}' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?novafile\.com/\w{12}' + __description__ = """Novafile.com hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") @@ -23,6 +25,7 @@ class NovafileCom(XFileSharingPro): LINK_PATTERN = r'<a href="(http://s\d+\.novafile\.com/.*?)" class="btn btn-green">Download File</a>' WAIT_PATTERN = r'<p>Please wait <span id="count"[^>]*>(\d+)</span> seconds</p>' + def setup(self): self.multiDL = False diff --git a/module/plugins/hoster/NowDownloadEu.py b/module/plugins/hoster/NowDownloadEu.py index cf4f46805..193698f17 100644 --- a/module/plugins/hoster/NowDownloadEu.py +++ b/module/plugins/hoster/NowDownloadEu.py @@ -1,21 +1,7 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.utils import fixup @@ -23,8 +9,10 @@ from module.utils import fixup class NowDownloadEu(SimpleHoster): __name__ = "NowDownloadEu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?nowdownload\.(ch|co|eu|sx)/(dl/|download\.php\?id=)(?P<ID>\w+)' __version__ = "0.05" + + __pattern__ = r'http://(?:www\.)?nowdownload\.(ch|co|eu|sx)/(dl/|download\.php\?id=)(?P<ID>\w+)' + __description__ = """NowDownload.ch hoster plugin""" __author_name__ = ("godofdream", "Walter Purcaro") __author_mail__ = ("soilfiction@gmail.com", "vuolter@gmail.com") diff --git a/module/plugins/hoster/OboomCom.py b/module/plugins/hoster/OboomCom.py index b6eeba3c8..f30c64184 100644 --- a/module/plugins/hoster/OboomCom.py +++ b/module/plugins/hoster/OboomCom.py @@ -1,20 +1,22 @@ # -*- coding: utf-8 -*- - -# Test link: +# +# Test links: # https://www.oboom.com/B7CYZIEB/10Mio.dat import re +from module.common.json_layer import json_loads from module.plugins.Hoster import Hoster from module.plugins.internal.CaptchaService import ReCaptcha -from module.common.json_layer import json_loads class OboomCom(Hoster): __name__ = "OboomCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?oboom\.com/(#(id=|/)?)?(?P<ID>[A-Z0-9]{8})' __version__ = "0.1" + + __pattern__ = r'https?://(?:www\.)?oboom\.com/(#(id=|/)?)?(?P<ID>[A-Z0-9]{8})' + __description__ = """oboom.com hoster plugin""" __author_name__ = "stanley" __author_mail__ = "stanley.foerster@gmail.com" diff --git a/module/plugins/hoster/OneFichierCom.py b/module/plugins/hoster/OneFichierCom.py index 2a98a97dc..0536f7185 100644 --- a/module/plugins/hoster/OneFichierCom.py +++ b/module/plugins/hoster/OneFichierCom.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- - -# Test links (random.bin): +# +# Test links: # http://5pnm24ltcw.1fichier.com/ import re @@ -11,8 +11,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class OneFichierCom(SimpleHoster): __name__ = "OneFichierCom" __type__ = "hoster" - __pattern__ = r'(http://(?P<id>\w+)\.(?P<host>(1fichier|d(es)?fichiers|pjointe)\.(com|fr|net|org)|(cjoint|mesfichiers|piecejointe|oi)\.(org|net)|tenvoi\.(com|org|net)|dl4free\.com|alterupload\.com|megadl.fr))/?' __version__ = "0.61" + + __pattern__ = r'(http://(?P<id>\w+)\.(?P<host>(1fichier|d(es)?fichiers|pjointe)\.(com|fr|net|org)|(cjoint|mesfichiers|piecejointe|oi)\.(org|net)|tenvoi\.(com|org|net)|dl4free\.com|alterupload\.com|megadl.fr))/?' + __description__ = """1fichier.com hoster plugin""" __author_name__ = ("fragonib", "the-razer", "zoidberg", "imclem", "stickell", "Elrick69") __author_mail__ = ("fragonib[AT]yahoo[DOT]es", "daniel_ AT gmx DOT net", "zoidberg@mujmail.cz", @@ -29,6 +31,7 @@ class OneFichierCom(SimpleHoster): WAIT_TIME = 10 * 60 # Retry time between each free download RETRY_TIME = 15 * 60 # Default retry time in seconds (if detected parallel download) + def setup(self): self.multiDL = self.premium self.resumeDownload = True @@ -48,14 +51,14 @@ class OneFichierCom(SimpleHoster): if not url: self.parseError("Download link not found") - # Check for protection + # Check for protection if "pass" in inputs: inputs['pass'] = self.getPassword() inputs['submit'] = "Download" self.download(url, post=inputs) - # Check download + # Check download self.checkDownloadedFile() def handlePremium(self): diff --git a/module/plugins/hoster/OverLoadMe.py b/module/plugins/hoster/OverLoadMe.py index f030c9e87..7b7c83893 100644 --- a/module/plugins/hoster/OverLoadMe.py +++ b/module/plugins/hoster/OverLoadMe.py @@ -1,23 +1,27 @@ # -*- coding: utf-8 -*- import re -from urllib import unquote + from random import randrange +from urllib import unquote -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster from module.utils import parseFileSize class OverLoadMe(Hoster): __name__ = "OverLoadMe" - __version__ = "0.01" __type__ = "hoster" + __version__ = "0.01" + __pattern__ = r'https?://.*overload\.me.*' + __description__ = """Over-Load.me hoster plugin""" __author_name__ = "marley" __author_mail__ = "marley@over-load.me" + def getFilename(self, url): try: name = unquote(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/PandaPlanet.py b/module/plugins/hoster/PandaPlanet.py index aebc15dd9..6f852ac9a 100644 --- a/module/plugins/hoster/PandaPlanet.py +++ b/module/plugins/hoster/PandaPlanet.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +# # Test links: # test.bin - 214 B - http://pandapla.net/pew1cz3ot586 # BigBuckBunny_320x180.mp4 - 61.7 Mb - http://pandapla.net/tz0rgjfyyoh7 @@ -10,8 +10,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class PandaPlanet(XFileSharingPro): __name__ = "PandaPlanet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?pandapla\.net/\w{12}' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?pandapla\.net/\w{12}' + __description__ = """Pandapla.net hoster plugin""" __author_name__ = "t4skforce" __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" diff --git a/module/plugins/hoster/PornhostCom.py b/module/plugins/hoster/PornhostCom.py index 6b53dc623..f0621c420 100644 --- a/module/plugins/hoster/PornhostCom.py +++ b/module/plugins/hoster/PornhostCom.py @@ -1,18 +1,22 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster class PornhostCom(Hoster): __name__ = "PornhostCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?pornhost\.com/([0-9]+/[0-9]+\.html|[0-9]+)' __version__ = "0.2" + + __pattern__ = r'http://(?:www\.)?pornhost\.com/([0-9]+/[0-9]+\.html|[0-9]+)' + __description__ = """Pornhost.com hoster plugin""" __author_name__ = "jeix" __author_mail__ = "jeix@hasnomail.de" + def process(self, pyfile): self.download_html() if not self.file_exists(): diff --git a/module/plugins/hoster/PornhubCom.py b/module/plugins/hoster/PornhubCom.py index 45dc12929..cecdc4339 100644 --- a/module/plugins/hoster/PornhubCom.py +++ b/module/plugins/hoster/PornhubCom.py @@ -1,18 +1,22 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster class PornhubCom(Hoster): __name__ = "PornhubCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?pornhub\.com/view_video\.php\?viewkey=[\w\d]+' __version__ = "0.5" + + __pattern__ = r'http://(?:www\.)?pornhub\.com/view_video\.php\?viewkey=[\w\d]+' + __description__ = """Pornhub.com hoster plugin""" __author_name__ = "jeix" __author_mail__ = "jeix@hasnomail.de" + def process(self, pyfile): self.download_html() if not self.file_exists(): diff --git a/module/plugins/hoster/PotloadCom.py b/module/plugins/hoster/PotloadCom.py index 7b3b25c34..087b7a265 100644 --- a/module/plugins/hoster/PotloadCom.py +++ b/module/plugins/hoster/PotloadCom.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class PotloadCom(XFileSharingPro): __name__ = "PotloadCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?potload\.com/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?potload\.com/\w{12}' + __description__ = """Potload.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/Premium4Me.py b/module/plugins/hoster/Premium4Me.py index e66e76ce1..ea841338a 100644 --- a/module/plugins/hoster/Premium4Me.py +++ b/module/plugins/hoster/Premium4Me.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from urllib import quote -from os.path import exists from os import remove +from os.path import exists +from urllib import quote from module.plugins.Hoster import Hoster from module.utils import fs_encode @@ -10,14 +10,16 @@ from module.utils import fs_encode class Premium4Me(Hoster): __name__ = "Premium4Me" - __version__ = "0.08" __type__ = "hoster" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?premium.to/.*' + __description__ = """Premium.to hoster plugin""" __author_name__ = ("RaNaN", "zoidberg", "stickell") __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + def setup(self): self.resumeDownload = True self.chunkLimit = 1 diff --git a/module/plugins/hoster/PremiumizeMe.py b/module/plugins/hoster/PremiumizeMe.py index 7e646fdf9..7d0ca9ed2 100644 --- a/module/plugins/hoster/PremiumizeMe.py +++ b/module/plugins/hoster/PremiumizeMe.py @@ -1,23 +1,21 @@ # -*- coding: utf-8 -*- -from module.plugins.Hoster import Hoster - from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster class PremiumizeMe(Hoster): __name__ = "PremiumizeMe" - __version__ = "0.12" __type__ = "hoster" - __description__ = """Premiumize.me hoster plugin""" + __version__ = "0.12" - # Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady - # create the regex patterns for us using getHosters in our PremiumizeMe hook. - __pattern__ = None + __pattern__ = None #: Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady + __description__ = """Premiumize.me hoster plugin""" __author_name__ = "Florian Franzen" __author_mail__ = "FlorianFranzen@gmail.com" + def process(self, pyfile): # Check account if not self.account or not self.account.canUse(): diff --git a/module/plugins/hoster/PromptfileCom.py b/module/plugins/hoster/PromptfileCom.py index ce3f3e0e0..d16af7e5a 100644 --- a/module/plugins/hoster/PromptfileCom.py +++ b/module/plugins/hoster/PromptfileCom.py @@ -1,18 +1,4 @@ # -*- 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/>. # -############################################################################ import re @@ -22,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class PromptfileCom(SimpleHoster): __name__ = "PromptfileCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?promptfile\.com/' __version__ = "0.1" + + __pattern__ = r'https?://(?:www\.)?promptfile\.com/' + __description__ = """Promptfile.com hoster plugin""" __author_name__ = "igel" __author_mail__ = "igelkun@myopera.com" @@ -34,6 +22,7 @@ class PromptfileCom(SimpleHoster): CHASH_PATTERN = r'<input type="hidden" name="chash" value="([^"]*)" />' LINK_PATTERN = r"clip: {\s*url: '(https?://(?:www\.)promptfile[^']*)'," + def handleFree(self): # STAGE 1: get link to continue m = re.search(self.CHASH_PATTERN, self.html) diff --git a/module/plugins/hoster/QuickshareCz.py b/module/plugins/hoster/QuickshareCz.py index f56daa1af..972effffb 100644 --- a/module/plugins/hoster/QuickshareCz.py +++ b/module/plugins/hoster/QuickshareCz.py @@ -1,21 +1,7 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from pycurl import FOLLOWLOCATION from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -24,8 +10,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class QuickshareCz(SimpleHoster): __name__ = "QuickshareCz" __type__ = "hoster" - __pattern__ = r'http://(?:[^/]*\.)?quickshare.cz/stahnout-soubor/.*' __version__ = "0.54" + + __pattern__ = r'http://(?:[^/]*\.)?quickshare.cz/stahnout-soubor/.*' + __description__ = """Quickshare.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -34,6 +22,7 @@ class QuickshareCz(SimpleHoster): FILE_SIZE_PATTERN = r'<th>Velikost:</th>\s*<td>(?P<S>[0-9.]+) (?P<U>[kKMG])i?B</td>' OFFLINE_PATTERN = r'<script type="text/javascript">location.href=\'/chyba\';</script>' + def process(self, pyfile): self.html = self.load(pyfile.url, decode=True) self.getFileInfo() diff --git a/module/plugins/hoster/RPNetBiz.py b/module/plugins/hoster/RPNetBiz.py index 7c6892d8d..47f255074 100644 --- a/module/plugins/hoster/RPNetBiz.py +++ b/module/plugins/hoster/RPNetBiz.py @@ -8,13 +8,16 @@ from module.common.json_layer import json_loads class RPNetBiz(Hoster): __name__ = "RPNetBiz" - __version__ = "0.1" __type__ = "hoster" + __version__ = "0.1" + __description__ = """RPNet.biz hoster plugin""" + __pattern__ = r'https?://.*rpnet\.biz' __author_name__ = "Dman" __author_mail__ = "dmanugm@gmail.com" + def setup(self): self.chunkLimit = -1 self.resumeDownload = True @@ -30,7 +33,7 @@ class RPNetBiz(Hoster): (user, data) = self.account.selectAccount() self.logDebug("Original URL: %s" % pyfile.url) - # Get the download link + # Get the download link response = self.load("https://premium.rpnet.biz/client_api.php", get={"username": user, "password": data['password'], "action": "generate", "links": pyfile.url}) diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py index 17ded3297..ce4d9ab36 100644 --- a/module/plugins/hoster/RapidgatorNet.py +++ b/module/plugins/hoster/RapidgatorNet.py @@ -1,18 +1,4 @@ # -*- 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/>. -############################################################################### import re @@ -20,17 +6,18 @@ from pycurl import HTTPHEADER from module.common.json_layer import json_loads from module.network.HTTPRequest import BadHeader - from module.plugins.hoster.UnrestrictLi import secondsToMidnight +from module.plugins.internal.CaptchaService import AdsCaptcha, ReCaptcha, SolveMedia from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -from module.plugins.internal.CaptchaService import ReCaptcha, SolveMedia, AdsCaptcha class RapidgatorNet(SimpleHoster): __name__ = "RapidgatorNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(rapidgator\.net|rg\.to)/file/\w+' __version__ = "0.22" + + __pattern__ = r'http://(?:www\.)?(rapidgator\.net|rg\.to)/file/\w+' + __description__ = """Rapidgator.net hoster plugin""" __author_name__ = ("zoidberg", "chrox", "stickell", "Walter Purcaro") __author_mail__ = ("zoidberg@mujmail.cz", "", "l.stickell@yahoo.it", "vuolter@gmail.com") @@ -51,6 +38,7 @@ class RapidgatorNet(SimpleHoster): ADSCAPTCHA_SRC_PATTERN = r'(http://api\.adscaptcha\.com/Get\.aspx[^"\']*)' SOLVEMEDIA_PATTERN = r'http://api\.solvemedia\.com/papi/challenge\.script\?k=(.*?)"' + def setup(self): self.resumeDownload = self.multiDL = self.premium self.sid = None diff --git a/module/plugins/hoster/RapidshareCom.py b/module/plugins/hoster/RapidshareCom.py index b50f1c568..19d6cf772 100644 --- a/module/plugins/hoster/RapidshareCom.py +++ b/module/plugins/hoster/RapidshareCom.py @@ -1,12 +1,5 @@ # -*- coding: utf-8 -*- -# v1.36 -# * fixed call checkfiles subroutine -# v1.35 -# * fixed rs-urls in handleFree(..) and freeWait(..) -# * removed getInfo(..) function as it was not used anywhere (in this file) -# * removed some (old?) comment blocks - import re from module.network.RequestFactory import getURL @@ -51,15 +44,18 @@ def getInfo(urls): class RapidshareCom(Hoster): __name__ = "RapidshareCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?rapidshare.com/(?:files/(?P<id>\d*?)/(?P<name>[^?]+)|#!download\|(?:\w+)\|(?P<id_new>\d+)\|(?P<name_new>[^|]+))' __version__ = "1.39" - __description__ = """Rapidshare.com hoster plugin""" + + __pattern__ = r'https?://(?:www\.)?rapidshare.com/(?:files/(?P<id>\d*?)/(?P<name>[^?]+)|#!download\|(?:\w+)\|(?P<id_new>\d+)\|(?P<name_new>[^|]+))' __config__ = [("server", "Cogent;Deutsche Telekom;Level(3);Level(3) #2;GlobalCrossing;Level(3) #3;Teleglobe;GlobalCrossing #2;TeliaSonera #2;Teleglobe #2;TeliaSonera #3;TeliaSonera", "Preferred Server", "None")] + + __description__ = """Rapidshare.com hoster plugin""" __author_name__ = ("spoob", "RaNaN", "mkaay") __author_mail__ = ("spoob@pyload.org", "ranan@pyload.org", "mkaay@mkaay.de") + def setup(self): self.no_download = True self.api_data = None diff --git a/module/plugins/hoster/RarefileNet.py b/module/plugins/hoster/RarefileNet.py index 7dd4164f6..51df5c882 100644 --- a/module/plugins/hoster/RarefileNet.py +++ b/module/plugins/hoster/RarefileNet.py @@ -9,8 +9,10 @@ from module.utils import html_unescape class RarefileNet(XFileSharingPro): __name__ = "RarefileNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?rarefile.net/\w{12}' __version__ = "0.03" + + __pattern__ = r'http://(?:www\.)?rarefile.net/\w{12}' + __description__ = """Rarefile.net hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -21,6 +23,7 @@ class RarefileNet(XFileSharingPro): FILE_SIZE_PATTERN = r'<td>Size : (?P<S>.+?) ' LINK_PATTERN = r'<a href="(?P<link>[^"]+)">(?P=link)</a>' + def setup(self): self.resumeDownload = self.multiDL = self.premium diff --git a/module/plugins/hoster/RealdebridCom.py b/module/plugins/hoster/RealdebridCom.py index 17cd86ccd..de7540628 100644 --- a/module/plugins/hoster/RealdebridCom.py +++ b/module/plugins/hoster/RealdebridCom.py @@ -1,25 +1,28 @@ # -*- coding: utf-8 -*- import re -from time import time -from urllib import quote, unquote + from random import randrange +from urllib import quote, unquote +from time import time -from module.utils import parseFileSize from module.common.json_layer import json_loads from module.plugins.Hoster import Hoster +from module.utils import parseFileSize class RealdebridCom(Hoster): __name__ = "RealdebridCom" - __version__ = "0.53" __type__ = "hoster" + __version__ = "0.53" __pattern__ = r'https?://(?:[^/]*\.)?real-debrid\..*' + __description__ = """Real-Debrid.com hoster plugin""" __author_name__ = "Devirex Hazzard" __author_mail__ = "naibaf_11@yahoo.de" + def getFilename(self, url): try: name = unquote(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/RedtubeCom.py b/module/plugins/hoster/RedtubeCom.py index d9cb6489a..bdb948d6d 100644 --- a/module/plugins/hoster/RedtubeCom.py +++ b/module/plugins/hoster/RedtubeCom.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster from module.unescape import unescape @@ -8,12 +9,15 @@ from module.unescape import unescape class RedtubeCom(Hoster): __name__ = "RedtubeCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?redtube\.com/\d+' __version__ = "0.2" + + __pattern__ = r'http://(?:www\.)?redtube\.com/\d+' + __description__ = """Redtube.com hoster plugin""" __author_name__ = "jeix" __author_mail__ = "jeix@hasnomail.de" + def process(self, pyfile): self.download_html() if not self.file_exists(): diff --git a/module/plugins/hoster/RehostTo.py b/module/plugins/hoster/RehostTo.py index 79c06f863..98fb10d94 100644 --- a/module/plugins/hoster/RehostTo.py +++ b/module/plugins/hoster/RehostTo.py @@ -1,18 +1,22 @@ # -*- coding: utf-8 -*- from urllib import quote, unquote + from module.plugins.Hoster import Hoster class RehostTo(Hoster): __name__ = "RehostTo" - __version__ = "0.13" __type__ = "hoster" + __version__ = "0.13" + __pattern__ = r'https?://.*rehost.to\..*' + __description__ = """Rehost.com hoster plugin""" __author_name__ = "RaNaN" __author_mail__ = "RaNaN@pyload.org" + def getFilename(self, url): return unquote(url.rsplit("/", 1)[1]) diff --git a/module/plugins/hoster/RemixshareCom.py b/module/plugins/hoster/RemixshareCom.py index a0f67e0b2..ea396495e 100644 --- a/module/plugins/hoster/RemixshareCom.py +++ b/module/plugins/hoster/RemixshareCom.py @@ -1,14 +1,13 @@ # -*- coding: utf-8 -*- - -# Test link: +# +# Test links: # http://remixshare.com/download/p946u - +# # Note: # The remixshare.com website is very very slow, so # if your download not starts because of pycurl timeouts: # Adjust timeouts in /usr/share/pyload/module/network/HTTPRequest.py - import re from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -17,8 +16,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RemixshareCom(SimpleHoster): __name__ = "RemixshareCom" __type__ = "hoster" - __pattern__ = r'https?://remixshare\.com/(download|dl)/\w+' __version__ = "0.01" + + __pattern__ = r'https?://remixshare\.com/(download|dl)/\w+' + __description__ = """Remixshare.com hoster plugin""" __author_name__ = ("zapp-brannigan", "Walter Purcaro") __author_mail__ = ("fuerst.reinje@web.de", "vuolter@gmail.com") diff --git a/module/plugins/hoster/RgHostNet.py b/module/plugins/hoster/RgHostNet.py index 80954e67b..dccc6e557 100644 --- a/module/plugins/hoster/RgHostNet.py +++ b/module/plugins/hoster/RgHostNet.py @@ -1,14 +1,17 @@ # -*- coding: utf-8 -*- import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RgHostNet(SimpleHoster): __name__ = "RgHostNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?rghost\.net/\d+(?:r=\d+)?' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?rghost\.net/\d+(?:r=\d+)?' + __description__ = """RgHost.net hoster plugin""" __author_name__ = "z00nx" __author_mail__ = "z00nx0@gmail.com" @@ -17,6 +20,7 @@ class RgHostNet(SimpleHoster): OFFLINE_PATTERN = r'File is deleted|this page is not found' LINK_PATTERN = r'''<a\s+href="([^"]+)"\s+class="btn\s+large\s+download"[^>]+>Download</a>''' + def handleFree(self): m = re.search(self.LINK_PATTERN, self.html) if m is None: diff --git a/module/plugins/hoster/RyushareCom.py b/module/plugins/hoster/RyushareCom.py index bc81f03c0..f9aaa83fe 100644 --- a/module/plugins/hoster/RyushareCom.py +++ b/module/plugins/hoster/RyushareCom.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- - -# Test links (random.bin): +# +# Test links: # http://ryushare.com/cl0jy8ric2js/random.bin import re @@ -12,8 +12,10 @@ from module.plugins.internal.CaptchaService import SolveMedia class RyushareCom(XFileSharingPro): __name__ = "RyushareCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?ryushare\.com/\w+' __version__ = "0.15" + + __pattern__ = r'http://(?:www\.)?ryushare\.com/\w+' + __description__ = """Ryushare.com hoster plugin""" __author_name__ = ("zoidberg", "stickell", "quareevo") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it", "quareevo@arcor.de") @@ -26,6 +28,7 @@ class RyushareCom(XFileSharingPro): LINK_PATTERN = r'(http://([^/]*?ryushare.com|\d+\.\d+\.\d+\.\d+)(:\d+/d/|/files/\w+/\w+/)[^"\'<]+)' SOLVEMEDIA_PATTERN = r'http:\/\/api\.solvemedia\.com\/papi\/challenge\.script\?k=(.*?)"' + def getDownloadLink(self): retry = False self.html = self.load(self.pyfile.url) diff --git a/module/plugins/hoster/SecureUploadEu.py b/module/plugins/hoster/SecureUploadEu.py index aef6ac1bd..3691be7da 100644 --- a/module/plugins/hoster/SecureUploadEu.py +++ b/module/plugins/hoster/SecureUploadEu.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class SecureUploadEu(XFileSharingPro): __name__ = "SecureUploadEu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?secureupload\.eu/(\w){12}(/\w+)' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?secureupload\.eu/(\w){12}(/\w+)' + __description__ = """SecureUpload.eu hoster plugin""" __author_name__ = "z00nx" __author_mail__ = "z00nx0@gmail.com" diff --git a/module/plugins/hoster/SendmywayCom.py b/module/plugins/hoster/SendmywayCom.py index 6de87e2b3..f5e9e9ca6 100644 --- a/module/plugins/hoster/SendmywayCom.py +++ b/module/plugins/hoster/SendmywayCom.py @@ -6,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class SendmywayCom(XFileSharingPro): __name__ = "SendmywayCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?sendmyway.com/\w{12}' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?sendmyway.com/\w{12}' + __description__ = """SendMyWay hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/SendspaceCom.py b/module/plugins/hoster/SendspaceCom.py index ea8e8d0a0..1dac231eb 100644 --- a/module/plugins/hoster/SendspaceCom.py +++ b/module/plugins/hoster/SendspaceCom.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SendspaceCom(SimpleHoster): __name__ = "SendspaceCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?sendspace.com/file/.*' __version__ = "0.13" + + __pattern__ = r'http://(?:www\.)?sendspace.com/file/.*' + __description__ = """Sendspace.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/Share4webCom.py b/module/plugins/hoster/Share4webCom.py index 01935ee72..e5221baa9 100644 --- a/module/plugins/hoster/Share4webCom.py +++ b/module/plugins/hoster/Share4webCom.py @@ -7,8 +7,10 @@ from module.plugins.internal.SimpleHoster import create_getInfo class Share4webCom(UnibytesCom): __name__ = "Share4webCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?share4web\.com/get/\w+' __version__ = "0.1" + + __pattern__ = r'http://(?:www\.)?share4web\.com/get/\w+' + __description__ = """Share4web.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/Share76Com.py b/module/plugins/hoster/Share76Com.py index e1ae16242..2c5dd877d 100644 --- a/module/plugins/hoster/Share76Com.py +++ b/module/plugins/hoster/Share76Com.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class Share76Com(DeadHoster): __name__ = "Share76Com" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?share76.com/\w{12}' __version__ = "0.04" + + __pattern__ = r'http://(?:www\.)?share76.com/\w{12}' + __description__ = """Share76.com hoster plugin""" __author_name__ = "me" __author_mail__ = None diff --git a/module/plugins/hoster/ShareFilesCo.py b/module/plugins/hoster/ShareFilesCo.py index 35f21916c..54ae7777a 100644 --- a/module/plugins/hoster/ShareFilesCo.py +++ b/module/plugins/hoster/ShareFilesCo.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class ShareFilesCo(DeadHoster): __name__ = "ShareFilesCo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?sharefiles\.co/\w{12}' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?sharefiles\.co/\w{12}' + __description__ = """Sharefiles.co hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/ShareRapidCom.py b/module/plugins/hoster/ShareRapidCom.py index 5f17a2f62..414e92feb 100644 --- a/module/plugins/hoster/ShareRapidCom.py +++ b/module/plugins/hoster/ShareRapidCom.py @@ -21,8 +21,8 @@ def getInfo(urls): class ShareRapidCom(SimpleHoster): __name__ = "ShareRapidCom" - __version__ = "0.54" __type__ = "hoster" + __version__ = "0.54" __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/soubor/\d+/.+' diff --git a/module/plugins/hoster/SharebeesCom.py b/module/plugins/hoster/SharebeesCom.py index a4625b6a1..d5b4a3bbc 100644 --- a/module/plugins/hoster/SharebeesCom.py +++ b/module/plugins/hoster/SharebeesCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SharebeesCom(DeadHoster): __name__ = "SharebeesCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?sharebees.com/\w{12}' __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?sharebees.com/\w{12}' + __description__ = """ShareBees hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py index a31b7c701..feaa95603 100644 --- a/module/plugins/hoster/ShareonlineBiz.py +++ b/module/plugins/hoster/ShareonlineBiz.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- import re + from time import time -from module.plugins.Hoster import Hoster from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.plugins.Plugin import chunks from module.plugins.internal.CaptchaService import ReCaptcha @@ -38,14 +39,17 @@ def getInfo(urls): class ShareonlineBiz(Hoster): __name__ = "ShareonlineBiz" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(share-online\.biz|egoshare\.com)/(download.php\?id=|dl/)(?P<ID>\w+)' __version__ = "0.40" + + __pattern__ = r'https?://(?:www\.)?(share-online\.biz|egoshare\.com)/(download.php\?id=|dl/)(?P<ID>\w+)' + __description__ = """Shareonline.biz hoster plugin""" __author_name__ = ("spoob", "mkaay", "zoidberg", "Walter Purcaro") __author_mail__ = ("spoob@pyload.org", "mkaay@mkaay.de", "zoidberg@mujmail.cz", "vuolter@gmail.com") ERROR_INFO_PATTERN = r'<p class="b">Information:</p>\s*<div>\s*<strong>(.*?)</strong>' + def setup(self): # range request not working? # api supports resume, only one chunk diff --git a/module/plugins/hoster/ShareplaceCom.py b/module/plugins/hoster/ShareplaceCom.py index cfc2807f9..0d236fe30 100644 --- a/module/plugins/hoster/ShareplaceCom.py +++ b/module/plugins/hoster/ShareplaceCom.py @@ -1,19 +1,24 @@ # -*- coding: utf-8 -*- import re -import urllib + +from urllib import unquote + from module.plugins.Hoster import Hoster class ShareplaceCom(Hoster): __name__ = "ShareplaceCom" __type__ = "hoster" - __pattern__ = r'(http://)?(?:www\.)?shareplace\.(com|org)/\?[a-zA-Z0-9]+' __version__ = "0.11" + + __pattern__ = r'(http://)?(?:www\.)?shareplace\.(com|org)/\?[a-zA-Z0-9]+' + __description__ = """Shareplace.com hoster plugin""" __author_name__ = "ACCakut" __author_mail__ = None + def process(self, pyfile): self.pyfile = pyfile self.prepare() @@ -53,7 +58,7 @@ class ShareplaceCom(Hoster): url = re.search(r"var beer = '(.*?)';", self.html) if url: url = url.group(1) - url = urllib.unquote( + url = unquote( url.replace("http://http:/", "").replace("vvvvvvvvv", "").replace("lllllllll", "").replace( "teletubbies", "")) self.logDebug("URL: %s" % url) diff --git a/module/plugins/hoster/ShragleCom.py b/module/plugins/hoster/ShragleCom.py index a86e66972..ba3356d66 100644 --- a/module/plugins/hoster/ShragleCom.py +++ b/module/plugins/hoster/ShragleCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class ShragleCom(DeadHoster): __name__ = "ShragleCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(cloudnator|shragle).com/files/(?P<ID>.*?)/' __version__ = "0.22" + + __pattern__ = r'http://(?:www\.)?(cloudnator|shragle).com/files/(?P<ID>.*?)/' + __description__ = """Cloudnator.com (Shragle.com) hoster plugin""" __author_name__ = ("RaNaN", "zoidberg") __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz") diff --git a/module/plugins/hoster/SimplyPremiumCom.py b/module/plugins/hoster/SimplyPremiumCom.py index c0be4b145..5db9f5daa 100644 --- a/module/plugins/hoster/SimplyPremiumCom.py +++ b/module/plugins/hoster/SimplyPremiumCom.py @@ -1,20 +1,7 @@ # -*- 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/>. # -############################################################################ import re + from datetime import datetime, timedelta from module.plugins.Hoster import Hoster @@ -23,13 +10,16 @@ from module.plugins.hoster.UnrestrictLi import secondsToMidnight class SimplyPremiumCom(Hoster): __name__ = "SimplyPremiumCom" - __version__ = "0.03" __type__ = "hoster" + __version__ = "0.03" + __pattern__ = r'https?://.*(simply-premium)\.com' + __description__ = """Simply-Premium.com hoster plugin""" __author_name__ = "EvolutionClip" __author_mail__ = "evolutionclip@live.de" + def setup(self): self.chunkLimit = 16 self.resumeDownload = False diff --git a/module/plugins/hoster/SimplydebridCom.py b/module/plugins/hoster/SimplydebridCom.py index 2aab12e04..78f6c0a34 100644 --- a/module/plugins/hoster/SimplydebridCom.py +++ b/module/plugins/hoster/SimplydebridCom.py @@ -7,13 +7,16 @@ from module.plugins.Hoster import Hoster class SimplydebridCom(Hoster): __name__ = "SimplydebridCom" - __version__ = "0.1" __type__ = "hoster" + __version__ = "0.1" + __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/sd.php/*' + __description__ = """Simply-debrid.com hoster plugin""" __author_name__ = "Kagenoshin" __author_mail__ = "kagenoshin@gmx.ch" + def setup(self): self.resumeDownload = self.multiDL = True self.chunkLimit = 1 diff --git a/module/plugins/hoster/SockshareCom.py b/module/plugins/hoster/SockshareCom.py index 61df428db..90f092473 100644 --- a/module/plugins/hoster/SockshareCom.py +++ b/module/plugins/hoster/SockshareCom.py @@ -10,8 +10,8 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SockshareCom(SimpleHoster): __name__ = "SockshareCom" - __version__ = "0.04" __type__ = "hoster" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?sockshare\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' diff --git a/module/plugins/hoster/SoundcloudCom.py b/module/plugins/hoster/SoundcloudCom.py index 75a1cffeb..05fe897d2 100644 --- a/module/plugins/hoster/SoundcloudCom.py +++ b/module/plugins/hoster/SoundcloudCom.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import re import pycurl +import re from module.plugins.Hoster import Hoster @@ -9,12 +9,15 @@ from module.plugins.Hoster import Hoster class SoundcloudCom(Hoster): __name__ = "SoundcloudCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?soundcloud\.com/(?P<UID>.*?)/(?P<SID>.*)' __version__ = "0.1" + + __pattern__ = r'https?://(?:www\.)?soundcloud\.com/(?P<UID>.*?)/(?P<SID>.*)' + __description__ = """SoundCloud.com hoster plugin""" __author_name__ = "Peekayy" __author_mail__ = "peekayy.dev@gmail.com" + def process(self, pyfile): # default UserAgent of HTTPRequest fails for this hoster so we use this one self.req.http.c.setopt(pycurl.USERAGENT, 'Mozilla/5.0') diff --git a/module/plugins/hoster/SpeedLoadOrg.py b/module/plugins/hoster/SpeedLoadOrg.py index 76ab52868..8cf1163b2 100644 --- a/module/plugins/hoster/SpeedLoadOrg.py +++ b/module/plugins/hoster/SpeedLoadOrg.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SpeedLoadOrg(DeadHoster): __name__ = "SpeedLoadOrg" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?speedload\.org/(?P<ID>\w+)' __version__ = "1.02" + + __pattern__ = r'http://(?:www\.)?speedload\.org/(?P<ID>\w+)' + __description__ = """Speedload.org hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" diff --git a/module/plugins/hoster/SpeedfileCz.py b/module/plugins/hoster/SpeedfileCz.py index df66a17e2..6a42d1dbe 100644 --- a/module/plugins/hoster/SpeedfileCz.py +++ b/module/plugins/hoster/SpeedfileCz.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SpeedfileCz(DeadHoster): __name__ = "SpeedFileCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?speedfile.cz/.*' __version__ = "0.32" + + __pattern__ = r'http://(?:www\.)?speedfile.cz/.*' + __description__ = """Speedfile.cz hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/StreamCz.py b/module/plugins/hoster/StreamCz.py index e68130389..526e61eea 100644 --- a/module/plugins/hoster/StreamCz.py +++ b/module/plugins/hoster/StreamCz.py @@ -1,24 +1,9 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.Hoster import Hoster from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster def getInfo(urls): @@ -37,8 +22,8 @@ def getInfo(urls): class StreamCz(Hoster): __name__ = "StreamCz" - __version__ = "0.2" __type__ = "hoster" + __version__ = "0.2" __pattern__ = r'https?://(?:www\.)?stream\.cz/[^/]+/\d+.*' diff --git a/module/plugins/hoster/StreamcloudEu.py b/module/plugins/hoster/StreamcloudEu.py index 3cbf015c9..11333640e 100644 --- a/module/plugins/hoster/StreamcloudEu.py +++ b/module/plugins/hoster/StreamcloudEu.py @@ -1,17 +1,20 @@ # -*- coding: utf-8 -*- -from time import sleep import re -from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo +from time import sleep + from module.network.HTTPRequest import HTTPRequest +from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo class StreamcloudEu(XFileSharingPro): __name__ = "StreamcloudEu" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?streamcloud\.eu/\S+' __version__ = "0.04" + + __pattern__ = r'http://(?:www\.)?streamcloud\.eu/\S+' + __description__ = """Streamcloud.eu hoster plugin""" __author_name__ = "seoester" __author_mail__ = "seoester@googlemail.com" @@ -20,6 +23,7 @@ class StreamcloudEu(XFileSharingPro): LINK_PATTERN = r'file: "(http://(stor|cdn)\d+\.streamcloud.eu:?\d*/.*/video\.(mp4|flv))",' + def setup(self): super(StreamcloudEu, self).setup() self.multiDL = True diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py index 52708d045..a9cc46614 100644 --- a/module/plugins/hoster/TurbobitNet.py +++ b/module/plugins/hoster/TurbobitNet.py @@ -1,38 +1,26 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - -import re import random -from urllib import quote -from binascii import hexlify, unhexlify +import re import time -from pycurl import HTTPHEADER from Crypto.Cipher import ARC4 +from binascii import hexlify, unhexlify +from pycurl import HTTPHEADER +from urllib import quote + from module.network.RequestFactory import getURL -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp class TurbobitNet(SimpleHoster): __name__ = "TurbobitNet" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(turbobit.net|unextfiles.com)/(?!download/folder/)(?:download/free/)?(?P<ID>\w+).*' __version__ = "0.11" + + __pattern__ = r'http://(?:www\.)?(turbobit.net|unextfiles.com)/(?!download/folder/)(?:download/free/)?(?P<ID>\w+).*' + __description__ = """Turbobit.net plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -111,7 +99,7 @@ class TurbobitNet(SimpleHoster): # that's right, we are even using jdownloader updates rtUpdate = getURL("http://update0.jdownloader.org/pluginstuff/tbupdate.js") rtUpdate = self.decrypt(rtUpdate.splitlines()[1]) - # but we still need to fix the syntax to work with other engines than rhino + # but we still need to fix the syntax to work with other engines than rhino rtUpdate = re.sub(r'for each\(var (\w+) in(\[[^\]]+\])\)\{', r'zza=\2;for(var zzi=0;zzi<zza.length;zzi++){\1=zza[zzi];', rtUpdate) rtUpdate = re.sub(r"for\((\w+)=", r"for(var \1=", rtUpdate) diff --git a/module/plugins/hoster/TurbouploadCom.py b/module/plugins/hoster/TurbouploadCom.py index a54e963d9..bcfa2d7d4 100644 --- a/module/plugins/hoster/TurbouploadCom.py +++ b/module/plugins/hoster/TurbouploadCom.py @@ -1,28 +1,15 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class TurbouploadCom(DeadHoster): __name__ = "TurbouploadCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?turboupload.com/(\w+).*' __version__ = "0.03" + + __pattern__ = r'http://(?:www\.)?turboupload.com/(\w+).*' + __description__ = """Turboupload.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/TusfilesNet.py b/module/plugins/hoster/TusfilesNet.py index f42685a63..7fb2a375e 100644 --- a/module/plugins/hoster/TusfilesNet.py +++ b/module/plugins/hoster/TusfilesNet.py @@ -1,18 +1,4 @@ # -*- 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.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -20,8 +6,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class TusfilesNet(XFileSharingPro): __name__ = "TusfilesNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?tusfiles\.net/(?P<ID>\w+)' __version__ = "0.03" + + __pattern__ = r'https?://(?:www\.)?tusfiles\.net/(?P<ID>\w+)' + __description__ = """Tusfiles.net hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" @@ -33,6 +21,7 @@ class TusfilesNet(XFileSharingPro): SH_COOKIES = [(".tusfiles.net", "lang", "english")] + def setup(self): self.multiDL = False self.chunkLimit = -1 diff --git a/module/plugins/hoster/TwoSharedCom.py b/module/plugins/hoster/TwoSharedCom.py index 1f040dfc2..dbd33dd83 100644 --- a/module/plugins/hoster/TwoSharedCom.py +++ b/module/plugins/hoster/TwoSharedCom.py @@ -8,8 +8,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class TwoSharedCom(SimpleHoster): __name__ = "TwoSharedCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?2shared.com/(account/)?(download|get|file|document|photo|video|audio)/.*' __version__ = "0.11" + + __pattern__ = r'http://(?:www\.)?2shared.com/(account/)?(download|get|file|document|photo|video|audio)/.*' + __description__ = """2Shared.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/UlozTo.py b/module/plugins/hoster/UlozTo.py index 2b68bedf7..dbdaf3f8e 100644 --- a/module/plugins/hoster/UlozTo.py +++ b/module/plugins/hoster/UlozTo.py @@ -1,24 +1,11 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re import time -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.common.json_layer import json_loads +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + def convertDecimalPrefix(m): # decimal prefixes used in filesize and traffic @@ -28,8 +15,10 @@ def convertDecimalPrefix(m): class UlozTo(SimpleHoster): __name__ = "UlozTo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj.cz|zachowajto.pl)/(?:live/)?(?P<id>\w+/[^/?]*)' __version__ = "0.98" + + __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj.cz|zachowajto.pl)/(?:live/)?(?P<id>\w+/[^/?]*)' + __description__ = """Uloz.to hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/UloziskoSk.py b/module/plugins/hoster/UloziskoSk.py index a77597324..ac70f42d4 100644 --- a/module/plugins/hoster/UloziskoSk.py +++ b/module/plugins/hoster/UloziskoSk.py @@ -1,29 +1,17 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UloziskoSk(SimpleHoster): __name__ = "UloziskoSk" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?ulozisko.sk/.*' __version__ = "0.23" + + __pattern__ = r'http://(?:www\.)?ulozisko.sk/.*' + __description__ = """Ulozisko.sk hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/UnibytesCom.py b/module/plugins/hoster/UnibytesCom.py index 50e4c32d0..e936b84b1 100644 --- a/module/plugins/hoster/UnibytesCom.py +++ b/module/plugins/hoster/UnibytesCom.py @@ -1,30 +1,19 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from pycurl import FOLLOWLOCATION + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UnibytesCom(SimpleHoster): __name__ = "UnibytesCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?unibytes\.com/[a-zA-Z0-9-._ ]{11}B' __version__ = "0.1" + + __pattern__ = r'http://(?:www\.)?unibytes\.com/[a-zA-Z0-9-._ ]{11}B' + __description__ = """UniBytes.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/UnrestrictLi.py b/module/plugins/hoster/UnrestrictLi.py index 7558dfcf6..ed70e023d 100644 --- a/module/plugins/hoster/UnrestrictLi.py +++ b/module/plugins/hoster/UnrestrictLi.py @@ -1,24 +1,11 @@ # -*- 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/>. # -############################################################################ import re + from datetime import datetime, timedelta -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster def secondsToMidnight(gmt=0): @@ -33,13 +20,16 @@ def secondsToMidnight(gmt=0): class UnrestrictLi(Hoster): __name__ = "UnrestrictLi" - __version__ = "0.12" __type__ = "hoster" + __version__ = "0.12" + __pattern__ = r'https?://(?:[^/]*\.)?(unrestrict|unr)\.li' + __description__ = """Unrestrict.li hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" + def setup(self): self.chunkLimit = 16 self.resumeDownload = True diff --git a/module/plugins/hoster/UploadStationCom.py b/module/plugins/hoster/UploadStationCom.py index b0229aba4..ac5a47f3f 100644 --- a/module/plugins/hoster/UploadStationCom.py +++ b/module/plugins/hoster/UploadStationCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UploadStationCom(DeadHoster): __name__ = "UploadStationCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?uploadstation\.com/file/(?P<id>[A-Za-z0-9]+)' __version__ = "0.52" + + __pattern__ = r'http://(?:www\.)?uploadstation\.com/file/(?P<id>[A-Za-z0-9]+)' + __description__ = """UploadStation.com hoster plugin""" __author_name__ = ("fragonib", "zoidberg") __author_mail__ = ("fragonib[AT]yahoo[DOT]es", "zoidberg@mujmail.cz") diff --git a/module/plugins/hoster/UploadedTo.py b/module/plugins/hoster/UploadedTo.py index da8cad223..286f1caf0 100644 --- a/module/plugins/hoster/UploadedTo.py +++ b/module/plugins/hoster/UploadedTo.py @@ -1,18 +1,19 @@ # -*- coding: utf-8 -*- - -# Test links (random.bin): +# +# Test links: # http://ul.to/044yug9o # http://ul.to/gzfhd0xs import re -from time import sleep -from module.utils import html_unescape, parseFileSize +from time import sleep -from module.plugins.Hoster import Hoster from module.network.RequestFactory import getURL +from module.plugins.Hoster import Hoster from module.plugins.Plugin import chunks from module.plugins.internal.CaptchaService import ReCaptcha +from module.utils import html_unescape, parseFileSize + key = "bGhGMkllZXByd2VEZnU5Y2NXbHhYVlZ5cEE1bkEzRUw=".decode('base64') @@ -93,8 +94,10 @@ def getInfo(urls): class UploadedTo(Hoster): __name__ = "UploadedTo" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(uploaded\.(to|net)|ul\.to)(/file/|/?\?id=|.*?&id=|/)(?P<ID>\w+)' __version__ = "0.73" + + __pattern__ = r'https?://(?:www\.)?(uploaded\.(to|net)|ul\.to)(/file/|/?\?id=|.*?&id=|/)(?P<ID>\w+)' + __description__ = """Uploaded.net hoster plugin""" __author_name__ = ("spoob", "mkaay", "zoidberg", "netpok", "stickell") __author_mail__ = ("spoob@pyload.org", "mkaay@mkaay.de", "zoidberg@mujmail.cz", @@ -104,6 +107,7 @@ class UploadedTo(Hoster): OFFLINE_PATTERN = r'<small class="cL">Error: 404</small>' DL_LIMIT_PATTERN = r'You have reached the max. number of possible free downloads for this hour' + def setup(self): self.multiDL = self.resumeDownload = self.premium self.chunkLimit = 1 # critical problems with more chunks diff --git a/module/plugins/hoster/UploadheroCom.py b/module/plugins/hoster/UploadheroCom.py index 05f8e1199..e34701ed7 100644 --- a/module/plugins/hoster/UploadheroCom.py +++ b/module/plugins/hoster/UploadheroCom.py @@ -1,32 +1,20 @@ # -*- coding: utf-8 -*- - -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - -# Test link (random.bin): +# +# Test links: # http://uploadhero.co/dl/wQBRAVSM import re + from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UploadheroCom(SimpleHoster): __name__ = "UploadheroCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?uploadhero\.com?/dl/\w+' __version__ = "0.15" + + __pattern__ = r'http://(?:www\.)?uploadhero\.com?/dl/\w+' + __description__ = """UploadHero.co plugin""" __author_name__ = ("mcmyst", "zoidberg") __author_mail__ = ("mcmyst@hotmail.fr", "zoidberg@mujmail.cz") diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py index 1c6583c12..ac7226ec7 100644 --- a/module/plugins/hoster/UploadingCom.py +++ b/module/plugins/hoster/UploadingCom.py @@ -1,32 +1,20 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from pycurl import HTTPHEADER -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp from module.common.json_layer import json_loads +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp class UploadingCom(SimpleHoster): __name__ = "UploadingCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?uploading\.com/files/(?:get/)?(?P<ID>[\w\d]+)' __version__ = "0.35" + + __pattern__ = r'http://(?:www\.)?uploading\.com/files/(?:get/)?(?P<ID>[\w\d]+)' + __description__ = """Uploading.com hoster plugin""" __author_name__ = ("jeix", "mkaay", "zoidberg") __author_mail__ = ("jeix@hasnomail.de", "mkaay@mkaay.de", "zoidberg@mujmail.cz") @@ -35,6 +23,7 @@ class UploadingCom(SimpleHoster): FILE_SIZE_PATTERN = r'size tip_container">(?P<S>[\d.]+) (?P<U>\w+)<' OFFLINE_PATTERN = r'Page not found!' + def process(self, pyfile): # set lang to english self.req.cj.setCookie(".uploading.com", "lang", "1") diff --git a/module/plugins/hoster/UpstoreNet.py b/module/plugins/hoster/UpstoreNet.py index 99aa25b48..140024731 100644 --- a/module/plugins/hoster/UpstoreNet.py +++ b/module/plugins/hoster/UpstoreNet.py @@ -1,15 +1,18 @@ # -*- coding: utf-8 -*- + import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo from module.plugins.internal.CaptchaService import ReCaptcha +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UpstoreNet(SimpleHoster): __name__ = "UpstoreNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?upstore\.net/' __version__ = "0.02" + + __pattern__ = r'https?://(?:www\.)?upstore\.net/' + __description__ = """Upstore.Net File Download Hoster""" __author_name__ = "igel" __author_mail__ = "igelkun@myopera.com" diff --git a/module/plugins/hoster/UptoboxCom.py b/module/plugins/hoster/UptoboxCom.py index 20a2d675a..6d86c5559 100644 --- a/module/plugins/hoster/UptoboxCom.py +++ b/module/plugins/hoster/UptoboxCom.py @@ -1,20 +1,7 @@ # -*- 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/>. -############################################################################### import re + from urllib import unquote from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo @@ -25,8 +12,10 @@ from module.utils import html_unescape class UptoboxCom(XFileSharingPro): __name__ = "UptoboxCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?uptobox\.com/\w+' __version__ = "0.09" + + __pattern__ = r'https?://(?:www\.)?uptobox\.com/\w+' + __description__ = """Uptobox.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" @@ -41,6 +30,7 @@ class UptoboxCom(XFileSharingPro): LINK_PATTERN = r'"(https?://\w+\.uptobox\.com/d/.*?)"' + def handleCaptcha(self, inputs): m = re.search(self.SOLVEMEDIA_PATTERN, self.html) if m: diff --git a/module/plugins/hoster/VeehdCom.py b/module/plugins/hoster/VeehdCom.py index 15cff646f..66c258439 100644 --- a/module/plugins/hoster/VeehdCom.py +++ b/module/plugins/hoster/VeehdCom.py @@ -1,20 +1,24 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster class VeehdCom(Hoster): __name__ = "VeehdCom" __type__ = "hoster" + __version__ = "0.23" + __pattern__ = r'http://veehd\.com/video/\d+_\S+' __config__ = [("filename_spaces", "bool", "Allow spaces in filename", False), ("replacement_char", "str", "Filename replacement character", "_")] - __version__ = "0.23" + __description__ = """Veehd.com hoster plugin""" __author_name__ = "cat" __author_mail__ = "cat@pyload" + def _debug(self, msg): self.logDebug('[%s] %s' % (self.__name__, msg)) diff --git a/module/plugins/hoster/VeohCom.py b/module/plugins/hoster/VeohCom.py index 9dbc9b8ad..fcd5e90a4 100644 --- a/module/plugins/hoster/VeohCom.py +++ b/module/plugins/hoster/VeohCom.py @@ -1,18 +1,4 @@ # -*- 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/>. -############################################################################ import re @@ -22,9 +8,11 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VeohCom(SimpleHoster): __name__ = "VeohCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?veoh\.com/(tv/)?(watch|videos)/(?P<ID>v\w+)' __version__ = "0.2" + + __pattern__ = r'http://(?:www\.)?veoh\.com/(tv/)?(watch|videos)/(?P<ID>v\w+)' __config__ = [("quality", "Low;High;Auto", "Quality", "Auto")] + __description__ = """Veoh.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" @@ -36,6 +24,7 @@ class VeohCom(SimpleHoster): SH_COOKIES = [(".veoh.com", "lassieLocale", "en")] + def setup(self): self.resumeDownload = self.multiDL = True self.chunkLimit = -1 diff --git a/module/plugins/hoster/VidPlayNet.py b/module/plugins/hoster/VidPlayNet.py index 3407f4349..eb7a13e4c 100644 --- a/module/plugins/hoster/VidPlayNet.py +++ b/module/plugins/hoster/VidPlayNet.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +# # Test links: # BigBuckBunny_320x180.mp4 - 61.7 Mb - http://vidplay.net/38lkev0h3jv0 @@ -9,8 +9,10 @@ from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInf class VidPlayNet(XFileSharingPro): __name__ = "VidPlayNet" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?vidplay\.net/\w{12}' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?vidplay\.net/\w{12}' + __description__ = """VidPlay.net hoster plugin""" __author_name__ = "t4skforce" __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" diff --git a/module/plugins/hoster/VimeoCom.py b/module/plugins/hoster/VimeoCom.py index 2c7f4b9c3..7fa675715 100644 --- a/module/plugins/hoster/VimeoCom.py +++ b/module/plugins/hoster/VimeoCom.py @@ -1,18 +1,4 @@ # -*- 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/>. -############################################################################ import re @@ -22,10 +8,12 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VimeoCom(SimpleHoster): __name__ = "VimeoCom" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?(player\.)?vimeo\.com/(video/)?(?P<ID>\d+)' __version__ = "0.01" + + __pattern__ = r'https?://(?:www\.)?(player\.)?vimeo\.com/(video/)?(?P<ID>\d+)' __config__ = [("quality", "Lowest;Mobile;SD;HD;Highest", "Quality", "Highest"), ("original", "bool", "Try to download the original file first", True)] + __description__ = """Vimeo.com hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" diff --git a/module/plugins/hoster/Vipleech4uCom.py b/module/plugins/hoster/Vipleech4uCom.py index d4ccf997a..da7131d39 100644 --- a/module/plugins/hoster/Vipleech4uCom.py +++ b/module/plugins/hoster/Vipleech4uCom.py @@ -5,9 +5,11 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class Vipleech4uCom(DeadHoster): __name__ = "Vipleech4uCom" - __version__ = "0.2" __type__ = "hoster" + __version__ = "0.2" + __pattern__ = r'http://(?:www\.)?vipleech4u\.com/manager\.php' + __description__ = """Vipleech4u.com hoster plugin""" __author_name__ = "Kagenoshin" __author_mail__ = "kagenoshin@gmx.ch" diff --git a/module/plugins/hoster/WarserverCz.py b/module/plugins/hoster/WarserverCz.py index 73c5b6bc7..8a565d777 100644 --- a/module/plugins/hoster/WarserverCz.py +++ b/module/plugins/hoster/WarserverCz.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class WarserverCz(DeadHoster): __name__ = "WarserverCz" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?warserver\.cz/stahnout/\d+' __version__ = "0.13" + + __pattern__ = r'http://(?:www\.)?warserver\.cz/stahnout/\d+' + __description__ = """Warserver.cz hoster plugin""" __author_name__ = "Walter Purcaro" __author_mail__ = "vuolter@gmail.com" diff --git a/module/plugins/hoster/WebshareCz.py b/module/plugins/hoster/WebshareCz.py index 64691ad69..a3918d5c4 100644 --- a/module/plugins/hoster/WebshareCz.py +++ b/module/plugins/hoster/WebshareCz.py @@ -1,23 +1,9 @@ # -*- 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/>. # -############################################################################ import re -from module.plugins.internal.SimpleHoster import SimpleHoster from module.network.RequestFactory import getRequest +from module.plugins.internal.SimpleHoster import SimpleHoster def getInfo(urls): @@ -38,12 +24,15 @@ def getInfo(urls): class WebshareCz(SimpleHoster): __name__ = "WebshareCz" __type__ = "hoster" - __pattern__ = r'https?://(?:www\.)?webshare.cz/(?:#/)?file/(?P<ID>\w+)' __version__ = "0.13" + + __pattern__ = r'https?://(?:www\.)?webshare.cz/(?:#/)?file/(?P<ID>\w+)' + __description__ = """WebShare.cz hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" + def handleFree(self): api_data = self.load('https://webshare.cz/api/file_link/', post={'ident': self.fid}) self.logDebug("API data: " + api_data) diff --git a/module/plugins/hoster/WrzucTo.py b/module/plugins/hoster/WrzucTo.py index 3bcd8dccc..3b26b1a02 100644 --- a/module/plugins/hoster/WrzucTo.py +++ b/module/plugins/hoster/WrzucTo.py @@ -1,21 +1,7 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re + from pycurl import HTTPHEADER from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -24,8 +10,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class WrzucTo(SimpleHoster): __name__ = "WrzucTo" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?wrzuc\.to/([a-zA-Z0-9]+(\.wt|\.html)|(\w+/?linki/[a-zA-Z0-9]+))' __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?wrzuc\.to/([a-zA-Z0-9]+(\.wt|\.html)|(\w+/?linki/[a-zA-Z0-9]+))' + __description__ = """Wrzuc.to hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" diff --git a/module/plugins/hoster/WuploadCom.py b/module/plugins/hoster/WuploadCom.py index a0228081c..b06318d42 100644 --- a/module/plugins/hoster/WuploadCom.py +++ b/module/plugins/hoster/WuploadCom.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class WuploadCom(DeadHoster): __name__ = "WuploadCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?wupload\..*?/file/(([a-z][0-9]+/)?[0-9]+)(/.*)?' __version__ = "0.23" + + __pattern__ = r'http://(?:www\.)?wupload\..*?/file/(([a-z][0-9]+/)?[0-9]+)(/.*)?' + __description__ = """Wupload.com hoster plugin""" __author_name__ = ("jeix", "Paul King") __author_mail__ = ("jeix@hasnomail.de", "") diff --git a/module/plugins/hoster/X7To.py b/module/plugins/hoster/X7To.py index 810ede911..cbd4b8b8e 100644 --- a/module/plugins/hoster/X7To.py +++ b/module/plugins/hoster/X7To.py @@ -6,8 +6,10 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class X7To(DeadHoster): __name__ = "X7To" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?x7.to/' __version__ = "0.41" + + __pattern__ = r'http://(?:www\.)?x7.to/' + __description__ = """X7.to hoster plugin""" __author_name__ = "ernieb" __author_mail__ = "ernieb" diff --git a/module/plugins/hoster/XFileSharingPro.py b/module/plugins/hoster/XFileSharingPro.py index 7ad2d27c0..32d0272bc 100644 --- a/module/plugins/hoster/XFileSharingPro.py +++ b/module/plugins/hoster/XFileSharingPro.py @@ -1,29 +1,16 @@ # -*- coding: utf-8 -*- -############################################################################### -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. -############################################################################### - import re + +from pycurl import FOLLOWLOCATION, LOW_SPEED_TIME from random import random from urllib import unquote from urlparse import urlparse -from pycurl import FOLLOWLOCATION, LOW_SPEED_TIME -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, PluginParseError, replace_patterns + +from module.network.RequestFactory import getURL from module.plugins.internal.CaptchaService import ReCaptcha, SolveMedia +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, PluginParseError, replace_patterns from module.utils import html_unescape -from module.network.RequestFactory import getURL class XFileSharingPro(SimpleHoster): @@ -34,8 +21,10 @@ class XFileSharingPro(SimpleHoster): """ __name__ = "XFileSharingPro" __type__ = "hoster" - __pattern__ = r'^unmatchable$' __version__ = "0.31" + + __pattern__ = r'^unmatchable$' + __description__ = """XFileSharingPro base hoster plugin""" __author_name__ = ("zoidberg", "stickell") __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") diff --git a/module/plugins/hoster/XHamsterCom.py b/module/plugins/hoster/XHamsterCom.py index 9c93d4ee1..3e002a0bb 100644 --- a/module/plugins/hoster/XHamsterCom.py +++ b/module/plugins/hoster/XHamsterCom.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- import re + from urllib import unquote -from module.plugins.Hoster import Hoster from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster def clean_json(json_expr): @@ -18,10 +19,15 @@ def clean_json(json_expr): class XHamsterCom(Hoster): __name__ = "XHamsterCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?xhamster\.com/movies/.+' __version__ = "0.12" + + __pattern__ = r'http://(?:www\.)?xhamster\.com/movies/.+' __config__ = [("type", ".mp4;.flv", "Preferred type", ".mp4")] + __description__ = """XHamster.com hoster plugin""" + __author_name__ = None + __author_mail__ = None + def process(self, pyfile): self.pyfile = pyfile diff --git a/module/plugins/hoster/XVideosCom.py b/module/plugins/hoster/XVideosCom.py index 76dfdadad..4f2611740 100644 --- a/module/plugins/hoster/XVideosCom.py +++ b/module/plugins/hoster/XVideosCom.py @@ -1,23 +1,28 @@ # -*- coding: utf-8 -*- import re -import urllib + +from urllib import unquote from module.plugins.Hoster import Hoster class XVideosCom(Hoster): __name__ = "XVideos.com" + __type__ = "hoster" __version__ = "0.1" + __pattern__ = r'http://(?:www\.)?xvideos\.com/video([0-9]+)/.*' + __description__ = """XVideos.com hoster plugin""" __author_name__ = None __author_mail__ = None + def process(self, pyfile): site = self.load(pyfile.url) pyfile.name = "%s (%s).flv" % ( re.search(r"<h2>([^<]+)<span", site).group(1), re.match(self.__pattern__, pyfile.url).group(1), ) - self.download(urllib.unquote(re.search(r"flv_url=([^&]+)&", site).group(1))) + self.download(unquote(re.search(r"flv_url=([^&]+)&", site).group(1))) diff --git a/module/plugins/hoster/Xdcc.py b/module/plugins/hoster/Xdcc.py index 8f3fb284f..a26e239ad 100644 --- a/module/plugins/hoster/Xdcc.py +++ b/module/plugins/hoster/Xdcc.py @@ -1,46 +1,33 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - -from os.path import join -from os.path import exists -from os import makedirs import re -import sys -import time import socket import struct +import sys +import time + +from os import makedirs +from os.path import exists, join from select import select -from module.utils import save_join from module.plugins.Hoster import Hoster +from module.utils import save_join class Xdcc(Hoster): __name__ = "Xdcc" - __version__ = "0.32" - __pattern__ = r'xdcc://([^/]*?)(/#?.*?)?/.*?/#?\d+/?' # xdcc://irc.Abjects.net/#channel/[XDCC]|Shit/#0004/ __type__ = "hoster" + __version__ = "0.32" + __config__ = [("nick", "str", "Nickname", "pyload"), ("ident", "str", "Ident", "pyloadident"), ("realname", "str", "Realname", "pyloadreal")] + __description__ = """Download from IRC XDCC bot""" __author_name__ = "jeix" __author_mail__ = "jeix@hasnomail.com" + def setup(self): self.debug = 0 # 0,1,2 self.timeout = 30 @@ -75,11 +62,6 @@ class Xdcc(Hoster): def doDownload(self, url): self.pyfile.setStatus("waiting") # real link - download_folder = self.config['general']['download_folder'] - location = join(download_folder, self.pyfile.package().folder.decode(sys.getfilesystemencoding())) - if not exists(location): - makedirs(location) - m = re.match(r'xdcc://(.*?)/#?(.*?)/(.*?)/#?(\d+)/?', url) server = m.group(1) chan = m.group(2) @@ -203,7 +185,10 @@ class Xdcc(Hoster): self.req.filesize = int(m.group(4)) self.pyfile.name = packname - filename = save_join(location, packname) + + download_folder = self.config['general']['download_folder'] + filename = save_join(download_folder, packname) + self.logInfo("XDCC: Downloading %s from %s:%d" % (packname, ip, port)) self.pyfile.setStatus("downloading") diff --git a/module/plugins/hoster/YibaishiwuCom.py b/module/plugins/hoster/YibaishiwuCom.py index 44a67ec0c..c6c285367 100644 --- a/module/plugins/hoster/YibaishiwuCom.py +++ b/module/plugins/hoster/YibaishiwuCom.py @@ -1,30 +1,18 @@ # -*- coding: utf-8 -*- -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -""" - import re -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + from module.common.json_layer import json_loads +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class YibaishiwuCom(SimpleHoster): __name__ = "YibaishiwuCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?(?:u\.)?115.com/file/(?P<ID>\w+)' __version__ = "0.12" + + __pattern__ = r'http://(?:www\.)?(?:u\.)?115.com/file/(?P<ID>\w+)' + __description__ = """115.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" @@ -45,7 +33,7 @@ class YibaishiwuCom(SimpleHoster): response = json_loads(self.load("http://115.com" + url, decode=False)) if "urls" in response: - mirrors = response['urls'] + mirrors = response['urls'] elif "data" in response: mirrors = response['data'] else: diff --git a/module/plugins/hoster/YoupornCom.py b/module/plugins/hoster/YoupornCom.py index f8f782f1c..23b9b0a20 100644 --- a/module/plugins/hoster/YoupornCom.py +++ b/module/plugins/hoster/YoupornCom.py @@ -1,18 +1,22 @@ # -*- coding: utf-8 -*- import re + from module.plugins.Hoster import Hoster class YoupornCom(Hoster): __name__ = "YoupornCom" __type__ = "hoster" - __pattern__ = r'http://(?:www\.)?youporn\.com/watch/.+' __version__ = "0.2" + + __pattern__ = r'http://(?:www\.)?youporn\.com/watch/.+' + __description__ = """Youporn.com hoster plugin""" __author_name__ = "willnix" __author_mail__ = "willnix@pyload.org" + def process(self, pyfile): self.pyfile = pyfile diff --git a/module/plugins/hoster/YourfilesTo.py b/module/plugins/hoster/YourfilesTo.py index 3fb517eef..bdb91819f 100644 --- a/module/plugins/hoster/YourfilesTo.py +++ b/module/plugins/hoster/YourfilesTo.py @@ -1,19 +1,24 @@ # -*- coding: utf-8 -*- import re -import urllib + +from urllib import unquote + from module.plugins.Hoster import Hoster class YourfilesTo(Hoster): __name__ = "YourfilesTo" __type__ = "hoster" - __pattern__ = r'(http://)?(?:www\.)?yourfiles\.(to|biz)/\?d=[a-zA-Z0-9]+' __version__ = "0.21" + + __pattern__ = r'(http://)?(?:www\.)?yourfiles\.(to|biz)/\?d=[a-zA-Z0-9]+' + __description__ = """Youfiles.to hoster plugin""" __author_name__ = ("jeix", "skydancer") __author_mail__ = ("jeix@hasnomail.de", "skydancer@hasnomail.de") + def process(self, pyfile): self.pyfile = pyfile self.prepare() @@ -53,7 +58,7 @@ class YourfilesTo(Hoster): url = re.search(r"var bla = '(.*?)';", self.html) if url: url = url.group(1) - url = urllib.unquote(url.replace("http://http:/http://", "http://").replace("dumdidum", "")) + url = unquote(url.replace("http://http:/http://", "http://").replace("dumdidum", "")) return url else: self.fail("absolute filepath could not be found. offline? ") diff --git a/module/plugins/hoster/YoutubeCom.py b/module/plugins/hoster/YoutubeCom.py index d9dc5e0ef..5ffef5531 100644 --- a/module/plugins/hoster/YoutubeCom.py +++ b/module/plugins/hoster/YoutubeCom.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- +import os import re import subprocess -import os + from urllib import unquote -from module.utils import html_unescape from module.plugins.Hoster import Hoster from module.plugins.internal.SimpleHoster import replace_patterns +from module.utils import html_unescape def which(program): @@ -35,8 +36,9 @@ def which(program): class YoutubeCom(Hoster): __name__ = "YoutubeCom" __type__ = "hoster" - __pattern__ = r'https?://(?:[^/]*\.)?(?:youtube\.com|youtu\.be)/watch.*?[?&]v=.*' __version__ = "0.40" + + __pattern__ = r'https?://(?:[^/]*\.)?(?:youtube\.com|youtu\.be)/watch.*?[?&]v=.*' __config__ = [("quality", "sd;hd;fullhd;240p;360p;480p;720p;1080p;3072p", "Quality Setting", "hd"), ("fmt", "int", "FMT/ITAG Number (5-102, 0 for auto)", 0), (".mp4", "bool", "Allow .mp4", True), @@ -44,6 +46,7 @@ class YoutubeCom(Hoster): (".webm", "bool", "Allow .webm", False), (".3gp", "bool", "Allow .3gp", False), ("3d", "bool", "Prefer 3D", False)] + __description__ = """Youtube.com hoster plugin""" __author_name__ = ("spoob", "zoidberg") __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz") @@ -76,6 +79,7 @@ class YoutubeCom(Hoster): 101: (".webm", 640, 360, 4, True), 102: (".webm", 1280, 720, 8, True)} + def setup(self): self.resumeDownload = self.multiDL = True diff --git a/module/plugins/hoster/ZDF.py b/module/plugins/hoster/ZDF.py index 3c9c6ce9a..d51a16a80 100644 --- a/module/plugins/hoster/ZDF.py +++ b/module/plugins/hoster/ZDF.py @@ -1,23 +1,27 @@ # -*- coding: utf-8 -*- import re + from xml.etree.ElementTree import fromstring from module.plugins.Hoster import Hoster -XML_API = "http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?id=%i" - +# Based on zdfm by Roland Beermann (http://github.com/enkore/zdfm/) class ZDF(Hoster): - # Based on zdfm by Roland Beermann - # http://github.com/enkore/zdfm/ __name__ = "ZDF Mediathek" + __type__ = "hoster" __version__ = "0.8" + __pattern__ = r'http://(?:www\.)?zdf\.de/ZDFmediathek/[^0-9]*([0-9]+)[^0-9]*' + __description__ = """ZDF.de hoster plugin""" __author_name__ = None __author_mail__ = None + XML_API = "http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?id=%i" + + @staticmethod def video_key(video): return ( @@ -35,7 +39,7 @@ class ZDF(Hoster): return int(re.search(r"[^0-9]*([0-9]{4,})[^0-9]*", url).group(1)) def process(self, pyfile): - xml = fromstring(self.load(XML_API % self.get_id(pyfile.url))) + xml = fromstring(self.load(self.XML_API % self.get_id(pyfile.url))) status = xml.findtext("./status/statuscode") if status != "ok": diff --git a/module/plugins/hoster/ZeveraCom.py b/module/plugins/hoster/ZeveraCom.py index d3d67bedc..b6b59b242 100644 --- a/module/plugins/hoster/ZeveraCom.py +++ b/module/plugins/hoster/ZeveraCom.py @@ -5,13 +5,16 @@ from module.plugins.Hoster import Hoster class ZeveraCom(Hoster): __name__ = "ZeveraCom" - __version__ = "0.21" __type__ = "hoster" + __version__ = "0.21" + __pattern__ = r'http://(?:www\.)?zevera.com/.*' + __description__ = """Zevera.com hoster plugin""" __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" + def setup(self): self.resumeDownload = self.multiDL = True self.chunkLimit = 1 diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py index 0c04d68e5..33a672198 100644 --- a/module/plugins/hoster/ZippyshareCom.py +++ b/module/plugins/hoster/ZippyshareCom.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- - -# Test links (random.bin): +# +# Test links: # http://www13.zippyshare.com/v/18665333/file.html import re @@ -11,8 +11,10 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class ZippyshareCom(SimpleHoster): __name__ = "ZippyshareCom" __type__ = "hoster" - __pattern__ = r'(?P<HOST>http://www\d{0,2}\.zippyshare.com)/v(?:/|iew.jsp.*key=)(?P<KEY>\d+)' __version__ = "0.49" + + __pattern__ = r'(?P<HOST>http://www\d{0,2}\.zippyshare.com)/v(?:/|iew.jsp.*key=)(?P<KEY>\d+)' + __description__ = """Zippyshare.com hoster plugin""" __author_name__ = ("spoob", "zoidberg", "stickell", "skylab") __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it", "development@sky-lab.de") |