diff options
author | Walter Purcaro <vuolter@gmail.com> | 2014-10-07 19:54:24 +0200 |
---|---|---|
committer | Walter Purcaro <vuolter@gmail.com> | 2014-10-07 19:54:24 +0200 |
commit | be459e0b409dcd5e04edd75be374bd35d4018e9a (patch) | |
tree | 3f73e813d20608ff0d23eada8214a5124c85bff5 | |
parent | Merge branch 'stable' into 0.4.10 (diff) | |
parent | New __authors__ key replaces __author_name__ and __author_mail__ + Whitespace... (diff) | |
download | pyload-be459e0b409dcd5e04edd75be374bd35d4018e9a.tar.xz |
Merge branch 'stable' into 0.4.10
Conflicts:
module/plugins/internal/CaptchaService.py
pyload/plugins/account/EasybytezCom.py
pyload/plugins/account/TusfilesNet.py
pyload/plugins/base/OCR.py
pyload/plugins/crypter/MultiuploadCom.py
pyload/plugins/crypter/UploadableChFolder.py
pyload/plugins/hoster/DuploadOrg.py
pyload/plugins/hoster/EpicShareNet.py
pyload/plugins/hoster/LemUploadsCom.py
pyload/plugins/hoster/LoadTo.py
pyload/plugins/hoster/LomafileCom.py
pyload/plugins/hoster/MegaFilesSe.py
pyload/plugins/hoster/MegareleaseOrg.py
pyload/plugins/hoster/PandaPlanet.py
pyload/plugins/hoster/PotloadCom.py
pyload/plugins/hoster/PremiumTo.py
pyload/plugins/hoster/TurbobitNet.py
pyload/plugins/internal/DeadCrypter.py
pyload/plugins/internal/DeadHoster.py
pyload/plugins/internal/SimpleCrypter.py
pyload/plugins/internal/UpdateManager.py
pyload/plugins/ocr/LinksaveIn.py
382 files changed, 1211 insertions, 1065 deletions
diff --git a/module/plugins/accounts/BillionuploadsCom.py b/module/plugins/accounts/BillionuploadsCom.py new file mode 100644 index 000000000..440c7889a --- /dev/null +++ b/module/plugins/accounts/BillionuploadsCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class BillionuploadsCom(XFSPAccount): + __name__ = "BillionuploadsCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Billionuploads.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.billionuploads.com/" diff --git a/module/plugins/accounts/FileParadoxIn.py b/module/plugins/accounts/FileParadoxIn.py new file mode 100644 index 000000000..24c745e6a --- /dev/null +++ b/module/plugins/accounts/FileParadoxIn.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class FileParadoxIn(XFSPAccount): + __name__ = "FileParadoxIn" + __type__ = "account" + __version__ = "0.01" + + __description__ = """FileParadox.in account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.fileparadox.in/" diff --git a/module/plugins/accounts/FileomCom.py b/module/plugins/accounts/FileomCom.py new file mode 100644 index 000000000..536d40812 --- /dev/null +++ b/module/plugins/accounts/FileomCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class FileomCom(XFSPAccount): + __name__ = "FileomCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Fileom.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.fileom.com/" diff --git a/module/plugins/accounts/HugefilesNet.py b/module/plugins/accounts/HugefilesNet.py new file mode 100644 index 000000000..296780b7c --- /dev/null +++ b/module/plugins/accounts/HugefilesNet.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class HugefilesNet(XFSPAccount): + __name__ = "HugefilesNet" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Hugefiles.net account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.hugefiles.net/" diff --git a/module/plugins/accounts/HundredEightyUploadCom.py b/module/plugins/accounts/HundredEightyUploadCom.py new file mode 100644 index 000000000..76e757222 --- /dev/null +++ b/module/plugins/accounts/HundredEightyUploadCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class HundredEightyUploadCom(XFSPAccount): + __name__ = "HundredEightyUploadCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """180upload.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.180upload.com/" diff --git a/module/plugins/accounts/LomafileCom.py b/module/plugins/accounts/LomafileCom.py new file mode 100644 index 000000000..bddccdadc --- /dev/null +++ b/module/plugins/accounts/LomafileCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class LomafileCom(XFSPAccount): + __name__ = "LomafileCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Lomafile.com account plugin""" + __authors__ = [("guidobelix", "guidobelix@hotmail.it")] + + + HOSTER_URL = "http://www.lomafile.com/" diff --git a/module/plugins/accounts/NosuploadCom.py b/module/plugins/accounts/NosuploadCom.py new file mode 100644 index 000000000..a75ca289f --- /dev/null +++ b/module/plugins/accounts/NosuploadCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class NosuploadCom(XFSPAccount): + __name__ = "NosuploadCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Nosupload.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.nosupload.com/" diff --git a/module/plugins/accounts/NovafileCom.py b/module/plugins/accounts/NovafileCom.py new file mode 100644 index 000000000..34d3e25b5 --- /dev/null +++ b/module/plugins/accounts/NovafileCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class NovafileCom(XFSPAccount): + __name__ = "NovafileCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Novafile.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.novafile.com/" diff --git a/module/plugins/accounts/SecureUploadEu.py b/module/plugins/accounts/SecureUploadEu.py new file mode 100644 index 000000000..a8cf38df2 --- /dev/null +++ b/module/plugins/accounts/SecureUploadEu.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class SecureUploadEu(XFSPAccount): + __name__ = "SecureUploadEu" + __type__ = "account" + __version__ = "0.01" + + __description__ = """SecureUpload.eu account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.secureupload.eu/" diff --git a/module/plugins/accounts/SendmywayCom.py b/module/plugins/accounts/SendmywayCom.py new file mode 100644 index 000000000..9f6021774 --- /dev/null +++ b/module/plugins/accounts/SendmywayCom.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class SendmywayCom(XFSPAccount): + __name__ = "SendmywayCom" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Sendmyway.com account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.sendmyway.com/" diff --git a/module/plugins/accounts/StreamcloudEu.py b/module/plugins/accounts/StreamcloudEu.py new file mode 100644 index 000000000..4a544b691 --- /dev/null +++ b/module/plugins/accounts/StreamcloudEu.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class StreamcloudEu(XFSPAccount): + __name__ = "StreamcloudEu" + __type__ = "account" + __version__ = "0.01" + + __description__ = """Streamcloud.eu account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.streamcloud.eu/" diff --git a/module/plugins/accounts/VidPlayNet.py b/module/plugins/accounts/VidPlayNet.py new file mode 100644 index 000000000..4c542024e --- /dev/null +++ b/module/plugins/accounts/VidPlayNet.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.XFSPAccount import XFSPAccount + + +class VidPlayNet(XFSPAccount): + __name__ = "VidPlayNet" + __type__ = "account" + __version__ = "0.01" + + __description__ = """VidPlay.net account plugin""" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + + + HOSTER_URL = "http://www.vidplay.net/" diff --git a/module/plugins/hoster/FilepupNet.py b/module/plugins/hoster/FilepupNet.py new file mode 100644 index 000000000..12b2f7798 --- /dev/null +++ b/module/plugins/hoster/FilepupNet.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# +# Test links: +# http://www.filepup.net/files/k5w4ZVoF1410184283.html +# http://www.filepup.net/files/R4GBq9XH1410186553.html + +import re + +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + + +class FilepupNet(SimpleHoster): + __name__ = "FilepupNet" + __type__ = "hoster" + __version__ = "0.01" + + __pattern__ = r'http://(?:www\.)?filepup\.net/files/\w+' + + __description__ = """Filepup.net hoster plugin""" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"), + ("Walter Purcaro", "vuolter@gmail.com")] + + + FILE_NAME_PATTERN = r'>(?P<N>.+?)</h1>' + FILE_SIZE_PATTERN = r'class="fa fa-archive"></i> \((?P<S>[\d.]+) (?P<U>\w+)' + + OFFLINE_PATTERN = r'>This file has been deleted' + + LINK_PATTERN = r'(http://www\.filepup\.net/get/.+?)\'' + + + def setup(self): + self.multiDL = False + self.chunkLimit = 1 + + + def handleFree(self): + m = re.search(self.LINK_PATTERN, self.html) + if m is None: + self.parseError("Download link not found") + + dl_link = m.group(1) + self.download(dl_link, post={'task': "download"}) + + check = self.checkDownload({'html': re.compile("html")}) + if check == "html": + self.parseError("Downloaded file is an html file") + + +getInfo = create_getInfo(FilepupNet) diff --git a/module/plugins/hoster/PandaPlaNet.py b/module/plugins/hoster/PandaPlaNet.py new file mode 100644 index 000000000..9473726fa --- /dev/null +++ b/module/plugins/hoster/PandaPlaNet.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo + + +class PandaPlaNet(DeadHoster): + __name__ = "PandaPlaNet" + __type__ = "hoster" + __version__ = "0.02" + + __pattern__ = r'http://(?:www\.)?pandapla\.net/\w{12}' + + __description__ = """Pandapla.net hoster plugin""" + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] + + +getInfo = create_getInfo(PandaPlaNet) diff --git a/pyload/plugins/Plugin.py b/pyload/plugins/Plugin.py index 7ebaed541..98153bd5b 100644 --- a/pyload/plugins/Plugin.py +++ b/pyload/plugins/Plugin.py @@ -133,8 +133,9 @@ class Plugin(Base): __config__ = [("name", "type", "desc", "default")] __description__ = """Base plugin""" - __author_name__ = ("RaNaN", "spoob", "mkaay") - __author_mail__ = ("RaNaN@pyload.org", "spoob@pyload.org", "mkaay@mkaay.de") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de")] def __init__(self, pyfile): diff --git a/pyload/plugins/account/AlldebridCom.py b/pyload/plugins/account/AlldebridCom.py index 71905d8ef..7183b8e6e 100644 --- a/pyload/plugins/account/AlldebridCom.py +++ b/pyload/plugins/account/AlldebridCom.py @@ -17,8 +17,7 @@ class AlldebridCom(Account): __version__ = "0.22" __description__ = """AllDebrid.com account plugin""" - __author_name__ = "Andy Voigt" - __author_mail__ = "spamsales@online.de" + __authors__ = [("Andy Voigt", "spamsales@online.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/BayfilesCom.py b/pyload/plugins/account/BayfilesCom.py index 221d1615d..af4f791cf 100644 --- a/pyload/plugins/account/BayfilesCom.py +++ b/pyload/plugins/account/BayfilesCom.py @@ -12,8 +12,7 @@ class BayfilesCom(Account): __version__ = "0.03" __description__ = """Bayfiles.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/BitshareCom.py b/pyload/plugins/account/BitshareCom.py index ad44424b3..a91c25982 100644 --- a/pyload/plugins/account/BitshareCom.py +++ b/pyload/plugins/account/BitshareCom.py @@ -9,8 +9,7 @@ class BitshareCom(Account): __version__ = "0.12" __description__ = """Bitshare account plugin""" - __author_name__ = "Paul King" - __author_mail__ = None + __authors__ = [("Paul King", None)] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/CramitIn.py b/pyload/plugins/account/CramitIn.py index ee61310ef..24acd2488 100644 --- a/pyload/plugins/account/CramitIn.py +++ b/pyload/plugins/account/CramitIn.py @@ -9,7 +9,7 @@ class CramitIn(XFSPAccount): __version__ = "0.02" __description__ = """Cramit.in account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_URL = "http://cramit.in/" + + HOSTER_URL = "http://www.cramit.in/" diff --git a/pyload/plugins/account/CzshareCom.py b/pyload/plugins/account/CzshareCom.py index d22def156..dc8d513a5 100644 --- a/pyload/plugins/account/CzshareCom.py +++ b/pyload/plugins/account/CzshareCom.py @@ -12,8 +12,9 @@ class CzshareCom(Account): __version__ = "0.14" __description__ = """Czshare.com account plugin, now Sdilej.cz""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([0-9 ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>' diff --git a/pyload/plugins/account/DebridItaliaCom.py b/pyload/plugins/account/DebridItaliaCom.py index 79a98599e..850a9e60e 100644 --- a/pyload/plugins/account/DebridItaliaCom.py +++ b/pyload/plugins/account/DebridItaliaCom.py @@ -12,8 +12,8 @@ class DebridItaliaCom(Account): __version__ = "0.1" __description__ = """Debriditalia.com account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + WALID_UNTIL_PATTERN = r"Premium valid till: (?P<D>[^|]+) \|" diff --git a/pyload/plugins/account/DepositfilesCom.py b/pyload/plugins/account/DepositfilesCom.py index 9fc0772c4..8d75c6344 100644 --- a/pyload/plugins/account/DepositfilesCom.py +++ b/pyload/plugins/account/DepositfilesCom.py @@ -13,8 +13,9 @@ class DepositfilesCom(Account): __version__ = "0.3" __description__ = """Depositfiles.com account plugin""" - __author_name__ = ("mkaay", "stickell", "Walter Purcaro") - __author_mail__ = ("mkaay@mkaay.de", "l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("mkaay", "mkaay@mkaay.de"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/DevhostSt.py b/pyload/plugins/account/DevhostSt.py index 03d7d9964..4d615cc68 100644 --- a/pyload/plugins/account/DevhostSt.py +++ b/pyload/plugins/account/DevhostSt.py @@ -9,15 +9,14 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DevhostSt(SimpleHoster): - __name__ = "Devhost" + __name__ = "DevhostSt" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" - __pattern__ = r'http://(?:www\.)?d-h\.st/\w+' + __pattern__ = r'http://(?:www\.)?d-h\.st/(?!users/)\w{3}' __description__ = """d-h.st hoster plugin""" - __author_name__ = "zapp-brannigan" - __author_mail__ = "fuerst.reinje@web.de" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")] FILE_NAME_PATTERN = r'>Filename:</span> <div title="(?P<N>.+?)"' @@ -41,8 +40,8 @@ class DevhostSt(SimpleHoster): self.logDebug("Download URL = " + dl_url) self.download(dl_url, disposition=True) - check = self.checkDownload({'is_html': re.compile("html")}) - if check == "is_html": + check = self.checkDownload({'html': re.compile("html")}) + if check == "html": self.parseError("Downloaded file is an html file") diff --git a/pyload/plugins/account/DevhostStFolder.py b/pyload/plugins/account/DevhostStFolder.py index 1c9bd3889..59d293182 100644 --- a/pyload/plugins/account/DevhostStFolder.py +++ b/pyload/plugins/account/DevhostStFolder.py @@ -13,16 +13,39 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class DevhostStFolder(SimpleCrypter): __name__ = "DevhostStFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" - __pattern__ = r'http://(?:www\.)?d-h\.st/users/\w+/\?fld_id=\d+' + __pattern__ = r'http://(?:www\.)?d-h\.st/users/(?P<USER>\w+)(/\?fld_id=(?P<ID>\d+))?' - __description__ = """d-h.st decrypter plugin""" - __author_name_ = "zapp-brannigan" - __author_mail_ = "fuerst.reinje@web.de" + __description__ = """d-h.st folder decrypter plugin""" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"), + ("Walter Purcaro", "vuolter@gmail.com")] - LINK_PATTERN = r';"><a href="/(\w+)' + LINK_PATTERN = r'(?:/> |;">)<a href="(.+?)"(?!>Back to \w+<)' + OFFLINE_PATTERN = r'"/cHP">test\.png<' + + + def getPackageNameAndFolder(self): + try: + id = re.match(self.__pattern__, self.pyfile.url).group('ID') + if id == "0": + raise + + p = r'href="(.+?)">Back to \w+<' + m = re.search(p, self.html) + html = self.load(urljoin("http://d-h.st", m.group(1)), + cookies=False) + + p = '\?fld_id=%s.*?">(.+?)<' % id + m = re.search(p, html) + name = folder = m.group(1) + + except Exception, e: + self.logDebug(str(e)) + name = folder = re.match(self.__pattern__, self.pyfile.url).group('USER') + + return name, folder def getLinks(self): diff --git a/pyload/plugins/account/DropboxCom.py b/pyload/plugins/account/DropboxCom.py index 15e95d46d..639e2be9c 100644 --- a/pyload/plugins/account/DropboxCom.py +++ b/pyload/plugins/account/DropboxCom.py @@ -13,8 +13,7 @@ class DropboxCom(SimpleHoster): __pattern__ = r'https?://(?:www\.)?dropbox\.com/.+' __description__ = """Dropbox.com hoster plugin""" - __author_name__ = "zapp-brannigan" - __author_mail__ = "fuerst.reinje@web.de" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")] FILE_NAME_PATTERN = r'<title>Dropbox - (?P<N>.+?)<' @@ -34,8 +33,8 @@ class DropboxCom(SimpleHoster): def handleFree(self): self.download(self.pyfile.url, get={'dl': "1"}) - check = self.checkDownload({'is_html': re.compile("html")}) - if check == "is_html": + check = self.checkDownload({'html': re.compile("html")}) + if check == "html": self.parseError("Downloaded file is an html file") diff --git a/pyload/plugins/account/EasybytezCom.py b/pyload/plugins/account/EasybytezCom.py index 7634594e4..0fcc187dc 100644 --- a/pyload/plugins/account/EasybytezCom.py +++ b/pyload/plugins/account/EasybytezCom.py @@ -1,28 +1,28 @@ # -*- coding: utf-8 -*- import re + from time import mktime, strptime, gmtime -from pyload.plugins.base.Account import Account -from pyload.plugins.internal.SimpleHoster import parseHtmlForm +from module.plugins.internal.XFSPAccount import XFSPAccount from pyload.utils import parseFileSize -class EasybytezCom(Account): +class EasybytezCom(XFSPAccount): __name__ = "EasybytezCom" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """EasyBytez.com account plugin""" - __author_name__ = ("zoidberg", "guidobelix") - __author_mail__ = ("zoidberg@mujmail.cz", "guidobelix@hotmail.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("guidobelix", "guidobelix@hotmail.it")] + - VALID_UNTIL_PATTERN = r'Premium account expire:</TD><TD><b>([^<]+)</b>' - TRAFFIC_LEFT_PATTERN = r'<TR><TD>Traffic available today:</TD><TD><b>(?P<S>[^<]+)</b>' + HOSTER_URL = "http://www.easybytez.com/" def loadAccountInfo(self, user, req): - html = req.load("http://www.easybytez.com/?op=my_account", decode=True) + html = req.load(self.HOSTER_URL, get={'op': "my_account"}, decode=True) validuntil = None trafficleft = None @@ -54,16 +54,3 @@ class EasybytezCom(Account): trafficleft = parseFileSize(trafficleft) / 1024 return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - html = req.load('http://www.easybytez.com/login.html', decode=True) - action, inputs = parseHtmlForm('name="FL"', html) - inputs.update({"login": user, - "password": data['password'], - "redirect": "http://www.easybytez.com/"}) - - html = req.load(action, post=inputs, decode=True) - - if 'Incorrect Login or Password' in html or '>Error<' in html: - self.wrongPassword() diff --git a/pyload/plugins/account/EuroshareEu.py b/pyload/plugins/account/EuroshareEu.py index 7481bceac..c1103afba 100644 --- a/pyload/plugins/account/EuroshareEu.py +++ b/pyload/plugins/account/EuroshareEu.py @@ -12,8 +12,7 @@ class EuroshareEu(Account): __version__ = "0.01" __description__ = """Euroshare.eu account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FastixRu.py b/pyload/plugins/account/FastixRu.py index 953ba0c1e..2c7353920 100644 --- a/pyload/plugins/account/FastixRu.py +++ b/pyload/plugins/account/FastixRu.py @@ -10,8 +10,7 @@ class FastixRu(Account): __version__ = "0.02" __description__ = """Fastix account plugin""" - __author_name__ = "Massimo Rosamilia" - __author_mail__ = "max@spiritix.eu" + __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FastshareCz.py b/pyload/plugins/account/FastshareCz.py index 0feca4198..d4ef08c2b 100644 --- a/pyload/plugins/account/FastshareCz.py +++ b/pyload/plugins/account/FastshareCz.py @@ -11,8 +11,9 @@ class FastshareCz(Account): __version__ = "0.03" __description__ = """Fastshare.cz account plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + CREDIT_PATTERN = r'(?:Kredit|Credit)\s*</td>\s*<td[^>]*>([\d. \w]+) ' diff --git a/pyload/plugins/account/File4safeCom.py b/pyload/plugins/account/File4safeCom.py index 4429b917b..ffc2fc26d 100644 --- a/pyload/plugins/account/File4safeCom.py +++ b/pyload/plugins/account/File4safeCom.py @@ -9,10 +9,10 @@ class File4safeCom(XFSPAccount): __version__ = "0.02" __description__ = """File4safe.com account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] - HOSTER_URL = "http://file4safe.com/" + + HOSTER_URL = "http://www.file4safe.com/" LOGIN_FAIL_PATTERN = r'input_login' PREMIUM_PATTERN = r'Extend Premium' diff --git a/pyload/plugins/account/FilecloudIo.py b/pyload/plugins/account/FilecloudIo.py index 504c10be2..49c74b93d 100644 --- a/pyload/plugins/account/FilecloudIo.py +++ b/pyload/plugins/account/FilecloudIo.py @@ -10,8 +10,8 @@ class FilecloudIo(Account): __version__ = "0.02" __description__ = """FilecloudIo account plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FilefactoryCom.py b/pyload/plugins/account/FilefactoryCom.py index 047e7bb36..cf42f2666 100644 --- a/pyload/plugins/account/FilefactoryCom.py +++ b/pyload/plugins/account/FilefactoryCom.py @@ -14,8 +14,9 @@ class FilefactoryCom(Account): __version__ = "0.14" __description__ = """Filefactory.com account plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + VALID_UNTIL_PATTERN = r'Premium valid until: <strong>(?P<d>\d{1,2})\w{1,2} (?P<m>\w{3}), (?P<y>\d{4})</strong>' diff --git a/pyload/plugins/account/FilejungleCom.py b/pyload/plugins/account/FilejungleCom.py index 596e928ed..d63b0c273 100644 --- a/pyload/plugins/account/FilejungleCom.py +++ b/pyload/plugins/account/FilejungleCom.py @@ -12,8 +12,8 @@ class FilejungleCom(Account): __version__ = "0.11" __description__ = """Filejungle.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + login_timeout = 60 diff --git a/pyload/plugins/account/FilerNet.py b/pyload/plugins/account/FilerNet.py index 67bab6ba8..1f08d2c1a 100644 --- a/pyload/plugins/account/FilerNet.py +++ b/pyload/plugins/account/FilerNet.py @@ -13,8 +13,8 @@ class FilerNet(Account): __version__ = "0.01" __description__ = """Filer.net account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + TOKEN_PATTERN = r'_csrf_token" value="([^"]+)" />' WALID_UNTIL_PATTERN = r"Der Premium-Zugang ist gÃŒltig bis (.+)\.\s*</td>" diff --git a/pyload/plugins/account/FilerioCom.py b/pyload/plugins/account/FilerioCom.py index c86fa7e1f..badc14a56 100644 --- a/pyload/plugins/account/FilerioCom.py +++ b/pyload/plugins/account/FilerioCom.py @@ -9,7 +9,7 @@ class FilerioCom(XFSPAccount): __version__ = "0.02" __description__ = """FileRio.in account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_URL = "http://filerio.in/" + + HOSTER_URL = "http://www.filerio.in/" diff --git a/pyload/plugins/account/FilesMailRu.py b/pyload/plugins/account/FilesMailRu.py index b0375f6d2..f258ead2f 100644 --- a/pyload/plugins/account/FilesMailRu.py +++ b/pyload/plugins/account/FilesMailRu.py @@ -9,8 +9,7 @@ class FilesMailRu(Account): __version__ = "0.1" __description__ = """Filesmail.ru account plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FileserveCom.py b/pyload/plugins/account/FileserveCom.py index ea678f87b..dd5132734 100644 --- a/pyload/plugins/account/FileserveCom.py +++ b/pyload/plugins/account/FileserveCom.py @@ -12,8 +12,7 @@ class FileserveCom(Account): __version__ = "0.2" __description__ = """Fileserve.com account plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FourSharedCom.py b/pyload/plugins/account/FourSharedCom.py index c973f4d65..6cc69a88d 100644 --- a/pyload/plugins/account/FourSharedCom.py +++ b/pyload/plugins/account/FourSharedCom.py @@ -10,8 +10,9 @@ class FourSharedCom(Account): __version__ = "0.03" __description__ = """FourShared.com account plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FreakshareCom.py b/pyload/plugins/account/FreakshareCom.py index 9bc68e6b4..85d813e58 100644 --- a/pyload/plugins/account/FreakshareCom.py +++ b/pyload/plugins/account/FreakshareCom.py @@ -12,8 +12,7 @@ class FreakshareCom(Account): __version__ = "0.1" __description__ = """Freakshare.com account plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FreeWayMe.py b/pyload/plugins/account/FreeWayMe.py index c40d4486d..28e5c7b80 100644 --- a/pyload/plugins/account/FreeWayMe.py +++ b/pyload/plugins/account/FreeWayMe.py @@ -10,8 +10,7 @@ class FreeWayMe(Account): __version__ = "0.11" __description__ = """FreeWayMe account plugin""" - __author_name__ = "Nicolas Giese" - __author_mail__ = "james@free-way.me" + __authors__ = [("Nicolas Giese", "james@free-way.me")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/FshareVn.py b/pyload/plugins/account/FshareVn.py index 6a357f4bc..84130c11b 100644 --- a/pyload/plugins/account/FshareVn.py +++ b/pyload/plugins/account/FshareVn.py @@ -13,8 +13,9 @@ class FshareVn(Account): __version__ = "0.07" __description__ = """Fshare.vn account plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + VALID_UNTIL_PATTERN = ur'<dt>Thá»i hạn dùng:</dt>\s*<dd>([^<]+)</dd>' LIFETIME_PATTERN = ur'<dt>Lần ÄÄng nháºp trÆ°á»c:</dt>\s*<dd>[^<]+</dd>' diff --git a/pyload/plugins/account/Ftp.py b/pyload/plugins/account/Ftp.py index e331e4389..3917b59e8 100644 --- a/pyload/plugins/account/Ftp.py +++ b/pyload/plugins/account/Ftp.py @@ -9,8 +9,7 @@ class Ftp(Account): __version__ = "0.01" __description__ = """Ftp dummy account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] login_timeout = info_threshold = -1 #: Unlimited diff --git a/pyload/plugins/account/HellshareCz.py b/pyload/plugins/account/HellshareCz.py index 6b5d0a87b..1d033e9f3 100644 --- a/pyload/plugins/account/HellshareCz.py +++ b/pyload/plugins/account/HellshareCz.py @@ -12,8 +12,8 @@ class HellshareCz(Account): __version__ = "0.14" __description__ = """Hellshare.cz account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + CREDIT_LEFT_PATTERN = r'<div class="credit-link">\s*<table>\s*<tr>\s*<th>(\d+|\d\d\.\d\d\.)</th>' diff --git a/pyload/plugins/account/Http.py b/pyload/plugins/account/Http.py index 647af44fe..798d154e0 100644 --- a/pyload/plugins/account/Http.py +++ b/pyload/plugins/account/Http.py @@ -9,8 +9,7 @@ class Http(Account): __version__ = "0.01" __description__ = """Http dummy account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] login_timeout = info_threshold = -1 #: Unlimited diff --git a/pyload/plugins/account/KingfilesNet.py b/pyload/plugins/account/KingfilesNet.py index 44c01f770..1ec0f8d8a 100644 --- a/pyload/plugins/account/KingfilesNet.py +++ b/pyload/plugins/account/KingfilesNet.py @@ -14,8 +14,8 @@ class KingfilesNet(SimpleHoster): __pattern__ = r'http://(?:www\.)?kingfiles\.net/(?P<ID>\w{12})' __description__ = """Kingfiles.net hoster plugin""" - __author_name__ = ("zapp-brannigan", "Walter Purcaro") - __author_mail__ = ("fuerst.reinje@web.de", "vuolter@gmail.com") + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"), + ("Walter Purcaro", "vuolter@gmail.com")] FILE_NAME_PATTERN = r'name="fname" value="(?P<N>.+?)">' @@ -78,8 +78,8 @@ class KingfilesNet(SimpleHoster): dl_url = m.group(1) self.download(dl_url, cookies=True, disposition=True) - check = self.checkDownload({'is_html': re.compile("<html>")}) - if check == "is_html": + check = self.checkDownload({'html': re.compile("<html>")}) + if check == "html": self.parseError("Downloaded file is an html file") diff --git a/pyload/plugins/account/LetitbitNet.py b/pyload/plugins/account/LetitbitNet.py index 7c43fff94..a914693fd 100644 --- a/pyload/plugins/account/LetitbitNet.py +++ b/pyload/plugins/account/LetitbitNet.py @@ -10,8 +10,7 @@ class LetitbitNet(Account): __version__ = "0.01" __description__ = """Letitbit.net account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/LinksnappyCom.py b/pyload/plugins/account/LinksnappyCom.py index 9dc1a8b36..3d0ef7bca 100644 --- a/pyload/plugins/account/LinksnappyCom.py +++ b/pyload/plugins/account/LinksnappyCom.py @@ -12,8 +12,7 @@ class LinksnappyCom(Account): __version__ = "0.02" __description__ = """Linksnappy.com account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/MegaDebridEu.py b/pyload/plugins/account/MegaDebridEu.py index 5c58505f3..a408690c6 100644 --- a/pyload/plugins/account/MegaDebridEu.py +++ b/pyload/plugins/account/MegaDebridEu.py @@ -10,8 +10,8 @@ class MegaDebridEu(Account): __version__ = "0.2" __description__ = """mega-debrid.eu account plugin""" - __author_name__ = "D.Ducatel" - __author_mail__ = "dducatel@je-geek.fr" + __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")] + # Define the base URL of MegaDebrid api API_URL = "https://www.mega-debrid.eu/api.php" diff --git a/pyload/plugins/account/MegasharesCom.py b/pyload/plugins/account/MegasharesCom.py index da0dd7ae7..f9bd6553d 100644 --- a/pyload/plugins/account/MegasharesCom.py +++ b/pyload/plugins/account/MegasharesCom.py @@ -12,8 +12,8 @@ class MegasharesCom(Account): __version__ = "0.02" __description__ = """Megashares.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + VALID_UNTIL_PATTERN = r'<p class="premium_info_box">Period Ends: (\w{3} \d{1,2}, \d{4})</p>' diff --git a/pyload/plugins/account/MovReelCom.py b/pyload/plugins/account/MovReelCom.py index 71766427f..ba71bec2a 100644 --- a/pyload/plugins/account/MovReelCom.py +++ b/pyload/plugins/account/MovReelCom.py @@ -9,13 +9,10 @@ class MovReelCom(XFSPAccount): __version__ = "0.02" __description__ = """Movreel.com account plugin""" - __author_name__ = "t4skforce" - __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] + login_timeout = 60 info_threshold = 30 - HOSTER_URL = "http://movreel.com/" - - TRAFFIC_LEFT_PATTERN = r'Traffic.*?<b>([^<]+)</b>' - LOGIN_FAIL_PATTERN = r'<b[^>]*>Incorrect Login or Password</b><br>' + HOSTER_URL = "http://www.movreel.com/" diff --git a/pyload/plugins/account/MultishareCz.py b/pyload/plugins/account/MultishareCz.py index fb6677a51..e882d0eab 100644 --- a/pyload/plugins/account/MultishareCz.py +++ b/pyload/plugins/account/MultishareCz.py @@ -13,8 +13,8 @@ class MultishareCz(Account): __version__ = "0.02" __description__ = """Multishare.cz account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + TRAFFIC_LEFT_PATTERN = r'<span class="profil-zvyrazneni">Kredit:</span>\s*<strong>(?P<S>[0-9,]+) (?P<U>\w+)</strong>' ACCOUNT_INFO_PATTERN = r'<input type="hidden" id="(u_ID|u_hash)" name="[^"]*" value="([^"]+)">' diff --git a/pyload/plugins/account/MyfastfileCom.py b/pyload/plugins/account/MyfastfileCom.py index 6c90793d0..559b1bd3b 100644 --- a/pyload/plugins/account/MyfastfileCom.py +++ b/pyload/plugins/account/MyfastfileCom.py @@ -12,8 +12,8 @@ class MyfastfileCom(Account): __version__ = "0.02" __description__ = """Myfastfile.com account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/NetloadIn.py b/pyload/plugins/account/NetloadIn.py index 01b09c5d8..fc3c0ac60 100644 --- a/pyload/plugins/account/NetloadIn.py +++ b/pyload/plugins/account/NetloadIn.py @@ -12,8 +12,8 @@ class NetloadIn(Account): __version__ = "0.22" __description__ = """Netload.in account plugin""" - __author_name__ = ("RaNaN", "CryNickSystems") - __author_mail__ = ("RaNaN@pyload.org", "webmaster@pcProfil.de") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("CryNickSystems", "webmaster@pcProfil.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/OboomCom.py b/pyload/plugins/account/OboomCom.py index b304e210c..205edad32 100644 --- a/pyload/plugins/account/OboomCom.py +++ b/pyload/plugins/account/OboomCom.py @@ -14,8 +14,7 @@ class OboomCom(Account): __version__ = "0.2" __description__ = """Oboom.com account plugin""" - __author_name__ = "stanley" - __author_mail__ = "stanley.foerster@gmail.com" + __authors__ = [("stanley", "stanley.foerster@gmail.com")] def loadAccountData(self, user, req): diff --git a/pyload/plugins/account/OneFichierCom.py b/pyload/plugins/account/OneFichierCom.py index efb563a60..5d106a72a 100644 --- a/pyload/plugins/account/OneFichierCom.py +++ b/pyload/plugins/account/OneFichierCom.py @@ -13,8 +13,8 @@ class OneFichierCom(Account): __version__ = "0.1" __description__ = """1fichier.com account plugin""" - __author_name__ = "Elrick69" - __author_mail__ = "elrick69[AT]rocketmail[DOT]com" + __authors__ = [("Elrick69", "elrick69[AT]rocketmail[DOT]com")] + VALID_UNTIL_PATTERN = r'You are a premium user until (?P<d>\d{2})/(?P<m>\d{2})/(?P<y>\d{4})' diff --git a/pyload/plugins/account/OverLoadMe.py b/pyload/plugins/account/OverLoadMe.py index 4fe59706c..514573dfb 100644 --- a/pyload/plugins/account/OverLoadMe.py +++ b/pyload/plugins/account/OverLoadMe.py @@ -10,8 +10,7 @@ class OverLoadMe(Account): __version__ = "0.01" __description__ = """Over-Load.me account plugin""" - __author_name__ = "marley" - __author_mail__ = "marley@over-load.me" + __authors__ = [("marley", "marley@over-load.me")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/PremiumTo.py b/pyload/plugins/account/PremiumTo.py index 75c950263..ccb5c4c87 100644 --- a/pyload/plugins/account/PremiumTo.py +++ b/pyload/plugins/account/PremiumTo.py @@ -9,8 +9,10 @@ class PremiumTo(Account): __version__ = "0.04" __description__ = """Premium.to account plugin""" - __author_name__ = ("RaNaN", "zoidberg", "stickell") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/PremiumizeMe.py b/pyload/plugins/account/PremiumizeMe.py index 1beb950ae..ebc488226 100644 --- a/pyload/plugins/account/PremiumizeMe.py +++ b/pyload/plugins/account/PremiumizeMe.py @@ -11,8 +11,7 @@ class PremiumizeMe(Account): __version__ = "0.11" __description__ = """Premiumize.me account plugin""" - __author_name__ = "Florian Franzen" - __author_mail__ = "FlorianFranzen@gmail.com" + __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/QuickshareCz.py b/pyload/plugins/account/QuickshareCz.py index 0d677eecb..32d7f2d8e 100644 --- a/pyload/plugins/account/QuickshareCz.py +++ b/pyload/plugins/account/QuickshareCz.py @@ -11,8 +11,7 @@ class QuickshareCz(Account): __version__ = "0.01" __description__ = """Quickshare.cz account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/RPNetBiz.py b/pyload/plugins/account/RPNetBiz.py index c10122053..6cd6b6d76 100644 --- a/pyload/plugins/account/RPNetBiz.py +++ b/pyload/plugins/account/RPNetBiz.py @@ -10,8 +10,7 @@ class RPNetBiz(Account): __version__ = "0.1" __description__ = """RPNet.biz account plugin""" - __author_name__ = "Dman" - __author_mail__ = "dmanugm@gmail.com" + __authors__ = [("Dman", "dmanugm@gmail.com")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/RapidgatorNet.py b/pyload/plugins/account/RapidgatorNet.py index 2c2fd493e..8e26a9df4 100644 --- a/pyload/plugins/account/RapidgatorNet.py +++ b/pyload/plugins/account/RapidgatorNet.py @@ -10,8 +10,8 @@ class RapidgatorNet(Account): __version__ = "0.04" __description__ = """Rapidgator.net account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + API_URL = 'http://rapidgator.net/api/user' diff --git a/pyload/plugins/account/RapidshareCom.py b/pyload/plugins/account/RapidshareCom.py index 9f1670cb8..cd4e313a1 100644 --- a/pyload/plugins/account/RapidshareCom.py +++ b/pyload/plugins/account/RapidshareCom.py @@ -9,8 +9,7 @@ class RapidshareCom(Account): __version__ = "0.22" __description__ = """Rapidshare.com account plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/RarefileNet.py b/pyload/plugins/account/RarefileNet.py index e715d0fe0..ba2c7b95a 100644 --- a/pyload/plugins/account/RarefileNet.py +++ b/pyload/plugins/account/RarefileNet.py @@ -9,7 +9,7 @@ class RarefileNet(XFSPAccount): __version__ = "0.03" __description__ = """RareFile.net account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_URL = "http://rarefile.net/" + + HOSTER_URL = "http://www.rarefile.net/" diff --git a/pyload/plugins/account/RealdebridCom.py b/pyload/plugins/account/RealdebridCom.py index 737f22acf..70b99c906 100644 --- a/pyload/plugins/account/RealdebridCom.py +++ b/pyload/plugins/account/RealdebridCom.py @@ -11,8 +11,7 @@ class RealdebridCom(Account): __version__ = "0.43" __description__ = """Real-Debrid.com account plugin""" - __author_name__ = "Devirex Hazzard" - __author_mail__ = "naibaf_11@yahoo.de" + __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/RehostTo.py b/pyload/plugins/account/RehostTo.py index 0414ad581..0ade81540 100644 --- a/pyload/plugins/account/RehostTo.py +++ b/pyload/plugins/account/RehostTo.py @@ -9,8 +9,7 @@ class RehostTo(Account): __version__ = "0.1" __description__ = """Rehost.to account plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/RyushareCom.py b/pyload/plugins/account/RyushareCom.py index 032132537..9c83dabec 100644 --- a/pyload/plugins/account/RyushareCom.py +++ b/pyload/plugins/account/RyushareCom.py @@ -9,10 +9,11 @@ class RyushareCom(XFSPAccount): __version__ = "0.04" __description__ = """Ryushare.com account plugin""" - __author_name__ = ("zoidberg", "trance4us") - __author_mail__ = ("zoidberg@mujmail.cz", "") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("trance4us", None)] - HOSTER_URL = "http://ryushare.com/" + + HOSTER_URL = "http://www.ryushare.com/" def login(self, user, data, req): diff --git a/pyload/plugins/account/ShareRapidCom.py b/pyload/plugins/account/ShareRapidCom.py index 2cd955bbe..4c20770f4 100644 --- a/pyload/plugins/account/ShareRapidCom.py +++ b/pyload/plugins/account/ShareRapidCom.py @@ -12,8 +12,9 @@ class ShareRapidCom(Account): __version__ = "0.34" __description__ = """MegaRapid.cz account plugin""" - __author_name__ = ("MikyWoW", "zoidberg") - __author_mail__ = ("mikywow@seznam.cz", "zoidberg@mujmail.cz") + __authors__ = [("MikyWoW", "mikywow@seznam.cz"), + ("zoidberg", "zoidberg@mujmail.cz")] + login_timeout = 60 diff --git a/pyload/plugins/account/ShareonlineBiz.py b/pyload/plugins/account/ShareonlineBiz.py index ff0cb1c58..681f1b5a8 100644 --- a/pyload/plugins/account/ShareonlineBiz.py +++ b/pyload/plugins/account/ShareonlineBiz.py @@ -9,8 +9,8 @@ class ShareonlineBiz(Account): __version__ = "0.24" __description__ = """Share-online.biz account plugin""" - __author_name__ = ("mkaay", "zoidberg") - __author_mail__ = ("mkaay@mkaay.de", "zoidberg@mujmail.cz") + __authors__ = [("mkaay", "mkaay@mkaay.de"), + ("zoidberg", "zoidberg@mujmail.cz")] def getUserAPI(self, user, req): diff --git a/pyload/plugins/account/SimplyPremiumCom.py b/pyload/plugins/account/SimplyPremiumCom.py index e9126a5cb..a601aa533 100644 --- a/pyload/plugins/account/SimplyPremiumCom.py +++ b/pyload/plugins/account/SimplyPremiumCom.py @@ -10,8 +10,7 @@ class SimplyPremiumCom(Account): __version__ = "0.01" __description__ = """Simply-Premium.com account plugin""" - __author_name__ = "EvolutionClip" - __author_mail__ = "evolutionclip@live.de" + __authors__ = [("EvolutionClip", "evolutionclip@live.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/SimplydebridCom.py b/pyload/plugins/account/SimplydebridCom.py index 4af8eaa31..bf49b652b 100644 --- a/pyload/plugins/account/SimplydebridCom.py +++ b/pyload/plugins/account/SimplydebridCom.py @@ -11,8 +11,7 @@ class SimplydebridCom(Account): __version__ = "0.1" __description__ = """Simply-Debrid.com account plugin""" - __author_name__ = "Kagenoshin" - __author_mail__ = "kagenoshin@gmx.ch" + __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/StahnuTo.py b/pyload/plugins/account/StahnuTo.py index ba4a3fcdd..fa08b234d 100644 --- a/pyload/plugins/account/StahnuTo.py +++ b/pyload/plugins/account/StahnuTo.py @@ -12,8 +12,7 @@ class StahnuTo(Account): __version__ = "0.02" __description__ = """StahnuTo account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/TurbobitNet.py b/pyload/plugins/account/TurbobitNet.py index ba172d67e..48ed17d73 100644 --- a/pyload/plugins/account/TurbobitNet.py +++ b/pyload/plugins/account/TurbobitNet.py @@ -12,8 +12,7 @@ class TurbobitNet(Account): __version__ = "0.01" __description__ = """TurbobitNet account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/TusfilesNet.py b/pyload/plugins/account/TusfilesNet.py index b00770a59..6a80105be 100644 --- a/pyload/plugins/account/TusfilesNet.py +++ b/pyload/plugins/account/TusfilesNet.py @@ -4,26 +4,27 @@ import re from time import mktime, strptime, gmtime -from pyload.plugins.base.Account import Account -from pyload.plugins.internal.SimpleHoster import parseHtmlForm +from module.plugins.internal.XFSPAccount import XFSPAccount from pyload.utils import parseFileSize -class TusfilesNet(Account): +class TusfilesNet(XFSPAccount): __name__ = "TusfilesNet" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Tusfile.net account plugin""" - __author_name__ = "guidobelix" - __author_mail__ = "guidobelix@hotmail.it" + __authors__ = [("guidobelix", "guidobelix@hotmail.it")] + + + HOSTER_URL = "http://www.tusfiles.net/" VALID_UNTIL_PATTERN = r'<span class="label label-default">([^<]+)</span>' TRAFFIC_LEFT_PATTERN = r'<td><img src="//www.tusfiles.net/i/icon/meter.png" alt=""/></td>\n<td> (?P<S>[^<]+)</td>' def loadAccountInfo(self, user, req): - html = req.load("http://www.tusfiles.net/?op=my_account", decode=True) + html = req.load(self.HOSTER_URL, get={'op': "my_account"}, decode=True) validuntil = None trafficleft = None @@ -54,16 +55,3 @@ class TusfilesNet(Account): trafficleft = parseFileSize(trafficleft) * 1024 return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - - - def login(self, user, data, req): - html = req.load("http://www.tusfiles.net/login.html", decode=True) - action, inputs = parseHtmlForm('name="FL"', html) - inputs.update({'login': user, - 'password': data['password'], - 'redirect': "http://www.tusfiles.net/"}) - - html = req.load("http://www.tusfiles.net/", post=inputs, decode=True) - - if 'Incorrect Login or Password' in html or '>Error<' in html: - self.wrongPassword() diff --git a/pyload/plugins/account/UlozTo.py b/pyload/plugins/account/UlozTo.py index 214607998..913ddc56f 100644 --- a/pyload/plugins/account/UlozTo.py +++ b/pyload/plugins/account/UlozTo.py @@ -11,8 +11,9 @@ class UlozTo(Account): __version__ = "0.06" __description__ = """Uloz.to account plugin""" - __author_name__ = ("zoidberg", "pulpe") - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("pulpe", None)] + TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a href="/kredit" title="[^"]*?GB = ([0-9.]+) MB"' diff --git a/pyload/plugins/account/UnrestrictLi.py b/pyload/plugins/account/UnrestrictLi.py index a93e88e2d..179d2bd8a 100644 --- a/pyload/plugins/account/UnrestrictLi.py +++ b/pyload/plugins/account/UnrestrictLi.py @@ -10,8 +10,7 @@ class UnrestrictLi(Account): __version__ = "0.03" __description__ = """Unrestrict.li account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/UploadedTo.py b/pyload/plugins/account/UploadedTo.py index 2ef0117f7..145205530 100644 --- a/pyload/plugins/account/UploadedTo.py +++ b/pyload/plugins/account/UploadedTo.py @@ -12,8 +12,7 @@ class UploadedTo(Account): __version__ = "0.26" __description__ = """Uploaded.to account plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/UploadheroCom.py b/pyload/plugins/account/UploadheroCom.py index 4cea86e35..ec3cdf906 100644 --- a/pyload/plugins/account/UploadheroCom.py +++ b/pyload/plugins/account/UploadheroCom.py @@ -13,8 +13,7 @@ class UploadheroCom(Account): __version__ = "0.2" __description__ = """Uploadhero.co account plugin""" - __author_name__ = "mcmyst" - __author_mail__ = "mcmyst@hotmail.fr" + __authors__ = [("mcmyst", "mcmyst@hotmail.fr")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/UploadingCom.py b/pyload/plugins/account/UploadingCom.py index 0f7d33ec8..a25281ca4 100644 --- a/pyload/plugins/account/UploadingCom.py +++ b/pyload/plugins/account/UploadingCom.py @@ -12,8 +12,7 @@ class UploadingCom(Account): __version__ = "0.1" __description__ = """Uploading.com account plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/account/UptoboxCom.py b/pyload/plugins/account/UptoboxCom.py index 94c32e753..917663d63 100644 --- a/pyload/plugins/account/UptoboxCom.py +++ b/pyload/plugins/account/UptoboxCom.py @@ -9,9 +9,9 @@ class UptoboxCom(XFSPAccount): __version__ = "0.03" __description__ = """DDLStorage.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_URL = "http://uptobox.com/" + + HOSTER_URL = "http://www.uptobox.com/" VALID_UNTIL_PATTERN = r'>Premium.[Aa]ccount expire: ([^<]+)</strong>' diff --git a/pyload/plugins/account/YibaishiwuCom.py b/pyload/plugins/account/YibaishiwuCom.py index 6cb595d06..e9fe0facf 100644 --- a/pyload/plugins/account/YibaishiwuCom.py +++ b/pyload/plugins/account/YibaishiwuCom.py @@ -11,8 +11,8 @@ class YibaishiwuCom(Account): __version__ = "0.01" __description__ = """115.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}' diff --git a/pyload/plugins/account/ZeveraCom.py b/pyload/plugins/account/ZeveraCom.py index 6d70a2e6b..17bfb114c 100644 --- a/pyload/plugins/account/ZeveraCom.py +++ b/pyload/plugins/account/ZeveraCom.py @@ -11,8 +11,7 @@ class ZeveraCom(Account): __version__ = "0.21" __description__ = """Zevera.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def loadAccountInfo(self, user, req): diff --git a/pyload/plugins/addon/Checksum.py b/pyload/plugins/addon/Checksum.py index 1ce5415ed..551ce7bd9 100644 --- a/pyload/plugins/addon/Checksum.py +++ b/pyload/plugins/addon/Checksum.py @@ -50,8 +50,10 @@ class Checksum(Addon): ("wait_time", "int", "Time to wait before each retry (seconds)", 1)] __description__ = """Verify downloaded file size and checksum""" - __author_name__ = ("zoidberg", "Walter Purcaro", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "vuolter@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + methods = {'sfv': 'crc32', 'crc': 'crc32', 'hash': 'md5'} regexps = {'sfv': r'^(?P<name>[^;].+)\s+(?P<hash>[0-9A-Fa-f]{8})$', diff --git a/pyload/plugins/addon/ClickAndLoad.py b/pyload/plugins/addon/ClickAndLoad.py index ae541ca09..7a90b8f04 100644 --- a/pyload/plugins/addon/ClickAndLoad.py +++ b/pyload/plugins/addon/ClickAndLoad.py @@ -15,8 +15,8 @@ class ClickAndLoad(Addon): ("extern", "bool", "Allow external link adding", False)] __description__ = """Gives abillity to use jd's click and load. depends on webinterface""" - __author_name__ = ("RaNaN", "mkaay") - __author_mail__ = ("RaNaN@pyload.de", "mkaay@mkaay.de") + __authors__ = [("RaNaN", "RaNaN@pyload.de"), + ("mkaay", "mkaay@mkaay.de")] def coreReady(self): diff --git a/pyload/plugins/addon/DeleteFinished.py b/pyload/plugins/addon/DeleteFinished.py index eb6992fec..25e49dec5 100644 --- a/pyload/plugins/addon/DeleteFinished.py +++ b/pyload/plugins/addon/DeleteFinished.py @@ -14,8 +14,7 @@ class DeleteFinished(Addon): ('deloffline', 'bool', 'Delete packages with offline links', 'False')] __description__ = """Automatically delete all finished packages from queue""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] ## overwritten methods ## diff --git a/pyload/plugins/addon/DownloadScheduler.py b/pyload/plugins/addon/DownloadScheduler.py index 20c5ed1e1..48bbeb3af 100644 --- a/pyload/plugins/addon/DownloadScheduler.py +++ b/pyload/plugins/addon/DownloadScheduler.py @@ -18,8 +18,8 @@ class DownloadScheduler(Addon): ("abort", "bool", "Abort active downloads when start period with speed 0", False)] __description__ = """Download Scheduler""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] def setup(self): diff --git a/pyload/plugins/addon/ExternalScripts.py b/pyload/plugins/addon/ExternalScripts.py index 023c656dc..52d14c9d3 100644 --- a/pyload/plugins/addon/ExternalScripts.py +++ b/pyload/plugins/addon/ExternalScripts.py @@ -18,8 +18,11 @@ class ExternalScripts(Addon): __config__ = [("activated", "bool", "Activated", True)] __description__ = """Run external scripts""" - __author_name__ = ("mkaay", "RaNaN", "spoob", "Walter Purcaro") - __author_mail__ = ("mkaay@mkaay.de", "ranan@pyload.org", "spoob@pyload.org", "vuolter@gmail.com") + __authors__ = [("mkaay", "mkaay@mkaay.de"), + ("RaNaN", "ranan@pyload.org"), + ("spoob", "spoob@pyload.org"), + ("Walter Purcaro", "vuolter@gmail.com")] + event_list = ["archive_extracted", "package_extracted", "all_archives_extracted", "all_archives_processed", "allDownloadsFinished", "allDownloadsProcessed"] diff --git a/pyload/plugins/addon/ExtractArchive.py b/pyload/plugins/addon/ExtractArchive.py index 20693c83d..cdf2eecee 100644 --- a/pyload/plugins/addon/ExtractArchive.py +++ b/pyload/plugins/addon/ExtractArchive.py @@ -70,8 +70,10 @@ class ExtractArchive(Addon): ("renice", "int", "CPU Priority", 0)] __description__ = """Extract different kind of archives""" - __author_name__ = ("RaNaN", "AndroKev", "Walter Purcaro") - __author_mail__ = ("ranan@pyload.org", "@pyloadforum", "vuolter@gmail.com") + __authors__ = [("RaNaN", "ranan@pyload.org"), + ("AndroKev", None), + ("Walter Purcaro", "vuolter@gmail.com")] + event_list = ["allDownloadsProcessed"] diff --git a/pyload/plugins/addon/HotFolder.py b/pyload/plugins/addon/HotFolder.py index 0c5008f93..cceb71ca7 100644 --- a/pyload/plugins/addon/HotFolder.py +++ b/pyload/plugins/addon/HotFolder.py @@ -21,8 +21,7 @@ class HotFolder(Addon): ("file", "str", "Link file", "links.txt")] __description__ = """Observe folder and file for changes and add container and links""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.de" + __authors__ = [("RaNaN", "RaNaN@pyload.de")] def setup(self): diff --git a/pyload/plugins/addon/IRCInterface.py b/pyload/plugins/addon/IRCInterface.py index 85175f4da..9f77bfc7e 100644 --- a/pyload/plugins/addon/IRCInterface.py +++ b/pyload/plugins/addon/IRCInterface.py @@ -33,8 +33,7 @@ class IRCInterface(Thread, Addon): ("captcha", "bool", "Send captcha requests", True)] __description__ = """Connect to irc and let owner perform different tasks""" - __author_name__ = "Jeix" - __author_mail__ = "Jeix@hasnomail.com" + __authors__ = [("Jeix", "Jeix@hasnomail.com")] def __init__(self, core, manager): diff --git a/pyload/plugins/addon/MergeFiles.py b/pyload/plugins/addon/MergeFiles.py index 16c88bcdd..1edbf119a 100644 --- a/pyload/plugins/addon/MergeFiles.py +++ b/pyload/plugins/addon/MergeFiles.py @@ -16,8 +16,8 @@ class MergeFiles(Addon): __config__ = [("activated", "bool", "Activated", False)] __description__ = """Merges parts splitted with hjsplit""" - __author_name__ = "and9000" - __author_mail__ = "me@has-no-mail.com" + __authors__ = [("and9000", "me@has-no-mail.com")] + BUFFER_SIZE = 4096 diff --git a/pyload/plugins/addon/MultiHome.py b/pyload/plugins/addon/MultiHome.py index 2aa60ecc3..f7bca4843 100644 --- a/pyload/plugins/addon/MultiHome.py +++ b/pyload/plugins/addon/MultiHome.py @@ -14,8 +14,7 @@ class MultiHome(Addon): ("interfaces", "str", "Interfaces", "None")] __description__ = """Ip address changer""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def setup(self): diff --git a/pyload/plugins/addon/RestartFailed.py b/pyload/plugins/addon/RestartFailed.py index db3a61523..7d736db46 100644 --- a/pyload/plugins/addon/RestartFailed.py +++ b/pyload/plugins/addon/RestartFailed.py @@ -12,13 +12,13 @@ class RestartFailed(Addon): ("interval", "int", "Check interval in minutes", 90)] __description__ = """Periodically restart all failed downloads in queue""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - MIN_INTERVAL = 15 * 60 #: 15m minimum check interval (value is in seconds) event_list = ["pluginConfigChanged"] + MIN_INTERVAL = 15 * 60 #: 15m minimum check interval (value is in seconds) + def pluginConfigChanged(self, plugin, name, value): if name == "interval": diff --git a/pyload/plugins/addon/UnSkipOnFail.py b/pyload/plugins/addon/UnSkipOnFail.py index 27662cad3..7ab069e93 100644 --- a/pyload/plugins/addon/UnSkipOnFail.py +++ b/pyload/plugins/addon/UnSkipOnFail.py @@ -15,8 +15,7 @@ class UnSkipOnFail(Addon): __config__ = [("activated", "bool", "Activated", True)] __description__ = """When a download fails, restart skipped duplicates""" - __author_name__ = "hagg" - __author_mail__ = None + __authors__ = [("hagg", None)] def downloadFailed(self, pyfile): diff --git a/pyload/plugins/addon/WindowsPhoneToastNotify.py b/pyload/plugins/addon/WindowsPhoneToastNotify.py index a35e28e3b..e6605dfb2 100644 --- a/pyload/plugins/addon/WindowsPhoneToastNotify.py +++ b/pyload/plugins/addon/WindowsPhoneToastNotify.py @@ -18,8 +18,7 @@ class WindowsPhoneToastNotify(Addon): ("pushTimeout", "int", "Timeout between notifications in seconds", 0)] __description__ = """Send push notifications to Windows Phone""" - __author_name__ = "Andy Voigt" - __author_mail__ = "phone-support@hotmail.de" + __authors__ = [("Andy Voigt", "phone-support@hotmail.de")] def setup(self): diff --git a/pyload/plugins/addon/XMPPInterface.py b/pyload/plugins/addon/XMPPInterface.py index f442cc0d0..de04f05fb 100644 --- a/pyload/plugins/addon/XMPPInterface.py +++ b/pyload/plugins/addon/XMPPInterface.py @@ -24,8 +24,7 @@ class XMPPInterface(IRCInterface, JabberClient): ("captcha", "bool", "Send captcha requests", True)] __description__ = """Connect to jabber and let owner perform different tasks""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] implements(IMessageHandlersProvider) diff --git a/pyload/plugins/base/Account.py b/pyload/plugins/base/Account.py index acf531694..687803d2e 100644 --- a/pyload/plugins/base/Account.py +++ b/pyload/plugins/base/Account.py @@ -24,8 +24,8 @@ class Account(Base): __version__ = "0.3" __description__ = """Base account plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] + #: after that time (in minutes) pyload will relogin the account login_timeout = 10 * 60 @@ -67,13 +67,13 @@ class Account(Base): self.login(user, data, req) except WrongPassword: self.logWarning( - _("Could not login with account %(user)s | %(msg)s") % {"user": user - , "msg": _("Wrong Password")}) + _("Could not login with account %(user)s | %(msg)s") % {"user": user, + "msg": _("Wrong Password")}) success = data['valid'] = False except Exception, e: self.logWarning( - _("Could not login with account %(user)s | %(msg)s") % {"user": user - , "msg": e}) + _("Could not login with account %(user)s | %(msg)s") % {"user": user, + "msg": e}) success = data['valid'] = False if self.core.debug: print_exc() diff --git a/pyload/plugins/base/Container.py b/pyload/plugins/base/Container.py index 2059ae9b2..40cc25195 100644 --- a/pyload/plugins/base/Container.py +++ b/pyload/plugins/base/Container.py @@ -17,8 +17,7 @@ class Container(Crypter): __pattern__ = None __description__ = """Base container decrypter plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def preprocessing(self, thread): diff --git a/pyload/plugins/base/Crypter.py b/pyload/plugins/base/Crypter.py index 7bb48d607..8d269c75d 100644 --- a/pyload/plugins/base/Crypter.py +++ b/pyload/plugins/base/Crypter.py @@ -11,8 +11,7 @@ class Crypter(Plugin): __pattern__ = None __description__ = """Base decrypter plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def __init__(self, pyfile): diff --git a/pyload/plugins/base/Hook.py b/pyload/plugins/base/Hook.py index a866278ba..718802ad8 100644 --- a/pyload/plugins/base/Hook.py +++ b/pyload/plugins/base/Hook.py @@ -31,8 +31,9 @@ class Hook(Base): __config__ = [("name", "type", "desc", "default")] __description__ = """Interface for hook""" - __author_name__ = ("mkaay", "RaNaN") - __author_mail__ = ("mkaay@mkaay.de", "RaNaN@pyload.org") + __authors__ = [("mkaay", "mkaay@mkaay.de"), + ("RaNaN", "RaNaN@pyload.org")] + #: automatically register event listeners for functions, attribute will be deleted dont use it yourself event_map = None diff --git a/pyload/plugins/base/Hoster.py b/pyload/plugins/base/Hoster.py index 23369deec..8f0bdb727 100644 --- a/pyload/plugins/base/Hoster.py +++ b/pyload/plugins/base/Hoster.py @@ -16,5 +16,4 @@ class Hoster(Plugin): __pattern__ = None __description__ = """Base hoster plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] diff --git a/pyload/plugins/base/OCR.py b/pyload/plugins/base/OCR.py index 0991184f3..5ce85aef6 100644 --- a/pyload/plugins/base/OCR.py +++ b/pyload/plugins/base/OCR.py @@ -1,16 +1,16 @@ # -*- coding: utf-8 -*- from __future__ import with_statement -import os + +try: + from PIL import Image, GifImagePlugin, JpegImagePlugin, PngImagePlugin, TiffImagePlugin +except ImportError: + import Image, GifImagePlugin, JpegImagePlugin, PngImagePlugin, TiffImagePlugin + import logging import subprocess from os.path import abspath, join -from PIL import Image -from PIL import TiffImagePlugin -from PIL import PngImagePlugin -from PIL import GifImagePlugin -from PIL import JpegImagePlugin class OCR(object): @@ -19,8 +19,7 @@ class OCR(object): __version__ = "0.1" __description__ = """OCR base plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] def __init__(self): diff --git a/pyload/plugins/container/CCF.py b/pyload/plugins/container/CCF.py index db6588068..fe43bda7c 100644 --- a/pyload/plugins/container/CCF.py +++ b/pyload/plugins/container/CCF.py @@ -19,8 +19,7 @@ class CCF(Container): __pattern__ = r'.+\.ccf' __description__ = """CCF container decrypter plugin""" - __author_name__ = "Willnix" - __author_mail__ = "Willnix@pyload.org" + __authors__ = [("Willnix", "Willnix@pyload.org")] def decrypt(self, pyfile): diff --git a/pyload/plugins/container/LinkList.py b/pyload/plugins/container/LinkList.py index 0acdd2983..a4de13f2d 100644 --- a/pyload/plugins/container/LinkList.py +++ b/pyload/plugins/container/LinkList.py @@ -15,8 +15,8 @@ class LinkList(Container): ("encoding", "string", "File encoding (default utf-8)", "")] __description__ = """Read link lists in txt format""" - __author_name__ = ("spoob", "jeix") - __author_mail__ = ("spoob@pyload.org", "jeix@hasnomail.com") + __authors__ = [("spoob", "spoob@pyload.org"), + ("jeix", "jeix@hasnomail.com")] def decrypt(self, pyfile): diff --git a/pyload/plugins/container/RSDF.py b/pyload/plugins/container/RSDF.py index 3175516cf..1fe2974a2 100644 --- a/pyload/plugins/container/RSDF.py +++ b/pyload/plugins/container/RSDF.py @@ -14,8 +14,8 @@ class RSDF(Container): __pattern__ = r'.+\.rsdf' __description__ = """RSDF container decrypter plugin""" - __author_name__ = ("RaNaN", "spoob") - __author_mail__ = ("RaNaN@pyload.org", "spoob@pyload.org") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("spoob", "spoob@pyload.org")] def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/BitshareComFolder.py b/pyload/plugins/crypter/BitshareComFolder.py index cfb6fc1a0..6cdb43339 100644 --- a/pyload/plugins/crypter/BitshareComFolder.py +++ b/pyload/plugins/crypter/BitshareComFolder.py @@ -6,13 +6,13 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class BitshareComFolder(SimpleCrypter): __name__ = "BitshareComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+' __description__ = """Bitshare.com folder decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<a href="(http://bitshare.com/files/.+)">.+</a></td>' - TITLE_PATTERN = r'View public folder "(?P<title>.+)"</h1>' + TITLE_PATTERN = r'View public folder "(.+)"</h1>' diff --git a/pyload/plugins/crypter/C1neonCom.py b/pyload/plugins/crypter/C1neonCom.py index 2d1e91ef6..bb5b48cc2 100644 --- a/pyload/plugins/crypter/C1neonCom.py +++ b/pyload/plugins/crypter/C1neonCom.py @@ -11,5 +11,4 @@ class C1neonCom(DeadCrypter): __pattern__ = r'http://(?:www\.)?c1neon.com/.*?' __description__ = """C1neon.com decrypter plugin""" - __author_name__ = "godofdream" - __author_mail__ = "soilfiction@gmail.com" + __authors__ = [("godofdream", "soilfiction@gmail.com")] diff --git a/pyload/plugins/crypter/ChipDe.py b/pyload/plugins/crypter/ChipDe.py index fe91b69ce..7740e8e09 100644 --- a/pyload/plugins/crypter/ChipDe.py +++ b/pyload/plugins/crypter/ChipDe.py @@ -12,8 +12,7 @@ class ChipDe(Crypter): __pattern__ = r'http://(?:www\.)?chip.de/video/.*\.html' __description__ = """Chip.de decrypter plugin""" - __author_name__ = "4Christopher" - __author_mail__ = "4Christopher@gmx.de" + __authors__ = [("4Christopher", "4Christopher@gmx.de")] def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/CrockoComFolder.py b/pyload/plugins/crypter/CrockoComFolder.py index 200b3333e..9fc8d2d30 100644 --- a/pyload/plugins/crypter/CrockoComFolder.py +++ b/pyload/plugins/crypter/CrockoComFolder.py @@ -11,7 +11,7 @@ class CrockoComFolder(SimpleCrypter): __pattern__ = r'http://(?:www\.)?crocko.com/f/.*' __description__ = """Crocko.com folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'<td class="last"><a href="([^"]+)">download</a>' diff --git a/pyload/plugins/crypter/CryptItCom.py b/pyload/plugins/crypter/CryptItCom.py index 3de00847e..99f8b1730 100644 --- a/pyload/plugins/crypter/CryptItCom.py +++ b/pyload/plugins/crypter/CryptItCom.py @@ -11,5 +11,4 @@ class CryptItCom(DeadCrypter): __pattern__ = r'http://(?:www\.)?crypt-it\.com/(s|e|d|c)/[\w]+' __description__ = """Crypt-it.com decrypter plugin""" - __author_name__ = "jeix" - __author_mail__ = "jeix@hasnomail.de" + __authors__ = [("jeix", "jeix@hasnomail.de")] diff --git a/pyload/plugins/crypter/CzshareComFolder.py b/pyload/plugins/crypter/CzshareComFolder.py index 2191a04b3..ac47aa17e 100644 --- a/pyload/plugins/crypter/CzshareComFolder.py +++ b/pyload/plugins/crypter/CzshareComFolder.py @@ -12,8 +12,8 @@ class CzshareComFolder(Crypter): __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/folders/.*' __description__ = """Czshare.com folder decrypter plugin, now Sdilej.cz""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FOLDER_PATTERN = r'<tr class="subdirectory">\s*<td>\s*<table>(.*?)</table>' LINK_PATTERN = r'<td class="col2"><a href="([^"]+)">info</a></td>' diff --git a/pyload/plugins/crypter/DDLMusicOrg.py b/pyload/plugins/crypter/DDLMusicOrg.py index 8c944c306..c4dbe0186 100644 --- a/pyload/plugins/crypter/DDLMusicOrg.py +++ b/pyload/plugins/crypter/DDLMusicOrg.py @@ -15,8 +15,7 @@ class DDLMusicOrg(Crypter): __pattern__ = r'http://(?:www\.)?ddl-music\.org/captcha/ddlm_cr\d\.php\?\d+\?\d+' __description__ = """Ddl-music.org decrypter plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def setup(self): diff --git a/pyload/plugins/crypter/DailymotionBatch.py b/pyload/plugins/crypter/DailymotionBatch.py index 73a0ceed5..41bec2203 100644 --- a/pyload/plugins/crypter/DailymotionBatch.py +++ b/pyload/plugins/crypter/DailymotionBatch.py @@ -17,8 +17,7 @@ class DailymotionBatch(Crypter): __pattern__ = r'https?://(?:www\.)?dailymotion\.com/((playlists/)?(?P<TYPE>playlist|user)/)?(?P<ID>[\w^_]+)(?(TYPE)|#)' __description__ = """Dailymotion.com channel & playlist decrypter""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] def api_response(self, ref, req=None): diff --git a/pyload/plugins/crypter/DataHuFolder.py b/pyload/plugins/crypter/DataHuFolder.py index aafcf0def..29f38c3b7 100644 --- a/pyload/plugins/crypter/DataHuFolder.py +++ b/pyload/plugins/crypter/DataHuFolder.py @@ -8,16 +8,17 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class DataHuFolder(SimpleCrypter): __name__ = "DataHuFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?data.hu/dir/\w+' __description__ = """Data.hu folder decrypter plugin""" - __author_name__ = ("crash", "stickell") - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("crash", None), + ("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r"<a href='(http://data\.hu/get/.+)' target='_blank'>\1</a>" - TITLE_PATTERN = ur'<title>(?P<title>.+) Let\xf6lt\xe9se</title>' + TITLE_PATTERN = ur'<title>(.+) Let\xf6lt\xe9se</title>' def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/DdlstorageComFolder.py b/pyload/plugins/crypter/DdlstorageComFolder.py index 7469610f1..c7e2538ff 100644 --- a/pyload/plugins/crypter/DdlstorageComFolder.py +++ b/pyload/plugins/crypter/DdlstorageComFolder.py @@ -11,8 +11,8 @@ class DdlstorageComFolder(DeadCrypter): __pattern__ = r'https?://(?:www\.)?ddlstorage\.com/folder/\w+' __description__ = """DDLStorage.com folder decrypter plugin""" - __author_name__ = ("godofdream", "stickell") - __author_mail__ = ("soilfiction@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("godofdream", "soilfiction@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(SpeedLoadOrg) diff --git a/pyload/plugins/crypter/DepositfilesComFolder.py b/pyload/plugins/crypter/DepositfilesComFolder.py index e308305ae..db87f1c45 100644 --- a/pyload/plugins/crypter/DepositfilesComFolder.py +++ b/pyload/plugins/crypter/DepositfilesComFolder.py @@ -11,7 +11,7 @@ class DepositfilesComFolder(SimpleCrypter): __pattern__ = r'http://(?:www\.)?depositfiles.com/folders/\w+' __description__ = """Depositfiles.com folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'<div class="progressName"[^>]*>\s*<a href="([^"]+)" title="[^"]*" target="_blank">' diff --git a/pyload/plugins/crypter/Dereferer.py b/pyload/plugins/crypter/Dereferer.py index 90288fb59..78ad300bb 100644 --- a/pyload/plugins/crypter/Dereferer.py +++ b/pyload/plugins/crypter/Dereferer.py @@ -15,8 +15,7 @@ class Dereferer(Crypter): __pattern__ = r'https?://([^/]+)/.*?(?P<url>(ht|f)tps?(://|%3A%2F%2F).*)' __description__ = """Crypter for dereferers""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/DlProtectCom.py b/pyload/plugins/crypter/DlProtectCom.py index 2c9e282be..a53a46992 100644 --- a/pyload/plugins/crypter/DlProtectCom.py +++ b/pyload/plugins/crypter/DlProtectCom.py @@ -16,8 +16,8 @@ class DlProtectCom(SimpleCrypter): __pattern__ = r'http://(?:www\.)?dl-protect\.com/((en|fr)/)?(?P<ID>\w+)' __description__ = """Dl-protect.com decrypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + OFFLINE_PATTERN = r'>Unfortunately, the link you are looking for is not found' diff --git a/pyload/plugins/crypter/DontKnowMe.py b/pyload/plugins/crypter/DontKnowMe.py index 5d048994e..4abc03bcd 100644 --- a/pyload/plugins/crypter/DontKnowMe.py +++ b/pyload/plugins/crypter/DontKnowMe.py @@ -15,8 +15,8 @@ class DontKnowMe(Crypter): __pattern__ = r'http://(?:www\.)?dontknow.me/at/\?.+$' __description__ = """DontKnow.me decrypter plugin""" - __author_name__ = "selaux" - __author_mail__ = None + __authors__ = [("selaux", None)] + LINK_PATTERN = r'http://dontknow.me/at/\?(.+)$' diff --git a/pyload/plugins/crypter/DuckCryptInfo.py b/pyload/plugins/crypter/DuckCryptInfo.py index 7f25b9ae6..fc917929a 100644 --- a/pyload/plugins/crypter/DuckCryptInfo.py +++ b/pyload/plugins/crypter/DuckCryptInfo.py @@ -15,8 +15,8 @@ class DuckCryptInfo(Crypter): __pattern__ = r'http://(?:www\.)?duckcrypt.info/(folder|wait|link)/(\w+)/?(\w*)' __description__ = """DuckCrypt.info decrypter plugin""" - __author_name__ = "godofdream" - __author_mail__ = "soilfiction@gmail.com" + __authors__ = [("godofdream", "soilfiction@gmail.com")] + TIMER_PATTERN = r'<span id="timer">(.*)</span>' diff --git a/pyload/plugins/crypter/DuploadOrgFolder.py b/pyload/plugins/crypter/DuploadOrgFolder.py index ca76cff75..23f439f68 100644 --- a/pyload/plugins/crypter/DuploadOrgFolder.py +++ b/pyload/plugins/crypter/DuploadOrgFolder.py @@ -11,7 +11,7 @@ class DuploadOrgFolder(SimpleCrypter): __pattern__ = r'http://(?:www\.)?dupload\.org/folder/\d+/' __description__ = """Dupload.org folder decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<td style="[^"]+"><a href="(http://[^"]+)" target="_blank">[^<]+</a></td>' diff --git a/pyload/plugins/crypter/EasybytezComFolder.py b/pyload/plugins/crypter/EasybytezComFolder.py index c9575db96..26ac5a72b 100644 --- a/pyload/plugins/crypter/EasybytezComFolder.py +++ b/pyload/plugins/crypter/EasybytezComFolder.py @@ -6,18 +6,17 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class EasybytezComFolder(SimpleCrypter): __name__ = "EasybytezComFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?easybytez\.com/users/(?P<ID>\d+/\d+)' - __description__ = """Easybytez.com decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __description__ = """Easybytez.com folder decrypter plugin""" + __authors__ = [("stickell", "l.stickell@yahoo.it")] URL_REPLACEMENTS = [(__pattern__, r"http://www.easybytez.com/users/\g<ID>?per_page=10000")] LINK_PATTERN = r'<td><a href="(http://www\.easybytez\.com/\w+)" target="_blank">.+(?:</a>)?</td>' - TITLE_PATTERN = r'<Title>Files of \d+: (?P<title>.+) folder</Title>' + TITLE_PATTERN = r'<Title>Files of \d+: (.+) folder</Title>' LOGIN_ACCOUNT = True diff --git a/pyload/plugins/crypter/EmbeduploadCom.py b/pyload/plugins/crypter/EmbeduploadCom.py index 0200d4468..5d9369d9d 100644 --- a/pyload/plugins/crypter/EmbeduploadCom.py +++ b/pyload/plugins/crypter/EmbeduploadCom.py @@ -15,8 +15,8 @@ class EmbeduploadCom(Crypter): ("ignoredHoster", "str", "Ignored hoster list (bar-separated) ", "")] __description__ = """EmbedUpload.com decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'<div id="([^"]+)"[^>]*>\s*<a href="([^"]+)" target="_blank" (?:class="DownloadNow"|style="color:red")>' diff --git a/pyload/plugins/crypter/FilebeerInfoFolder.py b/pyload/plugins/crypter/FilebeerInfoFolder.py index ee577a865..0dbd8dc2e 100644 --- a/pyload/plugins/crypter/FilebeerInfoFolder.py +++ b/pyload/plugins/crypter/FilebeerInfoFolder.py @@ -11,5 +11,4 @@ class FilebeerInfoFolder(DeadCrypter): __pattern__ = r'http://(?:www\.)?filebeer\.info/(\d+~f).*' __description__ = """Filebeer.info folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/pyload/plugins/crypter/FilecloudIoFolder.py b/pyload/plugins/crypter/FilecloudIoFolder.py index 577dd43a3..feb2ccbc6 100644 --- a/pyload/plugins/crypter/FilecloudIoFolder.py +++ b/pyload/plugins/crypter/FilecloudIoFolder.py @@ -6,13 +6,13 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FilecloudIoFolder(SimpleCrypter): __name__ = "FilecloudIoFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+' __description__ = """Filecloud.io folder decrypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + LINK_PATTERN = r'href="(http://filecloud.io/\w+)" title' - TITLE_PATTERN = r'>(?P<title>.+?) - filecloud.io<' + TITLE_PATTERN = r'>(.+?) - filecloud.io<' diff --git a/pyload/plugins/crypter/FilefactoryComFolder.py b/pyload/plugins/crypter/FilefactoryComFolder.py index c624b4fc5..51b2c4533 100644 --- a/pyload/plugins/crypter/FilefactoryComFolder.py +++ b/pyload/plugins/crypter/FilefactoryComFolder.py @@ -6,17 +6,17 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FilefactoryComFolder(SimpleCrypter): __name__ = "FilefactoryComFolder" __type__ = "crypter" - __version__ = "0.2" + __version__ = "0.3" __pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+' __description__ = """Filefactory.com folder decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<td><a href="([^"]+)">' - TITLE_PATTERN = r'<h1>Files in <span>(?P<title>.+)</span></h1>' - PAGES_PATTERN = r'data-paginator-totalPages="(?P<pages>\d+)"' + TITLE_PATTERN = r'<h1>Files in <span>(.+)</span></h1>' + PAGES_PATTERN = r'data-paginator-totalPages="(\d+)"' COOKIES = [('.filefactory.com', 'locale', 'en_US.utf8')] diff --git a/pyload/plugins/crypter/FilerNetFolder.py b/pyload/plugins/crypter/FilerNetFolder.py index 4acb7e165..d1c93a5c2 100644 --- a/pyload/plugins/crypter/FilerNetFolder.py +++ b/pyload/plugins/crypter/FilerNetFolder.py @@ -6,16 +6,17 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FilerNetFolder(SimpleCrypter): __name__ = "FilerNetFolder" __type__ = "crypter" - __version__ = "0.3" + __version__ = "0.4" __pattern__ = r'https?://filer\.net/folder/\w{16}' __description__ = """Filer.net decrypter plugin""" - __author_name_ = ("nath_schwarz", "stickell") - __author_mail_ = ("nathan.notwhite@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("nath_schwarz", "nathan.notwhite@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'href="(/get/\w{16})">(?!<)' - TITLE_PATTERN = r'<h3>(?P<title>.+) - <small' + TITLE_PATTERN = r'<h3>(.+?) - <small' def getLinks(self): diff --git a/pyload/plugins/crypter/FileserveComFolder.py b/pyload/plugins/crypter/FileserveComFolder.py index 0a6232603..23aa3a14a 100644 --- a/pyload/plugins/crypter/FileserveComFolder.py +++ b/pyload/plugins/crypter/FileserveComFolder.py @@ -13,8 +13,8 @@ class FileserveComFolder(Crypter): __pattern__ = r'http://(?:www\.)?fileserve.com/list/\w+' __description__ = """FileServe.com folder decrypter plugin""" - __author_name__ = "fionnc" - __author_mail__ = "fionnc@gmail.com" + __authors__ = [("fionnc", "fionnc@gmail.com")] + FOLDER_PATTERN = r'<table class="file_list">(.*?)</table>' LINK_PATTERN = r'<a href="([^"]+)" class="sheet_icon wbold">' diff --git a/pyload/plugins/crypter/FilestubeCom.py b/pyload/plugins/crypter/FilestubeCom.py index fc80762d1..56714f677 100644 --- a/pyload/plugins/crypter/FilestubeCom.py +++ b/pyload/plugins/crypter/FilestubeCom.py @@ -6,13 +6,13 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FilestubeCom(SimpleCrypter): __name__ = "FilestubeCom" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?filestube\.(?:com|to)/\w+' __description__ = """Filestube.com decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<a class=\"file-link-main(?: noref)?\" [^>]* href=\"(http://[^\"]+)' - TITLE_PATTERN = r'<h1\s*> (?P<title>.+) download\s*</h1>' + TITLE_PATTERN = r'<h1\s*> (.+) download\s*</h1>' diff --git a/pyload/plugins/crypter/FiletramCom.py b/pyload/plugins/crypter/FiletramCom.py index 6620adc12..53c43b6d2 100644 --- a/pyload/plugins/crypter/FiletramCom.py +++ b/pyload/plugins/crypter/FiletramCom.py @@ -6,13 +6,14 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FiletramCom(SimpleCrypter): __name__ = "FiletramCom" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?filetram.com/[^/]+/.+' __description__ = """Filetram.com decrypter plugin""" - __author_name__ = ("igel", "stickell") - __author_mail__ = ("igelkun@myopera.com", "l.stickell@yahoo.it") + __authors__ = [("igel", "igelkun@myopera.com"), + ("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'\s+(http://.+)' - TITLE_PATTERN = r'<title>(?P<title>[^<]+) - Free Download[^<]*</title>' + TITLE_PATTERN = r'<title>(.+?) - Free Download' diff --git a/pyload/plugins/crypter/FiredriveComFolder.py b/pyload/plugins/crypter/FiredriveComFolder.py index 072a548a2..4fb572ec3 100644 --- a/pyload/plugins/crypter/FiredriveComFolder.py +++ b/pyload/plugins/crypter/FiredriveComFolder.py @@ -8,16 +8,16 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FiredriveComFolder(SimpleCrypter): __name__ = "FiredriveComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/share/.+' __description__ = """Firedrive.com folder decrypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + LINK_PATTERN = r'<div class="pf_item pf_(file|folder).+?public=\'(.+?)\'' - TITLE_PATTERN = r'>Shared Folder "(?P<title>.+)" | Firedrive<' + TITLE_PATTERN = r'>Shared Folder "(.+)" | Firedrive<' OFFLINE_PATTERN = r'class="sad_face_image"|>No such page here.<' TEMP_OFFLINE_PATTERN = r'>(File Temporarily Unavailable|Server Error. Try again later)' diff --git a/pyload/plugins/crypter/FourChanOrg.py b/pyload/plugins/crypter/FourChanOrg.py index 4762f5d1d..a6b50387f 100644 --- a/pyload/plugins/crypter/FourChanOrg.py +++ b/pyload/plugins/crypter/FourChanOrg.py @@ -15,8 +15,7 @@ class FourChanOrg(Crypter): __pattern__ = r'http://(?:www\.)?boards\.4chan.org/\w+/res/(\d+)' __description__ = """4chan.org folder decrypter plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/FreakhareComFolder.py b/pyload/plugins/crypter/FreakhareComFolder.py index fca1b26a1..6cd4e7a7b 100644 --- a/pyload/plugins/crypter/FreakhareComFolder.py +++ b/pyload/plugins/crypter/FreakhareComFolder.py @@ -8,17 +8,17 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class FreakhareComFolder(SimpleCrypter): __name__ = "FreakhareComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?freakshare\.com/folder/.+' __description__ = """Freakhare.com folder decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<a href="(http://freakshare.com/files/[^"]+)" target="_blank">' - TITLE_PATTERN = r'Folder:</b> (?P<title>.+)' - PAGES_PATTERN = r'Pages: +(?P<pages>\d+)' + TITLE_PATTERN = r'Folder:</b> (.+)' + PAGES_PATTERN = r'Pages: +(\d+)' def loadPage(self, page_n): diff --git a/pyload/plugins/crypter/FreetexthostCom.py b/pyload/plugins/crypter/FreetexthostCom.py index e56d638f0..d8dcc5fd8 100644 --- a/pyload/plugins/crypter/FreetexthostCom.py +++ b/pyload/plugins/crypter/FreetexthostCom.py @@ -13,8 +13,7 @@ class FreetexthostCom(SimpleCrypter): __pattern__ = r'http://(?:www\.)?freetexthost\.com/\w+' __description__ = """Freetexthost.com decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def getLinks(self): diff --git a/pyload/plugins/crypter/FshareVnFolder.py b/pyload/plugins/crypter/FshareVnFolder.py index 1706d97e0..a94071f30 100644 --- a/pyload/plugins/crypter/FshareVnFolder.py +++ b/pyload/plugins/crypter/FshareVnFolder.py @@ -11,7 +11,7 @@ class FshareVnFolder(SimpleCrypter): __pattern__ = r'http://(?:www\.)?fshare.vn/folder/.*' __description__ = """Fshare.vn folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'<li class="w_80pc"><a href="([^"]+)" target="_blank">' diff --git a/pyload/plugins/crypter/GooGl.py b/pyload/plugins/crypter/GooGl.py index 0e89c5bad..8c3c2c9d8 100644 --- a/pyload/plugins/crypter/GooGl.py +++ b/pyload/plugins/crypter/GooGl.py @@ -12,8 +12,8 @@ class GooGl(Crypter): __pattern__ = r'https?://(?:www\.)?goo\.gl/\w+' __description__ = """Goo.gl decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + API_URL = "https://www.googleapis.com/urlshortener/v1/url" diff --git a/pyload/plugins/crypter/HoerbuchIn.py b/pyload/plugins/crypter/HoerbuchIn.py index 572472f5a..4c2852567 100644 --- a/pyload/plugins/crypter/HoerbuchIn.py +++ b/pyload/plugins/crypter/HoerbuchIn.py @@ -15,8 +15,9 @@ class HoerbuchIn(Crypter): __pattern__ = r'http://(?:www\.)?hoerbuch\.in/(wp/horbucher/\d+/.+/|tp/out.php\?.+|protection/folder_\d+\.html)' __description__ = """Hoerbuch.in decrypter plugin""" - __author_name__ = ("spoob", "mkaay") - __author_mail__ = ("spoob@pyload.org", "mkaay@mkaay.de") + __authors__ = [("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de")] + article = re.compile("http://(?:www\.)?hoerbuch\.in/wp/horbucher/\d+/.+/") protection = re.compile("http://(?:www\.)?hoerbuch\.in/protection/folder_\d+.html") diff --git a/pyload/plugins/crypter/HotfileFolderCom.py b/pyload/plugins/crypter/HotfileFolderCom.py index 4f144cc52..8c9b5a0da 100644 --- a/pyload/plugins/crypter/HotfileFolderCom.py +++ b/pyload/plugins/crypter/HotfileFolderCom.py @@ -11,5 +11,4 @@ class HotfileFolderCom(DeadCrypter): __pattern__ = r'https?://(?:www\.)?hotfile\.com/list/\w+/\w+' __description__ = """Hotfile.com folder decrypter plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] diff --git a/pyload/plugins/crypter/ILoadTo.py b/pyload/plugins/crypter/ILoadTo.py index 16f813926..6f4f98fe4 100644 --- a/pyload/plugins/crypter/ILoadTo.py +++ b/pyload/plugins/crypter/ILoadTo.py @@ -11,5 +11,4 @@ class ILoadTo(DeadCrypter): __pattern__ = r'http://(?:www\.)?iload\.to/go/\d+-[\w\.-]+/' __description__ = """Iload.to decrypter plugin""" - __author_name__ = "hzpz" - __author_mail__ = None + __authors__ = [("hzpz", None)] diff --git a/pyload/plugins/crypter/ImgurComAlbum.py b/pyload/plugins/crypter/ImgurComAlbum.py index 5e8be3a5d..417a36837 100644 --- a/pyload/plugins/crypter/ImgurComAlbum.py +++ b/pyload/plugins/crypter/ImgurComAlbum.py @@ -7,15 +7,15 @@ from pyload.utils import uniqify class ImgurComAlbum(SimpleCrypter): __name__ = "ImgurComAlbum" __type__ = "crypter" - __version__ = "0.4" + __version__ = "0.5" __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}' __description__ = """Imgur.com decrypter plugin""" - __author_name_ = "nath_schwarz" - __author_mail_ = "nathan.notwhite@gmail.com" + __authors__ = [("nath_schwarz", "nathan.notwhite@gmail.com")] - TITLE_PATTERN = r'(?P<title>.+) - Imgur' + + TITLE_PATTERN = r'(.+?) - Imgur' LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)' diff --git a/pyload/plugins/crypter/LetitbitNetFolder.py b/pyload/plugins/crypter/LetitbitNetFolder.py index b5a48a949..b40e3ed8c 100644 --- a/pyload/plugins/crypter/LetitbitNetFolder.py +++ b/pyload/plugins/crypter/LetitbitNetFolder.py @@ -12,8 +12,9 @@ class LetitbitNetFolder(Crypter): __pattern__ = r'http://(?:www\.)?letitbit.net/folder/\w+' __description__ = """Letitbit.net folder decrypter plugin""" - __author_name__ = ("DHMH", "z00nx") - __author_mail__ = ("webmaster@pcProfil.de", "z00nx0@gmail.com") + __authors__ = [("DHMH", "webmaster@pcProfil.de"), + ("z00nx", "z00nx0@gmail.com")] + FOLDER_PATTERN = r'<table>(.*)</table>' LINK_PATTERN = r'<a href="([^"]+)" target="_blank">' diff --git a/pyload/plugins/crypter/LinkSaveIn.py b/pyload/plugins/crypter/LinkSaveIn.py index f5c28e28e..ad9468ae6 100644 --- a/pyload/plugins/crypter/LinkSaveIn.py +++ b/pyload/plugins/crypter/LinkSaveIn.py @@ -21,8 +21,7 @@ class LinkSaveIn(SimpleCrypter): __pattern__ = r'http://(?:www\.)?linksave.in/(?P<id>\w+)$' __description__ = """LinkSave.in decrypter plugin""" - __author_name__ = "fragonib" - __author_mail__ = "fragonib[AT]yahoo[DOT]es" + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es")] COOKIES = [(".linksave.in", "Linksave_Language", "english")] diff --git a/pyload/plugins/crypter/LinkdecrypterCom.py b/pyload/plugins/crypter/LinkdecrypterCom.py index d2c24b753..1573bd8c9 100644 --- a/pyload/plugins/crypter/LinkdecrypterCom.py +++ b/pyload/plugins/crypter/LinkdecrypterCom.py @@ -12,8 +12,9 @@ class LinkdecrypterCom(Crypter): __pattern__ = None __description__ = """Linkdecrypter.com""" - __author_name__ = ("zoidberg", "flowlee") - __author_mail__ = ("zoidberg@mujmail.cz", "") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("flowlee", None)] + TEXTAREA_PATTERN = r'<textarea name="links" wrap="off" readonly="1" class="caja_des">(.+)</textarea>' PASSWORD_PATTERN = r'<input type="text" name="password"' diff --git a/pyload/plugins/crypter/LixIn.py b/pyload/plugins/crypter/LixIn.py index 831f35c22..2f1331833 100644 --- a/pyload/plugins/crypter/LixIn.py +++ b/pyload/plugins/crypter/LixIn.py @@ -13,8 +13,8 @@ class LixIn(Crypter): __pattern__ = r'http://(?:www\.)?lix\.in/(?P<ID>.+)' __description__ = """Lix.in decrypter plugin""" - __author_name__ = "spoob" - __author_mail__ = "spoob@pyload.org" + __authors__ = [("spoob", "spoob@pyload.org")] + CAPTCHA_PATTERN = r'<img src="(?P<image>captcha_img.php\?.*?)"' SUBMIT_PATTERN = r"value='continue.*?'" diff --git a/pyload/plugins/crypter/LofCc.py b/pyload/plugins/crypter/LofCc.py index 6c91a55ec..24950cab4 100644 --- a/pyload/plugins/crypter/LofCc.py +++ b/pyload/plugins/crypter/LofCc.py @@ -11,5 +11,4 @@ class LofCc(DeadCrypter): __pattern__ = r'http://(?:www\.)?lof.cc/(.*)' __description__ = """Lof.cc decrypter plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] diff --git a/pyload/plugins/crypter/MBLinkInfo.py b/pyload/plugins/crypter/MBLinkInfo.py index 8516ff6e4..9e63bc05d 100644 --- a/pyload/plugins/crypter/MBLinkInfo.py +++ b/pyload/plugins/crypter/MBLinkInfo.py @@ -11,5 +11,5 @@ class MBLinkInfo(DeadCrypter): __pattern__ = r'http://(?:www\.)?mblink\.info/?\?id=(\d+)' __description__ = """MBLink.info decrypter plugin""" - __author_name__ = ("Gummibaer", "stickell") - __author_mail__ = ("Gummibaer@wiki-bierkiste.de", "l.stickell@yahoo.it") + __authors__ = [("Gummibaer", "Gummibaer@wiki-bierkiste.de"), + ("stickell", "l.stickell@yahoo.it")] diff --git a/pyload/plugins/crypter/MediafireComFolder.py b/pyload/plugins/crypter/MediafireComFolder.py index d8785a7cf..f5f6389ef 100644 --- a/pyload/plugins/crypter/MediafireComFolder.py +++ b/pyload/plugins/crypter/MediafireComFolder.py @@ -14,8 +14,8 @@ class MediafireComFolder(Crypter): __pattern__ = r'http://(?:www\.)?mediafire\.com/(folder/|\?sharekey=|\?\w{13}($|[/#]))' __description__ = """Mediafire.com folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FOLDER_KEY_PATTERN = r"var afI= '(\w+)';" FILE_URL_PATTERN = r'<meta property="og:url" content="http://www.mediafire.com/\?(\w+)"/>' diff --git a/pyload/plugins/crypter/Movie2kTo.py b/pyload/plugins/crypter/Movie2kTo.py index b6a554758..80ef4f871 100644 --- a/pyload/plugins/crypter/Movie2kTo.py +++ b/pyload/plugins/crypter/Movie2kTo.py @@ -11,5 +11,4 @@ class Movie2kTo(DeadCrypter): __pattern__ = r'http://(?:www\.)?movie2k\.to/(.*)\.html' __description__ = """Movie2k.to decrypter plugin""" - __author_name__ = "4Christopher" - __author_mail__ = "4Christopher@gmx.de" + __authors__ = [("4Christopher", "4Christopher@gmx.de")] diff --git a/pyload/plugins/crypter/MultiUpOrg.py b/pyload/plugins/crypter/MultiUpOrg.py index 96553a09a..86dbb339f 100644 --- a/pyload/plugins/crypter/MultiUpOrg.py +++ b/pyload/plugins/crypter/MultiUpOrg.py @@ -9,15 +9,15 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class MultiUpOrg(SimpleCrypter): __name__ = "MultiUpOrg" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?multiup\.org/(en|fr)/(?P<TYPE>project|download|miror)/\w+(/\w+)?' __description__ = """MultiUp.org crypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - TITLE_PATTERN = r'<title>.*(Project|Projet|ownload|élécharger) (?P<title>.+?) (\(|- )' + + TITLE_PATTERN = r'<title>.*(?:Project|Projet|ownload|élécharger) (.+?) (?:\(|- )' def getLinks(self): diff --git a/pyload/plugins/crypter/MultiloadCz.py b/pyload/plugins/crypter/MultiloadCz.py index 37d0a1663..7dd9dabc6 100644 --- a/pyload/plugins/crypter/MultiloadCz.py +++ b/pyload/plugins/crypter/MultiloadCz.py @@ -14,8 +14,8 @@ class MultiloadCz(Crypter): ("ignoredHoster", "str", "Ignored hoster list (bar-separated) ", "")] __description__ = """Multiload.cz decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FOLDER_PATTERN = r'<form action="" method="get"><textarea[^>]*>([^>]*)</textarea></form>' LINK_PATTERN = r'<p class="manager-server"><strong>([^<]+)</strong></p><p class="manager-linky"><a href="([^"]+)">' diff --git a/pyload/plugins/crypter/MultiuploadCom.py b/pyload/plugins/crypter/MultiuploadCom.py index 148d76b8f..ee2bb277a 100644 --- a/pyload/plugins/crypter/MultiuploadCom.py +++ b/pyload/plugins/crypter/MultiuploadCom.py @@ -11,5 +11,4 @@ class MultiuploadCom(DeadCrypter): __pattern__ = r'http://(?:www\.)?multiupload\.(com|nl)/\w+' __description__ = """MultiUpload.com decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/pyload/plugins/crypter/NCryptIn.py b/pyload/plugins/crypter/NCryptIn.py index 3289bddad..287cbb87f 100644 --- a/pyload/plugins/crypter/NCryptIn.py +++ b/pyload/plugins/crypter/NCryptIn.py @@ -18,8 +18,9 @@ class NCryptIn(Crypter): __pattern__ = r'http://(?:www\.)?ncrypt.in/(?P<type>folder|link|frame)-([^/\?]+)' __description__ = """NCrypt.in decrypter plugin""" - __author_name__ = ("fragonib", "stickell") - __author_mail__ = ("fragonib[AT]yahoo[DOT]es", "l.stickell@yahoo.it") + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es"), + ("stickell", "l.stickell@yahoo.it")] + JK_KEY = "jk" CRYPTED_KEY = "crypted" diff --git a/pyload/plugins/crypter/NetfolderIn.py b/pyload/plugins/crypter/NetfolderIn.py index 858755e5c..8bc41ddeb 100644 --- a/pyload/plugins/crypter/NetfolderIn.py +++ b/pyload/plugins/crypter/NetfolderIn.py @@ -8,15 +8,16 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class NetfolderIn(SimpleCrypter): __name__ = "NetfolderIn" __type__ = "crypter" - __version__ = "0.6" + __version__ = "0.7" __pattern__ = r'http://(?:www\.)?netfolder.in/((?P<id1>\w+)/\w+|folder.php\?folder_id=(?P<id2>\w+))' __description__ = """NetFolder.in decrypter plugin""" - __author_name__ = ("RaNaN", "fragonib") - __author_mail__ = ("RaNaN@pyload.org", "fragonib[AT]yahoo[DOT]es") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("fragonib", "fragonib[AT]yahoo[DOT]es")] - TITLE_PATTERN = r'<div class="Text">Inhalt des Ordners <span(.*)>(?P<title>.+)</span></div>' + + TITLE_PATTERN = r'<div class="Text">Inhalt des Ordners <span.*>(.+)</span></div>' def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/NosvideoCom.py b/pyload/plugins/crypter/NosvideoCom.py index e1c9e2c55..b22546636 100644 --- a/pyload/plugins/crypter/NosvideoCom.py +++ b/pyload/plugins/crypter/NosvideoCom.py @@ -6,13 +6,13 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class NosvideoCom(SimpleCrypter): __name__ = "NosvideoCom" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?nosvideo\.com/\?v=\w+' __description__ = """Nosvideo.com decrypter plugin""" - __author_name__ = "igel" - __author_mail__ = "igelkun@myopera.com" + __authors__ = [("igel", "igelkun@myopera.com")] + LINK_PATTERN = r'href="(http://(?:w{3}\.)?nosupload.com/\?d=\w+)"' - TITLE_PATTERN = r'<[tT]itle>Watch (?P<title>.+)</[tT]itle>' + TITLE_PATTERN = r'<[tT]itle>Watch (.+?)<' diff --git a/pyload/plugins/crypter/OneKhDe.py b/pyload/plugins/crypter/OneKhDe.py index b39504628..84560995e 100644 --- a/pyload/plugins/crypter/OneKhDe.py +++ b/pyload/plugins/crypter/OneKhDe.py @@ -14,8 +14,7 @@ class OneKhDe(Crypter): __pattern__ = r'http://(?:www\.)?1kh.de/f/' __description__ = """1kh.de decrypter plugin""" - __author_name__ = "spoob" - __author_mail__ = "spoob@pyload.org" + __authors__ = [("spoob", "spoob@pyload.org")] def __init__(self, parent): diff --git a/pyload/plugins/crypter/OronComFolder.py b/pyload/plugins/crypter/OronComFolder.py index 9b5fb3959..8991642b6 100644 --- a/pyload/plugins/crypter/OronComFolder.py +++ b/pyload/plugins/crypter/OronComFolder.py @@ -11,5 +11,4 @@ class OronComFolder(DeadCrypter): __pattern__ = r'http://(?:www\.)?oron.com/folder/\w+' __description__ = """Oron.com folder decrypter plugin""" - __author_name__ = "DHMH" - __author_mail__ = "webmaster@pcProfil.de" + __authors__ = [("DHMH", "webmaster@pcProfil.de")] diff --git a/pyload/plugins/crypter/PastebinCom.py b/pyload/plugins/crypter/PastebinCom.py index 8e394ac3a..bb5fd2a42 100644 --- a/pyload/plugins/crypter/PastebinCom.py +++ b/pyload/plugins/crypter/PastebinCom.py @@ -6,13 +6,13 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class PastebinCom(SimpleCrypter): __name__ = "PastebinCom" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?pastebin\.com/\w+' __description__ = """Pastebin.com decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<div class="de\d+">(https?://[^ <]+)(?:[^<]*)</div>' - TITLE_PATTERN = r'<div class="paste_box_line1" title="(?P<title>[^"]+)">' + TITLE_PATTERN = r'<div class="paste_box_line1" title="([^"]+)">' diff --git a/pyload/plugins/crypter/QuickshareCzFolder.py b/pyload/plugins/crypter/QuickshareCzFolder.py index 1e4adec2c..c6f0280a2 100644 --- a/pyload/plugins/crypter/QuickshareCzFolder.py +++ b/pyload/plugins/crypter/QuickshareCzFolder.py @@ -12,8 +12,8 @@ class QuickshareCzFolder(Crypter): __pattern__ = r'http://(?:www\.)?quickshare.cz/slozka-\d+.*' __description__ = """Quickshare.cz folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FOLDER_PATTERN = r'<textarea[^>]*>(.*?)</textarea>' LINK_PATTERN = r'(http://www.quickshare.cz/\S+)' diff --git a/pyload/plugins/crypter/RSLayerCom.py b/pyload/plugins/crypter/RSLayerCom.py index ded550a50..d93593459 100644 --- a/pyload/plugins/crypter/RSLayerCom.py +++ b/pyload/plugins/crypter/RSLayerCom.py @@ -11,5 +11,4 @@ class RSLayerCom(DeadCrypter): __pattern__ = r'http://(?:www\.)?rs-layer.com/directory-' __description__ = """RS-Layer.com decrypter plugin""" - __author_name__ = "hzpz" - __author_mail__ = None + __authors__ = [("hzpz", None)] diff --git a/pyload/plugins/crypter/RelinkUs.py b/pyload/plugins/crypter/RelinkUs.py index 2c48f2078..30d9eba48 100644 --- a/pyload/plugins/crypter/RelinkUs.py +++ b/pyload/plugins/crypter/RelinkUs.py @@ -17,8 +17,8 @@ class RelinkUs(Crypter): __pattern__ = r'http://(?:www\.)?relink.us/(f/|((view|go).php\?id=))(?P<id>.+)' __description__ = """Relink.us decrypter plugin""" - __author_name__ = "fragonib" - __author_mail__ = "fragonib[AT]yahoo[DOT]es" + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es")] + # Constants PREFERRED_LINK_SOURCES = ["cnl2", "dlc", "web"] diff --git a/pyload/plugins/crypter/SafelinkingNet.py b/pyload/plugins/crypter/SafelinkingNet.py index 4129efca3..12ba3c853 100644 --- a/pyload/plugins/crypter/SafelinkingNet.py +++ b/pyload/plugins/crypter/SafelinkingNet.py @@ -19,8 +19,8 @@ class SafelinkingNet(Crypter): __pattern__ = r'https?://(?:www\.)?safelinking.net/([pd])/\w+' __description__ = """Safelinking.net decrypter plugin""" - __author_name__ = "quareevo" - __author_mail__ = "quareevo@arcor.de" + __authors__ = [("quareevo", "quareevo@arcor.de")] + SOLVEMEDIA_PATTERN = "solvemediaApiKey = '([\w\.\-_]+)';" diff --git a/pyload/plugins/crypter/SecuredIn.py b/pyload/plugins/crypter/SecuredIn.py index fc2667586..4416c2e71 100644 --- a/pyload/plugins/crypter/SecuredIn.py +++ b/pyload/plugins/crypter/SecuredIn.py @@ -11,5 +11,4 @@ class SecuredIn(DeadCrypter): __pattern__ = r'http://(?:www\.)?secured\.in/download-[\d]+-[\w]{8}\.html' __description__ = """Secured.in decrypter plugin""" - __author_name__ = "mkaay" - __author_mail__ = "mkaay@mkaay.de" + __authors__ = [("mkaay", "mkaay@mkaay.de")] diff --git a/pyload/plugins/crypter/ShareLinksBiz.py b/pyload/plugins/crypter/ShareLinksBiz.py index 75c3db302..796643e8d 100644 --- a/pyload/plugins/crypter/ShareLinksBiz.py +++ b/pyload/plugins/crypter/ShareLinksBiz.py @@ -16,8 +16,7 @@ class ShareLinksBiz(Crypter): __pattern__ = r'http://(?:www\.)?(share-links|s2l)\.biz/(?P<ID>_?\w+)' __description__ = """Share-Links.biz decrypter plugin""" - __author_name__ = "fragonib" - __author_mail__ = "fragonib[AT]yahoo[DOT]es" + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es")] def setup(self): diff --git a/pyload/plugins/crypter/ShareRapidComFolder.py b/pyload/plugins/crypter/ShareRapidComFolder.py index c8e95be1c..a6f9eb334 100644 --- a/pyload/plugins/crypter/ShareRapidComFolder.py +++ b/pyload/plugins/crypter/ShareRapidComFolder.py @@ -11,7 +11,7 @@ class ShareRapidComFolder(SimpleCrypter): __pattern__ = r'http://(?:www\.)?((share(-?rapid\.(biz|com|cz|info|eu|net|org|pl|sk)|-(central|credit|free|net)\.cz|-ms\.net)|(s-?rapid|rapids)\.(cz|sk))|(e-stahuj|mediatack|premium-rapidshare|rapidshare-premium|qiuck)\.cz|kadzet\.com|stahuj-zdarma\.eu|strelci\.net|universal-share\.com)/(slozka/.+)' __description__ = """Share-Rapid.com folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'<td class="soubor"[^>]*><a href="([^"]+)">' diff --git a/pyload/plugins/crypter/SpeedLoadOrgFolder.py b/pyload/plugins/crypter/SpeedLoadOrgFolder.py index fff119a93..39a237953 100644 --- a/pyload/plugins/crypter/SpeedLoadOrgFolder.py +++ b/pyload/plugins/crypter/SpeedLoadOrgFolder.py @@ -11,5 +11,4 @@ class SpeedLoadOrgFolder(DeadCrypter): __pattern__ = r'http://(?:www\.)?speedload\.org/(\d+~f$|folder/\d+/)' __description__ = """Speedload decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] diff --git a/pyload/plugins/crypter/StealthTo.py b/pyload/plugins/crypter/StealthTo.py index 24489a1b3..ce89a6f35 100644 --- a/pyload/plugins/crypter/StealthTo.py +++ b/pyload/plugins/crypter/StealthTo.py @@ -11,5 +11,4 @@ class StealthTo(DeadCrypter): __pattern__ = r'http://(?:www\.)?stealth\.to/folder/.+' __description__ = """Stealth.to decrypter plugin""" - __author_name__ = "spoob" - __author_mail__ = "spoob@pyload.org" + __authors__ = [("spoob", "spoob@pyload.org")] diff --git a/pyload/plugins/crypter/TnyCz.py b/pyload/plugins/crypter/TnyCz.py index 879941ba4..dc065b8ea 100644 --- a/pyload/plugins/crypter/TnyCz.py +++ b/pyload/plugins/crypter/TnyCz.py @@ -8,15 +8,15 @@ import re class TnyCz(SimpleCrypter): __name__ = "TnyCz" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?tny\.cz/\w+' __description__ = """Tny.cz decrypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - TITLE_PATTERN = r'<title>(?P<title>.+) - .+</title>' + + TITLE_PATTERN = r'<title>(.+) - .+</title>' def getLinks(self): diff --git a/pyload/plugins/crypter/TrailerzoneInfo.py b/pyload/plugins/crypter/TrailerzoneInfo.py index 7be3beef0..8cb6a01a2 100644 --- a/pyload/plugins/crypter/TrailerzoneInfo.py +++ b/pyload/plugins/crypter/TrailerzoneInfo.py @@ -11,5 +11,4 @@ class TrailerzoneInfo(DeadCrypter): __pattern__ = r'http://(?:www\.)?trailerzone.info/.*?' __description__ = """TrailerZone.info decrypter plugin""" - __author_name__ = "godofdream" - __author_mail__ = "soilfiction@gmail.com" + __authors__ = [("godofdream", "soilfiction@gmail.com")] diff --git a/pyload/plugins/crypter/TurbobitNetFolder.py b/pyload/plugins/crypter/TurbobitNetFolder.py index c7786b7be..b5b611ad6 100644 --- a/pyload/plugins/crypter/TurbobitNetFolder.py +++ b/pyload/plugins/crypter/TurbobitNetFolder.py @@ -9,15 +9,16 @@ from pyload.utils import json_loads class TurbobitNetFolder(SimpleCrypter): __name__ = "TurbobitNetFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?turbobit\.net/download/folder/(?P<ID>\w+)' __description__ = """Turbobit.net folder decrypter plugin""" - __author_name__ = ("stickell", "Walter Purcaro") - __author_mail__ = ("l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] - TITLE_PATTERN = r"src='/js/lib/grid/icon/folder.png'> <span>(?P<title>.+?)</span>" + + TITLE_PATTERN = r"src='/js/lib/grid/icon/folder.png'> <span>(.+?)</span>" def _getLinks(self, id, page=1): diff --git a/pyload/plugins/crypter/TusfilesNetFolder.py b/pyload/plugins/crypter/TusfilesNetFolder.py index f4f1c7723..245cb20bf 100644 --- a/pyload/plugins/crypter/TusfilesNetFolder.py +++ b/pyload/plugins/crypter/TusfilesNetFolder.py @@ -10,17 +10,18 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class TusfilesNetFolder(SimpleCrypter): __name__ = "TusfilesNetFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?tusfiles\.net/go/(?P<ID>\w+)/?' __description__ = """Tusfiles.net folder decrypter plugin""" - __author_name__ = ("Walter Purcaro", "stickell") - __author_mail__ = ("vuolter@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("Walter Purcaro", "vuolter@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<TD align=left><a href="(.*?)">' - TITLE_PATTERN = r'<Title>.*?\: (?P<title>.+) folder</Title>' - PAGES_PATTERN = r'>\((?P<pages>\d+) \w+\)<' + TITLE_PATTERN = r'<Title>.*?\: (.+) folder</Title>' + PAGES_PATTERN = r'>\((\d+) \w+\)<' URL_REPLACEMENTS = [(__pattern__, r'https://www.tusfiles.net/go/\g<ID>/')] diff --git a/pyload/plugins/crypter/UlozToFolder.py b/pyload/plugins/crypter/UlozToFolder.py index 5d302f58f..1d25fff6f 100644 --- a/pyload/plugins/crypter/UlozToFolder.py +++ b/pyload/plugins/crypter/UlozToFolder.py @@ -12,8 +12,8 @@ class UlozToFolder(Crypter): __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj.cz|zachowajto.pl)/(m|soubory)/.*' __description__ = """Uloz.to folder decrypter plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FOLDER_PATTERN = r'<ul class="profile_files">(.*?)</ul>' LINK_PATTERN = r'<br /><a href="/([^"]+)">[^<]+</a>' diff --git a/pyload/plugins/crypter/UploadableChFolder.py b/pyload/plugins/crypter/UploadableChFolder.py index acc56580c..a3b77eaaa 100644 --- a/pyload/plugins/crypter/UploadableChFolder.py +++ b/pyload/plugins/crypter/UploadableChFolder.py @@ -6,16 +6,16 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class UploadableChFolder(SimpleCrypter): __name__ = "UploadableChFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+' __description__ = """Uploadable.ch folder decrypter plugin""" - __author_name__ = ("guidobelix", "Walter Purcaro") - __author_mail__ = ("guidobelix@hotmail.it", "vuolter@gmail.com") + __authors__ = [("guidobelix", "guidobelix@hotmail.it"), + ("Walter Purcaro", "vuolter@gmail.com")] LINK_PATTERN = r'"(.+?)" class="icon_zipfile">' - TITLE_PATTERN = r'<div class="folder"><span> </span>(?P<title>.+?)</div>' + TITLE_PATTERN = r'<div class="folder"><span> </span>(.+?)</div>' OFFLINE_PATTERN = r'We are sorry... The URL you entered cannot be found on the server.' TEMP_OFFLINE_PATTERN = r'<div class="icon_err">' diff --git a/pyload/plugins/crypter/UploadedToFolder.py b/pyload/plugins/crypter/UploadedToFolder.py index 5ba34d8b5..223c419d7 100644 --- a/pyload/plugins/crypter/UploadedToFolder.py +++ b/pyload/plugins/crypter/UploadedToFolder.py @@ -8,16 +8,16 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter class UploadedToFolder(SimpleCrypter): __name__ = "UploadedToFolder" __type__ = "crypter" - __version__ = "0.3" + __version__ = "0.4" __pattern__ = r'http://(?:www\.)?(uploaded|ul)\.(to|net)/(f|folder|list)/(?P<id>\w+)' __description__ = """UploadedTo decrypter plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + PLAIN_PATTERN = r'<small class="date"><a href="(?P<plain>[\w/]+)" onclick=' - TITLE_PATTERN = r'<title>(?P<title>[^<]+)</title>' + TITLE_PATTERN = r'<title>(.+?)<' def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/WiiReloadedOrg.py b/pyload/plugins/crypter/WiiReloadedOrg.py index 7dfe574ab..0e3aef6d6 100644 --- a/pyload/plugins/crypter/WiiReloadedOrg.py +++ b/pyload/plugins/crypter/WiiReloadedOrg.py @@ -11,5 +11,4 @@ class WiiReloadedOrg(DeadCrypter): __pattern__ = r'http://(?:www\.)?wii-reloaded\.org/protect/get\.php\?i=.+' __description__ = """Wii-Reloaded.org decrypter plugin""" - __author_name__ = "hzpz" - __author_mail__ = None + __authors__ = [("hzpz", None)] diff --git a/pyload/plugins/crypter/XupPl.py b/pyload/plugins/crypter/XupPl.py index 9a5f99e5a..798572285 100644 --- a/pyload/plugins/crypter/XupPl.py +++ b/pyload/plugins/crypter/XupPl.py @@ -11,8 +11,7 @@ class XupPl(Crypter): __pattern__ = r'https?://(?:[^/]*\.)?xup\.pl/.*' __description__ = """Xup.pl decrypter plugin""" - __author_name__ = "z00nx" - __author_mail__ = "z00nx0@gmail.com" + __authors__ = [("z00nx", "z00nx0@gmail.com")] def decrypt(self, pyfile): diff --git a/pyload/plugins/crypter/YoutubeBatch.py b/pyload/plugins/crypter/YoutubeBatch.py index 5ed0a7abf..b48e792c0 100644 --- a/pyload/plugins/crypter/YoutubeBatch.py +++ b/pyload/plugins/crypter/YoutubeBatch.py @@ -22,8 +22,7 @@ class YoutubeBatch(Crypter): ("uploads", "bool", "Grab channel unplaylisted videos", True)] __description__ = """Youtube.com channel & playlist decrypter plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] def api_response(self, ref, req): diff --git a/pyload/plugins/hook/AlldebridCom.py b/pyload/plugins/hook/AlldebridCom.py index 8eade2941..dadf322b4 100644 --- a/pyload/plugins/hook/AlldebridCom.py +++ b/pyload/plugins/hook/AlldebridCom.py @@ -17,8 +17,7 @@ class AlldebridCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Alldebrid.com hook plugin""" - __author_name__ = "Andy Voigt" - __author_mail__ = "spamsales@online.de" + __authors__ = [("Andy Voigt", "spamsales@online.de")] def getHoster(self): diff --git a/pyload/plugins/hook/BypassCaptcha.py b/pyload/plugins/hook/BypassCaptcha.py index fdd1e567c..02b72c6d0 100644 --- a/pyload/plugins/hook/BypassCaptcha.py +++ b/pyload/plugins/hook/BypassCaptcha.py @@ -33,8 +33,10 @@ class BypassCaptcha(Hook): ("passkey", "password", "Passkey", "")] __description__ = """Send captchas to BypassCaptcha.com""" - __author_name__ = ("RaNaN", "Godofdream", "zoidberg") - __author_mail__ = ("RaNaN@pyload.org", "soilfcition@gmail.com", "zoidberg@mujmail.cz") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("Godofdream", "soilfcition@gmail.com"), + ("zoidberg", "zoidberg@mujmail.cz")] + PYLOAD_KEY = "4f771155b640970d5607f919a615bdefc67e7d32" diff --git a/pyload/plugins/hook/Captcha9kw.py b/pyload/plugins/hook/Captcha9kw.py index 45890815c..c37bfc61f 100644 --- a/pyload/plugins/hook/Captcha9kw.py +++ b/pyload/plugins/hook/Captcha9kw.py @@ -30,8 +30,8 @@ class Captcha9kw(Hook): ("passkey", "password", "API key", "")] __description__ = """Send captchas to 9kw.eu""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] + API_URL = "://www.9kw.eu/index.cgi" diff --git a/pyload/plugins/hook/CaptchaBrotherhood.py b/pyload/plugins/hook/CaptchaBrotherhood.py index 8f6f8d68b..79216923e 100644 --- a/pyload/plugins/hook/CaptchaBrotherhood.py +++ b/pyload/plugins/hook/CaptchaBrotherhood.py @@ -5,7 +5,11 @@ from __future__ import with_statement import StringIO import pycurl -from PIL import Image +try: + from PIL import Image +except ImportError: + import Image + from thread import start_new_thread from time import sleep from urllib import urlencode @@ -40,8 +44,9 @@ class CaptchaBrotherhood(Hook): ("passkey", "password", "Password", "")] __description__ = """Send captchas to CaptchaBrotherhood.com""" - __author_name__ = ("RaNaN", "zoidberg") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] + API_URL = "http://www.captchabrotherhood.com/" diff --git a/pyload/plugins/hook/DeathByCaptcha.py b/pyload/plugins/hook/DeathByCaptcha.py index 6e7a585ad..293326d86 100644 --- a/pyload/plugins/hook/DeathByCaptcha.py +++ b/pyload/plugins/hook/DeathByCaptcha.py @@ -55,8 +55,9 @@ class DeathByCaptcha(Hook): ("force", "bool", "Force DBC even if client is connected", False)] __description__ = """Send captchas to DeathByCaptcha.com""" - __author_name__ = ("RaNaN", "zoidberg") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] + API_URL = "http://api.dbcapi.me/api/" diff --git a/pyload/plugins/hook/DebridItaliaCom.py b/pyload/plugins/hook/DebridItaliaCom.py index 4272b758f..4a12f052a 100644 --- a/pyload/plugins/hook/DebridItaliaCom.py +++ b/pyload/plugins/hook/DebridItaliaCom.py @@ -15,8 +15,7 @@ class DebridItaliaCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Debriditalia.com hook plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def getHoster(self): diff --git a/pyload/plugins/hook/EasybytezCom.py b/pyload/plugins/hook/EasybytezCom.py index 9d1cdc0db..c920f4069 100644 --- a/pyload/plugins/hook/EasybytezCom.py +++ b/pyload/plugins/hook/EasybytezCom.py @@ -15,8 +15,7 @@ class EasybytezCom(MultiHoster): ("hosterList", "str", "Hoster list (comma separated)", "")] __description__ = """EasyBytez.com hook plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def getHoster(self): diff --git a/pyload/plugins/hook/ExpertDecoders.py b/pyload/plugins/hook/ExpertDecoders.py index 3f0f64f1e..e843d8773 100644 --- a/pyload/plugins/hook/ExpertDecoders.py +++ b/pyload/plugins/hook/ExpertDecoders.py @@ -22,8 +22,9 @@ class ExpertDecoders(Hook): ("passkey", "password", "Access key", "")] __description__ = """Send captchas to expertdecoders.com""" - __author_name__ = ("RaNaN", "zoidberg") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] + API_URL = "http://www.fasttypers.org/imagepost.ashx" @@ -55,7 +56,7 @@ class ExpertDecoders(Hook): req.c.setopt(LOW_SPEED_TIME, 80) try: - result = req.load(self.API_URL, post={"action": "upload", "key": self.getConfig("passkey"), + result = req.load(self.API_URL, post={"action": "upload", "key": self.getConfig("passkey"), "file": data, "gen_task_id": ticket}) finally: req.close() diff --git a/pyload/plugins/hook/FastixRu.py b/pyload/plugins/hook/FastixRu.py index 9e2abd92a..8247a592c 100644 --- a/pyload/plugins/hook/FastixRu.py +++ b/pyload/plugins/hook/FastixRu.py @@ -16,8 +16,7 @@ class FastixRu(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Fastix.ru hook plugin""" - __author_name__ = "Massimo Rosamilia" - __author_mail__ = "max@spiritix.eu" + __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] def getHoster(self): diff --git a/pyload/plugins/hook/FreeWayMe.py b/pyload/plugins/hook/FreeWayMe.py index 635bc3415..2db2a1a4d 100644 --- a/pyload/plugins/hook/FreeWayMe.py +++ b/pyload/plugins/hook/FreeWayMe.py @@ -16,8 +16,7 @@ class FreeWayMe(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """FreeWay.me hook plugin""" - __author_name__ = "Nicolas Giese" - __author_mail__ = "james@free-way.me" + __authors__ = [("Nicolas Giese", "james@free-way.me")] def getHoster(self): diff --git a/pyload/plugins/hook/ImageTyperz.py b/pyload/plugins/hook/ImageTyperz.py index 7317f234d..b26eaceea 100644 --- a/pyload/plugins/hook/ImageTyperz.py +++ b/pyload/plugins/hook/ImageTyperz.py @@ -38,8 +38,9 @@ class ImageTyperz(Hook): ("force", "bool", "Force IT even if client is connected", False)] __description__ = """Send captchas to ImageTyperz.com""" - __author_name__ = ("RaNaN", "zoidberg") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] + SUBMIT_URL = "http://captchatypers.com/Forms/UploadFileAndGetTextNEW.ashx" RESPOND_URL = "http://captchatypers.com/Forms/SetBadImage.ashx" diff --git a/pyload/plugins/hook/LinkdecrypterCom.py b/pyload/plugins/hook/LinkdecrypterCom.py index 418ec4ac4..ea1e54b30 100644 --- a/pyload/plugins/hook/LinkdecrypterCom.py +++ b/pyload/plugins/hook/LinkdecrypterCom.py @@ -15,8 +15,7 @@ class LinkdecrypterCom(Hook): __config__ = [("activated", "bool", "Activated", False)] __description__ = """Linkdecrypter.com hook plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def coreReady(self): diff --git a/pyload/plugins/hook/LinksnappyCom.py b/pyload/plugins/hook/LinksnappyCom.py index 9086e3c2a..0cf913f60 100644 --- a/pyload/plugins/hook/LinksnappyCom.py +++ b/pyload/plugins/hook/LinksnappyCom.py @@ -17,8 +17,7 @@ class LinksnappyCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Linksnappy.com hook plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def getHoster(self): diff --git a/pyload/plugins/hook/MegaDebridEu.py b/pyload/plugins/hook/MegaDebridEu.py index 0345e47fa..bf6997117 100644 --- a/pyload/plugins/hook/MegaDebridEu.py +++ b/pyload/plugins/hook/MegaDebridEu.py @@ -14,8 +14,7 @@ class MegaDebridEu(MultiHoster): ("unloadFailing", "bool", "Revert to standard download if download fails", False)] __description__ = """mega-debrid.eu hook plugin""" - __author_name__ = "D.Ducatel" - __author_mail__ = "dducatel@je-geek.fr" + __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")] def getHoster(self): diff --git a/pyload/plugins/hook/MultishareCz.py b/pyload/plugins/hook/MultishareCz.py index 9e1bd50a4..d8396b44f 100644 --- a/pyload/plugins/hook/MultishareCz.py +++ b/pyload/plugins/hook/MultishareCz.py @@ -16,8 +16,8 @@ class MultishareCz(MultiHoster): ("hosterList", "str", "Hoster list (comma separated)", "uloz.to")] __description__ = """MultiShare.cz hook plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + HOSTER_PATTERN = r'<img class="logo-shareserveru"[^>]*?alt="([^"]+)"></td>\s*<td class="stav">[^>]*?alt="OK"' diff --git a/pyload/plugins/hook/MyfastfileCom.py b/pyload/plugins/hook/MyfastfileCom.py index 216dcaf5d..e476c10b5 100644 --- a/pyload/plugins/hook/MyfastfileCom.py +++ b/pyload/plugins/hook/MyfastfileCom.py @@ -17,8 +17,8 @@ class MyfastfileCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Myfastfile.com hook plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + def getHoster(self): diff --git a/pyload/plugins/hook/OverLoadMe.py b/pyload/plugins/hook/OverLoadMe.py index fae4209f8..347509a8b 100644 --- a/pyload/plugins/hook/OverLoadMe.py +++ b/pyload/plugins/hook/OverLoadMe.py @@ -17,8 +17,7 @@ class OverLoadMe(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 12)] __description__ = """Over-Load.me hook plugin""" - __author_name__ = "marley" - __author_mail__ = "marley@over-load.me" + __authors__ = [("marley", "marley@over-load.me")] def getHoster(self): diff --git a/pyload/plugins/hook/PremiumTo.py b/pyload/plugins/hook/PremiumTo.py index b95b15b53..eb5f16a83 100644 --- a/pyload/plugins/hook/PremiumTo.py +++ b/pyload/plugins/hook/PremiumTo.py @@ -14,8 +14,10 @@ class PremiumTo(MultiHoster): ("hosterList", "str", "Hoster list (comma separated)", "")] __description__ = """Premium.to hook plugin""" - __author_name__ = ("RaNaN", "zoidberg", "stickell") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + def getHoster(self): diff --git a/pyload/plugins/hook/PremiumizeMe.py b/pyload/plugins/hook/PremiumizeMe.py index b6d89adb6..9d18f45fc 100644 --- a/pyload/plugins/hook/PremiumizeMe.py +++ b/pyload/plugins/hook/PremiumizeMe.py @@ -17,8 +17,7 @@ class PremiumizeMe(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Premiumize.me hook plugin""" - __author_name__ = "Florian Franzen" - __author_mail__ = "FlorianFranzen@gmail.com" + __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] def getHoster(self): diff --git a/pyload/plugins/hook/RPNetBiz.py b/pyload/plugins/hook/RPNetBiz.py index b46e326e6..9e04f1dfd 100644 --- a/pyload/plugins/hook/RPNetBiz.py +++ b/pyload/plugins/hook/RPNetBiz.py @@ -17,8 +17,7 @@ class RPNetBiz(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """RPNet.biz hook plugin""" - __author_name__ = "Dman" - __author_mail__ = "dmanugm@gmail.com" + __authors__ = [("Dman", "dmanugm@gmail.com")] def getHoster(self): diff --git a/pyload/plugins/hook/RealdebridCom.py b/pyload/plugins/hook/RealdebridCom.py index c1c519ace..8329da7e7 100644 --- a/pyload/plugins/hook/RealdebridCom.py +++ b/pyload/plugins/hook/RealdebridCom.py @@ -17,8 +17,7 @@ class RealdebridCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Real-Debrid.com hook plugin""" - __author_name__ = "Devirex Hazzard" - __author_mail__ = "naibaf_11@yahoo.de" + __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] def getHoster(self): diff --git a/pyload/plugins/hook/RehostTo.py b/pyload/plugins/hook/RehostTo.py index 059f36284..f38074a7b 100644 --- a/pyload/plugins/hook/RehostTo.py +++ b/pyload/plugins/hook/RehostTo.py @@ -16,8 +16,7 @@ class RehostTo(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", 24)] __description__ = """Rehost.to hook plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def getHoster(self): diff --git a/pyload/plugins/hook/SimplyPremiumCom.py b/pyload/plugins/hook/SimplyPremiumCom.py index f0df36b22..62f5ba778 100644 --- a/pyload/plugins/hook/SimplyPremiumCom.py +++ b/pyload/plugins/hook/SimplyPremiumCom.py @@ -17,8 +17,7 @@ class SimplyPremiumCom(MultiHoster): ("interval", "int", "Reload interval in hours (0 to disable)", "24")] __description__ = """Simply-Premium.com hook plugin""" - __author_name__ = "EvolutionClip" - __author_mail__ = "evolutionclip@live.de" + __authors__ = [("EvolutionClip", "evolutionclip@live.de")] def getHoster(self): diff --git a/pyload/plugins/hook/SimplydebridCom.py b/pyload/plugins/hook/SimplydebridCom.py index f7c899a48..25373449b 100644 --- a/pyload/plugins/hook/SimplydebridCom.py +++ b/pyload/plugins/hook/SimplydebridCom.py @@ -14,8 +14,7 @@ class SimplydebridCom(MultiHoster): ("hosterList", "str", "Hoster list (comma separated)", "")] __description__ = """Simply-Debrid.com hook plugin""" - __author_name__ = "Kagenoshin" - __author_mail__ = "kagenoshin@gmx.ch" + __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] def getHoster(self): diff --git a/pyload/plugins/hook/UnrestrictLi.py b/pyload/plugins/hook/UnrestrictLi.py index 2ca5ad907..4caedf550 100644 --- a/pyload/plugins/hook/UnrestrictLi.py +++ b/pyload/plugins/hook/UnrestrictLi.py @@ -18,8 +18,7 @@ class UnrestrictLi(MultiHoster): ("history", "bool", "Delete History", False)] __description__ = """Unrestrict.li hook plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def getHoster(self): diff --git a/pyload/plugins/hook/XFileSharingPro.py b/pyload/plugins/hook/XFileSharingPro.py index e926d6655..d9ccda796 100644 --- a/pyload/plugins/hook/XFileSharingPro.py +++ b/pyload/plugins/hook/XFileSharingPro.py @@ -11,13 +11,12 @@ class XFileSharingPro(Hook): __version__ = "0.12" __config__ = [("activated", "bool", "Activated", True), - ("loadDefault", "bool", "Include default (built-in) hoster list", True), - ("includeList", "str", "Include hosters (comma separated)", ""), - ("excludeList", "str", "Exclude hosters (comma separated)", "")] + ("load_default", "bool", "Include default (built-in) hoster list", True), + ("include_hosters", "str", "Include hosters (comma separated)", ""), + ("exclude_hosters", "str", "Exclude hosters (comma separated)", "")] __description__ = """XFileSharingPro hook plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def coreReady(self): @@ -25,11 +24,11 @@ class XFileSharingPro(Hook): def loadPattern(self): - hosterList = self.getConfigSet('includeList') - excludeList = self.getConfigSet('excludeList') + hoster_list = self.getConfigSet('include_hosters') + exclude_list = self.getConfigSet('exclude_hosters') - if self.getConfig('loadDefault'): - hosterList |= set(( + if self.getConfig('load_default'): + hoster_list |= set(( #WORKING HOSTERS: "aieshare.com", "asixfiles.com", "banashare.com", "cyberlocker.ch", "eyesfile.co", "eyesfile.com", "fileband.com", "filedwon.com", "filedownloads.org", "hipfile.com", "kingsupload.com", "mlfat4arab.com", @@ -54,19 +53,19 @@ class XFileSharingPro(Hook): "ddlanime.com", "fileforth.com", "loombo.com", "goldfile.eu", "putshare.com" )) - hosterList -= (excludeList) - hosterList -= set(('', u'')) + hoster_list -= (exclude_list) + hoster_list -= set(('', u'')) - if not hosterList: + if not hoster_list: self.unload() return - regexp = r"http://(?:[^/]*\.)?(%s)/(?:embed-)?\w{12}" % ("|".join(sorted(hosterList)).replace('.', '\.')) + regexp = r"http://(?:[^/]*\.)?(%s)/(?:embed-)?\w{12}" % ("|".join(sorted(hoster_list)).replace('.', '\.')) dict = self.core.pluginManager.hosterPlugins['XFileSharingPro'] dict['pattern'] = regexp dict['re'] = re.compile(regexp) - self.logDebug("Pattern loaded - handling %d hosters" % len(hosterList)) + self.logDebug("Pattern loaded - handling %d hosters" % len(hoster_list)) def getConfigSet(self, option): diff --git a/pyload/plugins/hook/ZeveraCom.py b/pyload/plugins/hook/ZeveraCom.py index 155143f64..2a6168008 100644 --- a/pyload/plugins/hook/ZeveraCom.py +++ b/pyload/plugins/hook/ZeveraCom.py @@ -14,8 +14,7 @@ class ZeveraCom(MultiHoster): ("hosterList", "str", "Hoster list (comma separated)", "")] __description__ = """Real-Debrid.com hook plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def getHoster(self): diff --git a/pyload/plugins/hoster/AlldebridCom.py b/pyload/plugins/hoster/AlldebridCom.py index 75257f401..331f5c2bb 100644 --- a/pyload/plugins/hoster/AlldebridCom.py +++ b/pyload/plugins/hoster/AlldebridCom.py @@ -18,8 +18,7 @@ class AlldebridCom(Hoster): __pattern__ = r'https?://(?:[^/]*\.)?alldebrid\..*' __description__ = """Alldebrid.com hoster plugin""" - __author_name__ = "Andy Voigt" - __author_mail__ = "spamsales@online.de" + __authors__ = [("Andy Voigt", "spamsales@online.de")] def getFilename(self, url): @@ -78,8 +77,8 @@ class AlldebridCom(Hoster): self.download(new_url, disposition=True) - check = self.checkDownload({"error": "<title>An error occured while processing your request</title>", - "empty": re.compile(r"^$")}) + check = self.checkDownload({'error': "<title>An error occured while processing your request</title>", + 'empty': re.compile(r"^$")}) if check == "error": self.retry(wait_time=60, reason="An error occured while generating link.") diff --git a/pyload/plugins/hoster/BasePlugin.py b/pyload/plugins/hoster/BasePlugin.py index 75780b864..1973c45be 100644 --- a/pyload/plugins/hoster/BasePlugin.py +++ b/pyload/plugins/hoster/BasePlugin.py @@ -18,8 +18,7 @@ class BasePlugin(Hoster): __pattern__ = r'^unmatchable$' __description__ = """Base Plugin when any other didnt fit""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def setup(self): diff --git a/pyload/plugins/hoster/BayfilesCom.py b/pyload/plugins/hoster/BayfilesCom.py index 5906ade75..d5d001730 100644 --- a/pyload/plugins/hoster/BayfilesCom.py +++ b/pyload/plugins/hoster/BayfilesCom.py @@ -16,8 +16,9 @@ class BayfilesCom(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_INFO_PATTERN = r'<p title="(?P<N>[^"]+)">[^<]*<strong>(?P<S>[0-9., ]+)(?P<U>[kKMG])i?B</strong></p>' OFFLINE_PATTERN = r'(<p>The requested file could not be found.</p>|<title>404 Not Found</title>)' diff --git a/pyload/plugins/hoster/BezvadataCz.py b/pyload/plugins/hoster/BezvadataCz.py index 8b989da67..b0a6d6af6 100644 --- a/pyload/plugins/hoster/BezvadataCz.py +++ b/pyload/plugins/hoster/BezvadataCz.py @@ -13,8 +13,8 @@ class BezvadataCz(SimpleHoster): __pattern__ = r'http://(?:www\.)?bezvadata.cz/stahnout/.*' __description__ = """BezvaData.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<p><b>Soubor: (?P<N>[^<]+)</b></p>' FILE_SIZE_PATTERN = r'<li><strong>Velikost:</strong> (?P<S>[^<]+)</li>' diff --git a/pyload/plugins/hoster/BillionuploadsCom.py b/pyload/plugins/hoster/BillionuploadsCom.py index e774cbd83..305d840dc 100644 --- a/pyload/plugins/hoster/BillionuploadsCom.py +++ b/pyload/plugins/hoster/BillionuploadsCom.py @@ -11,8 +11,7 @@ class BillionuploadsCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?billionuploads\.com/\w{12}' __description__ = """Billionuploads.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] HOSTER_NAME = "billionuploads.com" diff --git a/pyload/plugins/hoster/BitshareCom.py b/pyload/plugins/hoster/BitshareCom.py index 8896e6833..552601d21 100644 --- a/pyload/plugins/hoster/BitshareCom.py +++ b/pyload/plugins/hoster/BitshareCom.py @@ -16,8 +16,9 @@ class BitshareCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/(?P<id1>[a-zA-Z0-9]+)(/(?P<name>.*?)\.html)?|\?f=(?P<id2>[a-zA-Z0-9]+))' __description__ = """Bitshare.com hoster plugin""" - __author_name__ = ("Paul King", "fragonib") - __author_mail__ = ("", "fragonib[AT]yahoo[DOT]es") + __authors__ = [("Paul King", None), + ("fragonib", "fragonib[AT]yahoo[DOT]es")] + FILE_INFO_PATTERN = r'Downloading (?P<N>.+) - (?P<S>[\d.]+) (?P<U>\w+)</h1>' OFFLINE_PATTERN = r'(>We are sorry, but the requested file was not found in our database|>Error - File not available<|The file was deleted either by the uploader, inactivity or due to copyright claim)' diff --git a/pyload/plugins/hoster/BoltsharingCom.py b/pyload/plugins/hoster/BoltsharingCom.py index 196e801e4..daebe6a3d 100644 --- a/pyload/plugins/hoster/BoltsharingCom.py +++ b/pyload/plugins/hoster/BoltsharingCom.py @@ -11,8 +11,7 @@ class BoltsharingCom(DeadHoster): __pattern__ = r'http://(?:www\.)?boltsharing.com/\w{12}' __description__ = """Boltsharing.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(BoltsharingCom) diff --git a/pyload/plugins/hoster/CatShareNet.py b/pyload/plugins/hoster/CatShareNet.py index 051ce2e99..39f25113a 100644 --- a/pyload/plugins/hoster/CatShareNet.py +++ b/pyload/plugins/hoster/CatShareNet.py @@ -14,8 +14,9 @@ class CatShareNet(SimpleHoster): __pattern__ = r'http://(?:www\.)?catshare\.net/\w{16}' __description__ = """CatShare.net hoster plugin""" - __author_name__ = ("z00nx", "prOq", "Walter Purcaro") - __author_mail__ = ("z00nx0@gmail.com", None, "vuolter@gmail.com") + __authors__ = [("z00nx", "z00nx0@gmail.com"), + ("prOq", None), + ("Walter Purcaro", "vuolter@gmail.com")] TEXT_ENCODING = True diff --git a/pyload/plugins/hoster/CloudzerNet.py b/pyload/plugins/hoster/CloudzerNet.py index 88313acee..719b8fa50 100644 --- a/pyload/plugins/hoster/CloudzerNet.py +++ b/pyload/plugins/hoster/CloudzerNet.py @@ -11,8 +11,9 @@ class CloudzerNet(DeadHoster): __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") + __authors__ = [("gs", "I-_-I-_-I@web.de"), + ("z00nx", "z00nx0@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(CloudzerNet) diff --git a/pyload/plugins/hoster/CramitIn.py b/pyload/plugins/hoster/CramitIn.py index 6ca310527..e0a42611f 100644 --- a/pyload/plugins/hoster/CramitIn.py +++ b/pyload/plugins/hoster/CramitIn.py @@ -11,8 +11,7 @@ class CramitIn(XFSPHoster): __pattern__ = r'http://(?:www\.)?cramit\.in/\w{12}' __description__ = """Cramit.in hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] HOSTER_NAME = "cramit.in" diff --git a/pyload/plugins/hoster/CrockoCom.py b/pyload/plugins/hoster/CrockoCom.py index 05f460716..81566e10c 100644 --- a/pyload/plugins/hoster/CrockoCom.py +++ b/pyload/plugins/hoster/CrockoCom.py @@ -14,8 +14,8 @@ class CrockoCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?(crocko|easy-share).com/\w+' __description__ = """Crocko hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<span class="fz24">Download:\s*<strong>(?P<N>.*)' FILE_SIZE_PATTERN = r'<span class="tip1"><span class="inner">(?P<S>[^<]+)</span></span>' diff --git a/pyload/plugins/hoster/CyberlockerCh.py b/pyload/plugins/hoster/CyberlockerCh.py index 7c97deedb..a03cc72b0 100644 --- a/pyload/plugins/hoster/CyberlockerCh.py +++ b/pyload/plugins/hoster/CyberlockerCh.py @@ -11,8 +11,7 @@ class CyberlockerCh(DeadHoster): __pattern__ = r'http://(?:www\.)?cyberlocker\.ch/\w+' __description__ = """Cyberlocker.ch hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(CyberlockerCh) diff --git a/pyload/plugins/hoster/CzshareCom.py b/pyload/plugins/hoster/CzshareCom.py index f5df313f7..b39cefd70 100644 --- a/pyload/plugins/hoster/CzshareCom.py +++ b/pyload/plugins/hoster/CzshareCom.py @@ -17,8 +17,8 @@ class CzshareCom(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<div class="tab" id="parameters">\s*<p>\s*Cel. n.zev: <a href=[^>]*>(?P<N>[^<]+)</a>' FILE_SIZE_PATTERN = r'<div class="tab" id="category">(?:\s*<p>[^\n]*</p>)*\s*Velikost:\s*(?P<S>[0-9., ]+)(?P<U>[kKMG])i?B\s*</div>' @@ -128,13 +128,13 @@ class CzshareCom(SimpleHoster): def checkDownloadedFile(self): # check download check = self.checkDownload({ - "tempoffline": re.compile(r"^Soubor je do.*asn.* nedostupn.*$"), + "temp_offline": re.compile(r"^Soubor je do.*asn.* nedostupn.*$"), "credit": re.compile(r"^Nem.*te dostate.*n.* kredit.$"), "multi_dl": re.compile(self.MULTIDL_PATTERN), "captcha_err": "<li>ZadanÃœ ovÄÅovacà kód nesouhlasÃ!</li>" }) - if check == "tempoffline": + if check == "temp_offline": self.fail("File not available - try later") if check == "credit": self.resetAccount() diff --git a/pyload/plugins/hoster/DailymotionCom.py b/pyload/plugins/hoster/DailymotionCom.py index 450b0e4c3..11b0ac583 100644 --- a/pyload/plugins/hoster/DailymotionCom.py +++ b/pyload/plugins/hoster/DailymotionCom.py @@ -47,8 +47,7 @@ class DailymotionCom(Hoster): __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" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] def setup(self): diff --git a/pyload/plugins/hoster/DataHu.py b/pyload/plugins/hoster/DataHu.py index 222278b49..cacc1cae8 100644 --- a/pyload/plugins/hoster/DataHu.py +++ b/pyload/plugins/hoster/DataHu.py @@ -16,8 +16,9 @@ class DataHu(SimpleHoster): __pattern__ = r'http://(?:www\.)?data.hu/get/\w+' __description__ = """Data.hu hoster plugin""" - __author_name__ = ("crash", "stickell") - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("crash", None), + ("stickell", "l.stickell@yahoo.it")] + FILE_INFO_PATTERN = ur'<title>(?P<N>.*) \((?P<S>[^)]+)\) let\xf6lt\xe9se</title>' OFFLINE_PATTERN = ur'Az adott f\xe1jl nem l\xe9tezik' diff --git a/pyload/plugins/hoster/DataportCz.py b/pyload/plugins/hoster/DataportCz.py index 2d87397df..be3cb1498 100644 --- a/pyload/plugins/hoster/DataportCz.py +++ b/pyload/plugins/hoster/DataportCz.py @@ -11,8 +11,8 @@ class DataportCz(SimpleHoster): __pattern__ = r'http://(?:www\.)?dataport.cz/file/(.*)' __description__ = """Dataport.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<span itemprop="name">(?P<N>[^<]+)</span>' FILE_SIZE_PATTERN = r'<td class="fil">Velikost</td>\s*<td>(?P<S>[^<]+)</td>' diff --git a/pyload/plugins/hoster/DateiTo.py b/pyload/plugins/hoster/DateiTo.py index d440a7566..4a00f22aa 100644 --- a/pyload/plugins/hoster/DateiTo.py +++ b/pyload/plugins/hoster/DateiTo.py @@ -14,8 +14,8 @@ class DateiTo(SimpleHoster): __pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html' __description__ = """Datei.to hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'Dateiname:</td>\s*<td colspan="2"><strong>(?P<N>.*?)</' FILE_SIZE_PATTERN = r'Dateigröße:</td>\s*<td colspan="2">(?P<S>.*?)</' diff --git a/pyload/plugins/hoster/DdlstorageCom.py b/pyload/plugins/hoster/DdlstorageCom.py index 8b477ade6..2854dac13 100644 --- a/pyload/plugins/hoster/DdlstorageCom.py +++ b/pyload/plugins/hoster/DdlstorageCom.py @@ -11,8 +11,8 @@ class DdlstorageCom(DeadHoster): __pattern__ = r'https?://(?:www\.)?ddlstorage\.com/\w+' __description__ = """DDLStorage.com hoster plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(DdlstorageCom) diff --git a/pyload/plugins/hoster/DebridItaliaCom.py b/pyload/plugins/hoster/DebridItaliaCom.py index c9332e6bb..439467cfb 100644 --- a/pyload/plugins/hoster/DebridItaliaCom.py +++ b/pyload/plugins/hoster/DebridItaliaCom.py @@ -13,8 +13,7 @@ class DebridItaliaCom(Hoster): __pattern__ = r'https?://(?:[^/]*\.)?debriditalia\.com' __description__ = """Debriditalia.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def setup(self): diff --git a/pyload/plugins/hoster/DepositfilesCom.py b/pyload/plugins/hoster/DepositfilesCom.py index 55cdc875f..b04aba261 100644 --- a/pyload/plugins/hoster/DepositfilesCom.py +++ b/pyload/plugins/hoster/DepositfilesCom.py @@ -16,8 +16,10 @@ class DepositfilesCom(SimpleHoster): __pattern__ = r'https?://(?:www\.)?(depositfiles\.com|dfiles\.(eu|ru))(/\w{1,3})?/files/(?P<ID>\w+)' __description__ = """Depositfiles.com hoster plugin""" - __author_name__ = ("spoob", "zoidberg", "Walter Purcaro") - __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz", "vuolter@gmail.com") + __authors__ = [("spoob", "spoob@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_NAME_PATTERN = r'<script type="text/javascript">eval\( unescape\(\'(?P<N>.*?)\'' FILE_SIZE_PATTERN = r': <b>(?P<S>[0-9.]+) (?P<U>[kKMG])i?B</b>' diff --git a/pyload/plugins/hoster/DlFreeFr.py b/pyload/plugins/hoster/DlFreeFr.py index 1e256368c..4440c5370 100644 --- a/pyload/plugins/hoster/DlFreeFr.py +++ b/pyload/plugins/hoster/DlFreeFr.py @@ -117,8 +117,9 @@ class DlFreeFr(SimpleHoster): __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") + __authors__ = [("the-razer", "daniel_ AT gmx DOT net"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("Toilal", "toilal.dev@gmail.com")] FILE_NAME_PATTERN = r'Fichier:</td>\s*<td[^>]*>(?P<N>[^>]*)</td>' diff --git a/pyload/plugins/hoster/DuploadOrg.py b/pyload/plugins/hoster/DuploadOrg.py index 73cd9fd42..02df654c2 100644 --- a/pyload/plugins/hoster/DuploadOrg.py +++ b/pyload/plugins/hoster/DuploadOrg.py @@ -1,22 +1,17 @@ # -*- coding: utf-8 -*- -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class DuploadOrg(XFSPHoster): +class DuploadOrg(DeadHoster): __name__ = "DuploadOrg" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?dupload\.org/\w{12}' __description__ = """Dupload.grg hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" - - HOSTER_NAME = "dupload.org" - - FILE_INFO_PATTERN = r'<h3[^>]*>(?P<N>.+) \((?P<S>[\d.]+) (?P<U>\w+)\)</h3>' + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(DuploadOrg) diff --git a/pyload/plugins/hoster/EasybytezCom.py b/pyload/plugins/hoster/EasybytezCom.py index d471bc80d..3385d13ad 100644 --- a/pyload/plugins/hoster/EasybytezCom.py +++ b/pyload/plugins/hoster/EasybytezCom.py @@ -11,8 +11,8 @@ class EasybytezCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?easybytez\.com/\w{12}' __description__ = """Easybytez.com hoster plugin""" - __author_name__ = ("zoidberg", "stickell") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] HOSTER_NAME = "easybytez.com" diff --git a/pyload/plugins/hoster/EdiskCz.py b/pyload/plugins/hoster/EdiskCz.py index fcb42020d..132396c8c 100644 --- a/pyload/plugins/hoster/EdiskCz.py +++ b/pyload/plugins/hoster/EdiskCz.py @@ -13,8 +13,8 @@ class EdiskCz(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<span class="fl" title="(?P<N>[^"]+)">\s*.*?\((?P<S>[0-9.]*) (?P<U>[kKMG])i?B\)</h1></span>' OFFLINE_PATTERN = r'<h3>This file does not exist due to one of the following:</h3><ul><li>' diff --git a/pyload/plugins/hoster/EgoFilesCom.py b/pyload/plugins/hoster/EgoFilesCom.py index e5888c4f1..8ba7a8356 100644 --- a/pyload/plugins/hoster/EgoFilesCom.py +++ b/pyload/plugins/hoster/EgoFilesCom.py @@ -11,8 +11,7 @@ class EgoFilesCom(DeadHoster): __pattern__ = r'https?://(?:www\.)?egofiles\.com/\w+' __description__ = """Egofiles.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(EgoFilesCom) diff --git a/pyload/plugins/hoster/EpicShareNet.py b/pyload/plugins/hoster/EpicShareNet.py index ee315a26c..f0fe766f5 100644 --- a/pyload/plugins/hoster/EpicShareNet.py +++ b/pyload/plugins/hoster/EpicShareNet.py @@ -1,25 +1,17 @@ # -*- coding: utf-8 -*- -# -# Test links: -# BigBuckBunny_320x180.mp4 - 61.7 Mb - http://epicshare.net/fch3m2bk6ihp/BigBuckBunny_320x180.mp4.html -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class EpicShareNet(XFSPHoster): +class EpicShareNet(DeadHoster): __name__ = "EpicShareNet" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?epicshare\.net/\w{12}' __description__ = """EpicShare.net hoster plugin""" - __author_name__ = "t4skforce" - __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" - - HOSTER_NAME = "epicshare.net" - - FILE_NAME_PATTERN = r'<b>Password:</b></div>\s*<h2>(?P<N>[^<]+)</h2>' + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] getInfo = create_getInfo(EpicShareNet) diff --git a/pyload/plugins/hoster/EuroshareEu.py b/pyload/plugins/hoster/EuroshareEu.py index d7c172594..d7d26240f 100644 --- a/pyload/plugins/hoster/EuroshareEu.py +++ b/pyload/plugins/hoster/EuroshareEu.py @@ -13,8 +13,8 @@ class EuroshareEu(SimpleHoster): __pattern__ = r'http://(?:www\.)?euroshare.(eu|sk|cz|hu|pl)/file/.*' __description__ = """Euroshare.eu hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<span style="float: left;"><strong>(?P<N>.+?)</strong> \((?P<S>.+?)\)</span>' OFFLINE_PATTERN = ur'<h2>S.bor sa nena.iel</h2>|PoÅŸadovaná stránka neexistuje!' diff --git a/pyload/plugins/hoster/ExtabitCom.py b/pyload/plugins/hoster/ExtabitCom.py index 78172ef02..ca5d934c1 100644 --- a/pyload/plugins/hoster/ExtabitCom.py +++ b/pyload/plugins/hoster/ExtabitCom.py @@ -17,8 +17,8 @@ class ExtabitCom(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<th>File:</th>\s*<td class="col-fileinfo">\s*<div title="(?P<N>[^"]+)">' FILE_SIZE_PATTERN = r'<th>Size:</th>\s*<td class="col-fileinfo">(?P<S>[^<]+)</td>' diff --git a/pyload/plugins/hoster/FastixRu.py b/pyload/plugins/hoster/FastixRu.py index 7bcbec149..f2ec1a10e 100644 --- a/pyload/plugins/hoster/FastixRu.py +++ b/pyload/plugins/hoster/FastixRu.py @@ -17,8 +17,7 @@ class FastixRu(Hoster): __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" + __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] def getFilename(self, url): diff --git a/pyload/plugins/hoster/FastshareCz.py b/pyload/plugins/hoster/FastshareCz.py index a5a3dece1..666efffe3 100644 --- a/pyload/plugins/hoster/FastshareCz.py +++ b/pyload/plugins/hoster/FastshareCz.py @@ -18,8 +18,10 @@ class FastshareCz(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_INFO_PATTERN = r'<h1 class="dwp">(?P<N>[^<]+)</h1>\s*<div class="fileinfo">\s*Size\s*: (?P<S>\d+) (?P<U>\w+),' OFFLINE_PATTERN = r'>(The file has been deleted|Requested page not found)' @@ -48,9 +50,8 @@ class FastshareCz(SimpleHoster): self.download(urljoin(baseurl, action), post={"code": captcha, "btn.x": 77, "btn.y": 18}) check = self.checkDownload({ - "paralell_dl": - "<title>FastShare.cz</title>|<script>alert\('Pres FREE muzete stahovat jen jeden soubor najednou.'\)", - "wrong_captcha": "Download for FREE" + 'paralell_dl': "<title>FastShare.cz</title>|<script>alert\('Pres FREE muzete stahovat jen jeden soubor najednou.'\)", + 'wrong_captcha': "Download for FREE" }) if check == "paralell_dl": diff --git a/pyload/plugins/hoster/File4safeCom.py b/pyload/plugins/hoster/File4safeCom.py index eb002679e..319d2b9af 100644 --- a/pyload/plugins/hoster/File4safeCom.py +++ b/pyload/plugins/hoster/File4safeCom.py @@ -15,8 +15,7 @@ class File4safeCom(XFSPHoster): __pattern__ = r'https?://(?:www\.)?file4safe\.com/\w{12}' __description__ = """File4safe.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] HOSTER_NAME = "file4safe.com" diff --git a/pyload/plugins/hoster/FileApeCom.py b/pyload/plugins/hoster/FileApeCom.py index 8c6305631..92c11e8cf 100644 --- a/pyload/plugins/hoster/FileApeCom.py +++ b/pyload/plugins/hoster/FileApeCom.py @@ -11,8 +11,7 @@ class FileApeCom(DeadHoster): __pattern__ = r'http://(?:www\.)?fileape\.com/(index\.php\?act=download\&id=|dl/)\w+' __description__ = """FileApe.com hoster plugin""" - __author_name__ = "espes" - __author_mail__ = None + __authors__ = [("espes", None)] getInfo = create_getInfo(FileApeCom) diff --git a/pyload/plugins/hoster/FileParadoxIn.py b/pyload/plugins/hoster/FileParadoxIn.py index 6aa724e79..e5830602a 100644 --- a/pyload/plugins/hoster/FileParadoxIn.py +++ b/pyload/plugins/hoster/FileParadoxIn.py @@ -13,8 +13,7 @@ class FileParadoxIn(XFSPHoster): __pattern__ = r'https?://(?:www\.)?fileparadox\.in/\w{12}' __description__ = """FileParadox.in hoster plugin""" - __author_name__ = "RazorWing" - __author_mail__ = "muppetuk1@hotmail.com" + __authors__ = [("RazorWing", "muppetuk1@hotmail.com")] HOSTER_NAME = "fileparadox.in" diff --git a/pyload/plugins/hoster/FileStoreTo.py b/pyload/plugins/hoster/FileStoreTo.py index 6a2963ec2..68e5ab2f6 100644 --- a/pyload/plugins/hoster/FileStoreTo.py +++ b/pyload/plugins/hoster/FileStoreTo.py @@ -13,8 +13,9 @@ class FileStoreTo(SimpleHoster): __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") + __authors__ = [("Walter Purcaro", "vuolter@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + 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<' diff --git a/pyload/plugins/hoster/FilebeerInfo.py b/pyload/plugins/hoster/FilebeerInfo.py index 561660148..f272e296d 100644 --- a/pyload/plugins/hoster/FilebeerInfo.py +++ b/pyload/plugins/hoster/FilebeerInfo.py @@ -11,8 +11,7 @@ class FilebeerInfo(DeadHoster): __pattern__ = r'http://(?:www\.)?filebeer\.info/(?!\d*~f)(?P<ID>\w+).*' __description__ = """Filebeer.info plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(FilebeerInfo) diff --git a/pyload/plugins/hoster/FilecloudIo.py b/pyload/plugins/hoster/FilecloudIo.py index 93db875fe..c397a1a1a 100644 --- a/pyload/plugins/hoster/FilecloudIo.py +++ b/pyload/plugins/hoster/FilecloudIo.py @@ -15,8 +15,9 @@ class FilecloudIo(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + FILE_SIZE_PATTERN = r'{var __ab1 = (?P<S>\d+);}' FILE_NAME_PATTERN = r'id="aliasSpan">(?P<N>.*?) <' diff --git a/pyload/plugins/hoster/FilefactoryCom.py b/pyload/plugins/hoster/FilefactoryCom.py index 03af98843..e5f1c0653 100644 --- a/pyload/plugins/hoster/FilefactoryCom.py +++ b/pyload/plugins/hoster/FilefactoryCom.py @@ -25,8 +25,8 @@ class FilefactoryCom(SimpleHoster): __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" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + FILE_INFO_PATTERN = r'<div id="file_name"[^>]*>\s*<h2>(?P<N>[^<]+)</h2>\s*<div id="file_info">\s*(?P<S>[\d.]+) (?P<U>\w+) uploaded' LINK_PATTERN = r'<a href="(https?://[^"]+)"[^>]*><i[^>]*></i> Download with FileFactory Premium</a>' diff --git a/pyload/plugins/hoster/FilejungleCom.py b/pyload/plugins/hoster/FilejungleCom.py index 0bbc7502e..9cfc7b481 100644 --- a/pyload/plugins/hoster/FilejungleCom.py +++ b/pyload/plugins/hoster/FilejungleCom.py @@ -12,8 +12,8 @@ class FilejungleCom(FileserveCom): __pattern__ = r'http://(?:www\.)?filejungle\.com/f/(?P<id>[^/]+).*' __description__ = """Filejungle.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + URLS = ["http://www.filejungle.com/f/", "http://www.filejungle.com/check_links.php", "http://www.filejungle.com/checkReCaptcha.php"] diff --git a/pyload/plugins/hoster/FileomCom.py b/pyload/plugins/hoster/FileomCom.py index cd2f54c35..a5ddb797c 100644 --- a/pyload/plugins/hoster/FileomCom.py +++ b/pyload/plugins/hoster/FileomCom.py @@ -14,8 +14,7 @@ class FileomCom(XFSPHoster): __pattern__ = r'https?://(?:www\.)?fileom\.com/\w{12}' __description__ = """Fileom.com hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] HOSTER_NAME = "fileom.com" diff --git a/pyload/plugins/hoster/FilepostCom.py b/pyload/plugins/hoster/FilepostCom.py index 133ea72d6..41674ebc8 100644 --- a/pyload/plugins/hoster/FilepostCom.py +++ b/pyload/plugins/hoster/FilepostCom.py @@ -17,8 +17,8 @@ class FilepostCom(SimpleHoster): __pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp.io)/([^/]+).*' __description__ = """Filepost.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<input type="text" id="url" value=\'<a href[^>]*>(?P<N>[^>]+?) - (?P<S>[0-9\.]+ [kKMG]i?B)</a>\' class="inp_text"/>' OFFLINE_PATTERN = r'class="error_msg_title"> Invalid or Deleted File. </div>|<div class="file_info file_info_deleted">' diff --git a/pyload/plugins/hoster/FilerNet.py b/pyload/plugins/hoster/FilerNet.py index 5b3a07871..71c6b5384 100644 --- a/pyload/plugins/hoster/FilerNet.py +++ b/pyload/plugins/hoster/FilerNet.py @@ -21,8 +21,8 @@ class FilerNet(SimpleHoster): __pattern__ = r'https?://(?:www\.)?filer\.net/get/(\w+)' __description__ = """Filer.net hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + FILE_INFO_PATTERN = r'<h1 class="page-header">Free Download (?P<N>\S+) <small>(?P<S>[\w.]+) (?P<U>\w+)</small></h1>' OFFLINE_PATTERN = r'Nicht gefunden' diff --git a/pyload/plugins/hoster/FilerioCom.py b/pyload/plugins/hoster/FilerioCom.py index 5dd0be9c9..4389a8d1a 100644 --- a/pyload/plugins/hoster/FilerioCom.py +++ b/pyload/plugins/hoster/FilerioCom.py @@ -11,8 +11,7 @@ class FilerioCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?(filerio\.(in|com)|filekeen\.com)/\w{12}' __description__ = """FileRio.in hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] HOSTER_NAME = "filerio.in" diff --git a/pyload/plugins/hoster/FilesMailRu.py b/pyload/plugins/hoster/FilesMailRu.py index a900d58b4..176799c1c 100644 --- a/pyload/plugins/hoster/FilesMailRu.py +++ b/pyload/plugins/hoster/FilesMailRu.py @@ -37,8 +37,7 @@ class FilesMailRu(Hoster): __pattern__ = r'http://(?:www\.)?files\.mail\.ru/.*' __description__ = """Files.mail.ru hoster plugin""" - __author_name__ = "oZiRiz" - __author_mail__ = "ich@oziriz.de" + __authors__ = [("oZiRiz", "ich@oziriz.de")] def setup(self): diff --git a/pyload/plugins/hoster/FileserveCom.py b/pyload/plugins/hoster/FileserveCom.py index 77c1b435f..f1969a40e 100644 --- a/pyload/plugins/hoster/FileserveCom.py +++ b/pyload/plugins/hoster/FileserveCom.py @@ -38,8 +38,11 @@ class FileserveCom(Hoster): __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") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("mkaay", "mkaay@mkaay.de"), + ("Paul King", None), + ("zoidberg", "zoidberg@mujmail.cz")] + URLS = ["http://www.fileserve.com/file/", "http://www.fileserve.com/link-checker.php", "http://www.fileserve.com/checkReCaptcha.php"] diff --git a/pyload/plugins/hoster/FileshareInUa.py b/pyload/plugins/hoster/FileshareInUa.py index 83cf2dd8b..f2d1ed84b 100644 --- a/pyload/plugins/hoster/FileshareInUa.py +++ b/pyload/plugins/hoster/FileshareInUa.py @@ -15,8 +15,8 @@ class FileshareInUa(Hoster): __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" + __authors__ = [("fwannmacher", "felipe@warhammerproject.com")] + PATTERN_FILENAME = r'<h3 class="b-filename">(.*?)</h3>' PATTERN_FILESIZE = r'<b class="b-filesize">(.*?)</b>' diff --git a/pyload/plugins/hoster/FilezyNet.py b/pyload/plugins/hoster/FilezyNet.py index 4bd5de495..660e9c5e3 100644 --- a/pyload/plugins/hoster/FilezyNet.py +++ b/pyload/plugins/hoster/FilezyNet.py @@ -11,8 +11,7 @@ class FilezyNet(DeadHoster): __pattern__ = r'http://(?:www\.)?filezy\.net/\w{12}' __description__ = """Filezy.net hoster plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] getInfo = create_getInfo(FilezyNet) diff --git a/pyload/plugins/hoster/FiredriveCom.py b/pyload/plugins/hoster/FiredriveCom.py index 8bd841c8f..060b34d5d 100644 --- a/pyload/plugins/hoster/FiredriveCom.py +++ b/pyload/plugins/hoster/FiredriveCom.py @@ -13,8 +13,8 @@ class FiredriveCom(SimpleHoster): __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" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + FILE_NAME_PATTERN = r'<b>Name:</b> (?P<N>.+) <br>' FILE_SIZE_PATTERN = r'<b>Size:</b> (?P<S>[\d.]+) (?P<U>[a-zA-Z]+) <br>' diff --git a/pyload/plugins/hoster/FlyFilesNet.py b/pyload/plugins/hoster/FlyFilesNet.py index d8d6efb7e..b8b392e8b 100644 --- a/pyload/plugins/hoster/FlyFilesNet.py +++ b/pyload/plugins/hoster/FlyFilesNet.py @@ -16,8 +16,7 @@ class FlyFilesNet(SimpleHoster): __pattern__ = r'http://(?:www\.)?flyfiles\.net/.*' __description__ = """FlyFiles.net hoster plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] SESSION_PATTERN = r'flyfiles\.net/(.*)/.*' FILE_NAME_PATTERN = r'flyfiles\.net/.*/(.*)' diff --git a/pyload/plugins/hoster/FourSharedCom.py b/pyload/plugins/hoster/FourSharedCom.py index e2cb980a4..471ac66a2 100644 --- a/pyload/plugins/hoster/FourSharedCom.py +++ b/pyload/plugins/hoster/FourSharedCom.py @@ -13,8 +13,9 @@ class FourSharedCom(SimpleHoster): __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") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<meta name="title" content="(?P<N>.+?)"' FILE_SIZE_PATTERN = r'<span title="Size: (?P<S>[0-9,.]+) (?P<U>[kKMG])i?B">' diff --git a/pyload/plugins/hoster/FreakshareCom.py b/pyload/plugins/hoster/FreakshareCom.py index f58d72980..2405d1f35 100644 --- a/pyload/plugins/hoster/FreakshareCom.py +++ b/pyload/plugins/hoster/FreakshareCom.py @@ -15,8 +15,10 @@ class FreakshareCom(Hoster): __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") + __authors__ = [("sitacuisses", "sitacuisses@yahoo.de"), + ("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de"), + ("Toilal", "toilal.dev@gmail.com")] def setup(self): diff --git a/pyload/plugins/hoster/FreeWayMe.py b/pyload/plugins/hoster/FreeWayMe.py index 2c23ac6de..ec99f850f 100644 --- a/pyload/plugins/hoster/FreeWayMe.py +++ b/pyload/plugins/hoster/FreeWayMe.py @@ -11,8 +11,7 @@ class FreeWayMe(Hoster): __pattern__ = r'https://(?:www\.)?free-way.me/.*' __description__ = """FreeWayMe hoster plugin""" - __author_name__ = "Nicolas Giese" - __author_mail__ = "james@free-way.me" + __authors__ = [("Nicolas Giese", "james@free-way.me")] def setup(self): diff --git a/pyload/plugins/hoster/FreevideoCz.py b/pyload/plugins/hoster/FreevideoCz.py index dc7dd04bd..c2e14471d 100644 --- a/pyload/plugins/hoster/FreevideoCz.py +++ b/pyload/plugins/hoster/FreevideoCz.py @@ -11,8 +11,7 @@ class FreevideoCz(DeadHoster): __pattern__ = r'http://(?:www\.)?freevideo\.cz/vase-videa/.+' __description__ = """Freevideo.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(FreevideoCz)
\ No newline at end of file diff --git a/pyload/plugins/hoster/FshareVn.py b/pyload/plugins/hoster/FshareVn.py index 3e3632902..3ecae0394 100644 --- a/pyload/plugins/hoster/FshareVn.py +++ b/pyload/plugins/hoster/FshareVn.py @@ -32,8 +32,8 @@ class FshareVn(SimpleHoster): __pattern__ = r'http://(?:www\.)?fshare.vn/file/.*' __description__ = """FshareVn hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<p>(?P<N>[^<]+)<\\/p>[\\trn\s]*<p>(?P<S>[0-9,.]+)\s*(?P<U>[kKMG])i?B<\\/p>' OFFLINE_PATTERN = r'<div class=\\"f_left file_w\\"|<\\/p>\\t\\t\\t\\t\\r\\n\\t\\t<p><\\/p>\\t\\t\\r\\n\\t\\t<p>0 KB<\\/p>' diff --git a/pyload/plugins/hoster/Ftp.py b/pyload/plugins/hoster/Ftp.py index d51907a1a..f092bd0a4 100644 --- a/pyload/plugins/hoster/Ftp.py +++ b/pyload/plugins/hoster/Ftp.py @@ -17,8 +17,9 @@ class Ftp(Hoster): __pattern__ = r'(ftps?|sftp)://(.*?:.*?@)?.*?/.*' #: ftp://user:password@ftp.server.org/path/to/file __description__ = """Download from ftp directory""" - __author_name__ = ("jeix", "mkaay", "zoidberg") - __author_mail__ = ("jeix@hasnomail.com", "mkaay@mkaay.de", "zoidberg@mujmail.cz") + __authors__ = [("jeix", "jeix@hasnomail.com"), + ("mkaay", "mkaay@mkaay.de"), + ("zoidberg", "zoidberg@mujmail.cz")] def setup(self): diff --git a/pyload/plugins/hoster/GamefrontCom.py b/pyload/plugins/hoster/GamefrontCom.py index 2a358dff3..b19de0717 100644 --- a/pyload/plugins/hoster/GamefrontCom.py +++ b/pyload/plugins/hoster/GamefrontCom.py @@ -15,8 +15,8 @@ class GamefrontCom(Hoster): __pattern__ = r'http://(?:www\.)?gamefront.com/files/[A-Za-z0-9]+' __description__ = """Gamefront.com hoster plugin""" - __author_name__ = "fwannmacher" - __author_mail__ = "felipe@warhammerproject.com" + __authors__ = [("fwannmacher", "felipe@warhammerproject.com")] + PATTERN_FILENAME = r'<title>(.*?) | Game Front' PATTERN_FILESIZE = r'<dt>File Size:</dt>[\n\s]*<dd>(.*?)</dd>' diff --git a/pyload/plugins/hoster/GigapetaCom.py b/pyload/plugins/hoster/GigapetaCom.py index dde9cab55..08e889bb9 100644 --- a/pyload/plugins/hoster/GigapetaCom.py +++ b/pyload/plugins/hoster/GigapetaCom.py @@ -16,8 +16,8 @@ class GigapetaCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?gigapeta\.com/dl/\w+' __description__ = """GigaPeta.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<img src=".*" alt="file" />-->\s*(?P<N>.*?)\s*</td>' FILE_SIZE_PATTERN = r'<th>\s*Size\s*</th>\s*<td>\s*(?P<S>.*?)\s*</td>' diff --git a/pyload/plugins/hoster/GooIm.py b/pyload/plugins/hoster/GooIm.py index 13598a8b6..5b48087f3 100644 --- a/pyload/plugins/hoster/GooIm.py +++ b/pyload/plugins/hoster/GooIm.py @@ -16,8 +16,8 @@ class GooIm(SimpleHoster): __pattern__ = r'https?://(?:www\.)?goo\.im/.+' __description__ = """Goo.im hoster plugin""" - __author_name__ = "zapp-brannigan" - __author_mail__ = "fuerst.reinje@web.de" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")] + FILE_NAME_PATTERN = r'You will be redirected to .*(?P<N>[^/ ]+) in' OFFLINE_PATTERN = r'The file you requested was not found' diff --git a/pyload/plugins/hoster/HellshareCz.py b/pyload/plugins/hoster/HellshareCz.py index 5f3236876..7edba3a7d 100644 --- a/pyload/plugins/hoster/HellshareCz.py +++ b/pyload/plugins/hoster/HellshareCz.py @@ -13,8 +13,8 @@ class HellshareCz(SimpleHoster): __pattern__ = r'(http://(?:www\.)?hellshare\.(?:cz|com|sk|hu|pl)/[^?]*/\d+).*' __description__ = """Hellshare.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<h1 id="filename"[^>]*>(?P<N>[^<]+)</h1>' FILE_SIZE_PATTERN = r'<strong id="FileSize_master">(?P<S>[0-9.]*) (?P<U>[kKMG])i?B</strong>' diff --git a/pyload/plugins/hoster/HellspyCz.py b/pyload/plugins/hoster/HellspyCz.py index 68b61caf0..fabd3de35 100644 --- a/pyload/plugins/hoster/HellspyCz.py +++ b/pyload/plugins/hoster/HellspyCz.py @@ -11,8 +11,7 @@ class HellspyCz(DeadHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(HellspyCz) diff --git a/pyload/plugins/hoster/HotfileCom.py b/pyload/plugins/hoster/HotfileCom.py index 41831342f..313547275 100644 --- a/pyload/plugins/hoster/HotfileCom.py +++ b/pyload/plugins/hoster/HotfileCom.py @@ -11,8 +11,10 @@ class HotfileCom(DeadHoster): __pattern__ = r'https?://(?:www\.)?hotfile\.com/dl/\d+/\w+' __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") + __authors__ = [("sitacuisses", "sitacuisses@yhoo.de"), + ("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de"), + ("JoKoT3", "jokot3@gmail.com")] getInfo = create_getInfo(HotfileCom) diff --git a/pyload/plugins/hoster/HugefilesNet.py b/pyload/plugins/hoster/HugefilesNet.py index ee475c7cb..3b9f81eb0 100644 --- a/pyload/plugins/hoster/HugefilesNet.py +++ b/pyload/plugins/hoster/HugefilesNet.py @@ -14,8 +14,8 @@ class HugefilesNet(XFSPHoster): __pattern__ = r'http://(?:www\.)?hugefiles\.net/\w{12}' __description__ = """Hugefiles.net hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + HOSTER_NAME = "hugefiles.net" diff --git a/pyload/plugins/hoster/HundredEightyUploadCom.py b/pyload/plugins/hoster/HundredEightyUploadCom.py index 6b9516c66..191b9156a 100644 --- a/pyload/plugins/hoster/HundredEightyUploadCom.py +++ b/pyload/plugins/hoster/HundredEightyUploadCom.py @@ -14,8 +14,7 @@ class HundredEightyUploadCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?180upload\.com/\w{12}' __description__ = """180upload.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] HOSTER_NAME = "180upload.com" diff --git a/pyload/plugins/hoster/IFileWs.py b/pyload/plugins/hoster/IFileWs.py index 63edfec40..b0cdab64b 100644 --- a/pyload/plugins/hoster/IFileWs.py +++ b/pyload/plugins/hoster/IFileWs.py @@ -11,8 +11,7 @@ class IFileWs(DeadHoster): __pattern__ = r'http://(?:www\.)?ifile\.ws/\w{12}' __description__ = """Ifile.ws hoster plugin""" - __author_name__ = "z00nx" - __author_mail__ = "z00nx0@gmail.com" + __authors__ = [("z00nx", "z00nx0@gmail.com")] getInfo = create_getInfo(IFileWs) diff --git a/pyload/plugins/hoster/IcyFilesCom.py b/pyload/plugins/hoster/IcyFilesCom.py index 532cd094b..637136e9d 100644 --- a/pyload/plugins/hoster/IcyFilesCom.py +++ b/pyload/plugins/hoster/IcyFilesCom.py @@ -11,8 +11,7 @@ class IcyFilesCom(DeadHoster): __pattern__ = r'http://(?:www\.)?icyfiles\.com/(.*)' __description__ = """IcyFiles.com hoster plugin""" - __author_name__ = "godofdream" - __author_mail__ = "soilfiction@gmail.com" + __authors__ = [("godofdream", "soilfiction@gmail.com")] getInfo = create_getInfo(IcyFilesCom) diff --git a/pyload/plugins/hoster/IfileIt.py b/pyload/plugins/hoster/IfileIt.py index 70ab8084d..ec6a86dc7 100644 --- a/pyload/plugins/hoster/IfileIt.py +++ b/pyload/plugins/hoster/IfileIt.py @@ -15,8 +15,8 @@ class IfileIt(SimpleHoster): __pattern__ = r'^unmatchable$' __description__ = """Ifile.it""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + LINK_PATTERN = r'</span> If it doesn\'t, <a target="_blank" href="([^"]+)">' RECAPTCHA_PATTERN = r"var __recaptcha_public\s*=\s*'([^']+)';" diff --git a/pyload/plugins/hoster/IfolderRu.py b/pyload/plugins/hoster/IfolderRu.py index 4f84e6b32..3de9b2e38 100644 --- a/pyload/plugins/hoster/IfolderRu.py +++ b/pyload/plugins/hoster/IfolderRu.py @@ -13,8 +13,8 @@ class IfolderRu(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_SIZE_REPLACEMENTS = [(u'Ðб', 'KB'), (u'Ðб', 'MB'), (u'Ðб', 'GB')] FILE_NAME_PATTERN = ur'(?:<div><span>)?ÐазваМОе:(?:</span>)? <b>(?P<N>[^<]+)</b><(?:/div|br)>' diff --git a/pyload/plugins/hoster/JumbofilesCom.py b/pyload/plugins/hoster/JumbofilesCom.py index d3ee9ee9b..c17a2d454 100644 --- a/pyload/plugins/hoster/JumbofilesCom.py +++ b/pyload/plugins/hoster/JumbofilesCom.py @@ -13,8 +13,8 @@ class JumbofilesCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?jumbofiles.com/(\w{12}).*' __description__ = """JumboFiles.com hoster plugin""" - __author_name__ = "godofdream" - __author_mail__ = "soilfiction@gmail.com" + __authors__ = [("godofdream", "soilfiction@gmail.com")] + FILE_INFO_PATTERN = r'<TR><TD>(?P<N>[^<]+?)\s*<small>\((?P<S>[\d.]+)\s*(?P<U>[KMG][bB])\)</small></TD></TR>' OFFLINE_PATTERN = r'Not Found or Deleted / Disabled due to inactivity or DMCA' diff --git a/pyload/plugins/hoster/Keep2shareCC.py b/pyload/plugins/hoster/Keep2shareCC.py index 9d33e17d8..7e030a685 100644 --- a/pyload/plugins/hoster/Keep2shareCC.py +++ b/pyload/plugins/hoster/Keep2shareCC.py @@ -16,8 +16,7 @@ class Keep2shareCC(SimpleHoster): __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" + __authors__ = [("stickell", "l.stickell@yahoo.it")] FILE_NAME_PATTERN = r'File: <span>(?P<N>.+)</span>' diff --git a/pyload/plugins/hoster/LemUploadsCom.py b/pyload/plugins/hoster/LemUploadsCom.py index 9545a0a28..2c77f3106 100644 --- a/pyload/plugins/hoster/LemUploadsCom.py +++ b/pyload/plugins/hoster/LemUploadsCom.py @@ -1,26 +1,17 @@ # -*- coding: utf-8 -*- -# -# Test links: -# BigBuckBunny_320x180.mp4 - 61.7 Mb - http://lemuploads.com/uwol0aly9dld -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class LemUploadsCom(XFSPHoster): +class LemUploadsCom(DeadHoster): __name__ = "LemUploadsCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?lemuploads\.com/\w{12}' __description__ = """LemUploads.com hoster plugin""" - __author_name__ = "t4skforce" - __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" - - - HOSTER_NAME = "lemuploads.com" - - FILE_NAME_PATTERN = r'<b>Password:</b></div>\s*<h2>(?P<N>[^<]+)</h2>' + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] getInfo = create_getInfo(LemUploadsCom) diff --git a/pyload/plugins/hoster/LetitbitNet.py b/pyload/plugins/hoster/LetitbitNet.py index 7e01a120f..f1256f53a 100644 --- a/pyload/plugins/hoster/LetitbitNet.py +++ b/pyload/plugins/hoster/LetitbitNet.py @@ -41,8 +41,9 @@ class LetitbitNet(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("z00nx", "z00nx0@gmail.com")] + FILE_URL_REPLACEMENTS = [(r"(?<=http://)([^/]+)", "letitbit.net")] diff --git a/pyload/plugins/hoster/LinksnappyCom.py b/pyload/plugins/hoster/LinksnappyCom.py index 32da0adab..ff9df1dff 100644 --- a/pyload/plugins/hoster/LinksnappyCom.py +++ b/pyload/plugins/hoster/LinksnappyCom.py @@ -16,8 +16,8 @@ class LinksnappyCom(Hoster): __pattern__ = r'https?://(?:[^/]*\.)?linksnappy\.com' __description__ = """Linksnappy.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + SINGLE_CHUNK_HOSTERS = ('easybytez.com') diff --git a/pyload/plugins/hoster/LoadTo.py b/pyload/plugins/hoster/LoadTo.py index 8798819e3..4f5197f13 100644 --- a/pyload/plugins/hoster/LoadTo.py +++ b/pyload/plugins/hoster/LoadTo.py @@ -18,8 +18,9 @@ class LoadTo(SimpleHoster): __pattern__ = r'http://(?:www\.)?load\.to/\w+' __description__ = """Load.to hoster plugin""" - __author_name__ = ("halfman", "stickell") - __author_mail__ = ("Pulpan3@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("halfman", "Pulpan3@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + FILE_NAME_PATTERN = r'<h1>(?P<N>.+)</h1>' FILE_SIZE_PATTERN = r'Size: (?P<S>[\d.]+) (?P<U>\w+)' diff --git a/pyload/plugins/hoster/LomafileCom.py b/pyload/plugins/hoster/LomafileCom.py index 2ae6973c8..8184e9393 100644 --- a/pyload/plugins/hoster/LomafileCom.py +++ b/pyload/plugins/hoster/LomafileCom.py @@ -1,61 +1,29 @@ # -*- coding: utf-8 -*- -import re +from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo -from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo - -class LomafileCom(SimpleHoster): +class LomafileCom(XFileSharingPro): __name__ = "LomafileCom" __type__ = "hoster" - __version__ = "0.2" + __version__ = "0.3" - __pattern__ = r'https?://lomafile\.com/.+/[\w\.]+' + __pattern__ = r'http://lomafile\.com/\w{12}' __description__ = """Lomafile.com hoster plugin""" - __author_name__ = "nath_schwarz" - __author_mail__ = "nathan.notwhite@gmail.com" - - FILE_NAME_PATTERN = r'Filename:[^>]*>(?P<N>[\w\.]+)' - FILE_SIZE_PATTERN = r'\((?P<S>\d+)\s(?P<U>\w+)\)' - OFFLINE_PATTERN = r'Software error' - - - def handleFree(self): - for _ in xrange(3): - captcha_id = re.search(r'src="http://lomafile\.com/captchas/(?P<id>\w+)\.jpg"', self.html) - if not captcha_id: - self.parseError("Unable to parse captcha id.") - else: - captcha_id = captcha_id.group("id") - - form_id = re.search(r'name="id" value="(?P<id>\w+)"', self.html) - if not form_id: - self.parseError("Unable to parse form id") - else: - form_id = form_id.group("id") - - captcha = self.decryptCaptcha("http://lomafile.com/captchas/" + captcha_id + ".jpg") - - self.wait(60) - - self.html = self.load(self.pyfile.url, post={ - "op": "download2", - "id": form_id, - "rand": captcha_id, - "code": captcha, - "down_direct": "1"}) - - download_url = re.search(r'http://[\d\.]+:\d+/d/\w+/[\w\.]+', self.html) - if download_url is None: - self.invalidCaptcha() - self.logDebug("Invalid captcha.") - else: - download_url = download_url.group(0) - self.logDebug("Download URL: %s" % download_url) - self.download(download_url) - else: - self.fail("Invalid captcha-code entered.") + __authors__ = [("nath_schwarz", "nathan.notwhite@gmail.com"), + ("guidobelix", "guidobelix@hotmail.it")] + + + HOSTER_NAME = "lomafile.com" + + FILE_NAME_PATTERN = r'<a href="http://lomafile\.com/w{12}/(?P<N>.+?)">' + FILE_SIZE_PATTERN = r'Size:</b></td><td>(?P<S>[\d.]+) (?P<U>\w+)' + + OFFLINE_PATTERN = r'>(No such file|Software error:<)' + TEMP_OFFLINE_PATTERN = r'The page may have been renamed, removed or be temporarily unavailable.<' + + CAPTCHA_URL_PATTERN = r'(http://lomafile\.com/captchas/[^"\']+)' getInfo = create_getInfo(LomafileCom) diff --git a/pyload/plugins/hoster/LuckyShareNet.py b/pyload/plugins/hoster/LuckyShareNet.py index 90af45e8d..32f1c03bf 100644 --- a/pyload/plugins/hoster/LuckyShareNet.py +++ b/pyload/plugins/hoster/LuckyShareNet.py @@ -16,8 +16,8 @@ class LuckyShareNet(SimpleHoster): __pattern__ = r'https?://(?:www\.)?luckyshare.net/(?P<ID>\d{10,})' __description__ = """LuckyShare.net hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + FILE_INFO_PATTERN = r"<h1 class='file_name'>(?P<N>\S+)</h1>\s*<span class='file_size'>Filesize: (?P<S>[\d.]+)(?P<U>\w+)</span>" OFFLINE_PATTERN = r'There is no such file available' diff --git a/pyload/plugins/hoster/MediafireCom.py b/pyload/plugins/hoster/MediafireCom.py index 8b882e952..f8b204d2f 100644 --- a/pyload/plugins/hoster/MediafireCom.py +++ b/pyload/plugins/hoster/MediafireCom.py @@ -52,8 +52,9 @@ class MediafireCom(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] + LINK_PATTERN = r'<div class="download_link"[^>]*(?:z-index:(?P<zindex>\d+))?[^>]*>\s*<a href="(?P<href>http://[^"]+)"' JS_KEY_PATTERN = r"DoShow\('mfpromo1'\);[^{]*{((\w+)='';.*?)eval\(\2\);" diff --git a/pyload/plugins/hoster/MegaDebridEu.py b/pyload/plugins/hoster/MegaDebridEu.py index 82fde28e9..79a42b1cb 100644 --- a/pyload/plugins/hoster/MegaDebridEu.py +++ b/pyload/plugins/hoster/MegaDebridEu.py @@ -16,8 +16,8 @@ class MegaDebridEu(Hoster): __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" + __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")] + API_URL = "https://www.mega-debrid.eu/api.php" diff --git a/pyload/plugins/hoster/MegaFilesSe.py b/pyload/plugins/hoster/MegaFilesSe.py index 67086b068..e5b10f6e1 100644 --- a/pyload/plugins/hoster/MegaFilesSe.py +++ b/pyload/plugins/hoster/MegaFilesSe.py @@ -1,23 +1,17 @@ # -*- coding: utf-8 -*- -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class MegaFilesSe(XFSPHoster): +class MegaFilesSe(DeadHoster): __name__ = "MegaFilesSe" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?megafiles\.se/\w{12}' __description__ = """MegaFiles.se hoster plugin""" - __author_name__ = "t4skforce" - __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" - - HOSTER_NAME = "megafiles.se" - - OFFLINE_PATTERN = r'><font[^>]*>File Not Found' - FILE_NAME_PATTERN = r'<div[^>]+>\s*<b>(?P<N>[^<]+)</b>\s*</div>' + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] getInfo = create_getInfo(MegaFilesSe) diff --git a/pyload/plugins/hoster/MegaNz.py b/pyload/plugins/hoster/MegaNz.py index e01bc2cb7..bfe51b081 100644 --- a/pyload/plugins/hoster/MegaNz.py +++ b/pyload/plugins/hoster/MegaNz.py @@ -21,8 +21,8 @@ class MegaNz(Hoster): __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" + __authors__ = [("RaNaN", "ranan@pyload.org")] + API_URL = "https://g.api.mega.co.nz/cs?id=%d" FILE_SUFFIX = ".crypted" diff --git a/pyload/plugins/hoster/MegacrypterCom.py b/pyload/plugins/hoster/MegacrypterCom.py index cdc019fdf..de47b70f6 100644 --- a/pyload/plugins/hoster/MegacrypterCom.py +++ b/pyload/plugins/hoster/MegacrypterCom.py @@ -14,8 +14,8 @@ class MegacrypterCom(MegaNz): __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" + __authors__ = [("GonzaloSR", "gonzalo@gonzalosr.com")] + API_URL = "http://megacrypter.com/api" FILE_SUFFIX = ".crypted" diff --git a/pyload/plugins/hoster/MegareleaseOrg.py b/pyload/plugins/hoster/MegareleaseOrg.py index 0f853c58a..b627a8f10 100644 --- a/pyload/plugins/hoster/MegareleaseOrg.py +++ b/pyload/plugins/hoster/MegareleaseOrg.py @@ -1,23 +1,18 @@ # -*- coding: utf-8 -*- -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class MegareleaseOrg(XFSPHoster): +class MegareleaseOrg(DeadHoster): __name__ = "MegareleaseOrg" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __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") - - - HOSTER_NAME = "megarelease.org" - - FILE_INFO_PATTERN = r'<font color="red">%s/(?P<N>.+)</font> \((?P<S>[^)]+)\)</font>' % __pattern__ + __authors__ = [("derek3x", "derek3x@vmail.me"), + ("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(MegareleaseOrg) diff --git a/pyload/plugins/hoster/MegasharesCom.py b/pyload/plugins/hoster/MegasharesCom.py index 36e13a531..23b5fbabc 100644 --- a/pyload/plugins/hoster/MegasharesCom.py +++ b/pyload/plugins/hoster/MegasharesCom.py @@ -10,21 +10,22 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MegasharesCom(SimpleHoster): __name__ = "MegasharesCom" __type__ = "hoster" - __version__ = "0.24" + __version__ = "0.25" - __pattern__ = r'http://(?:www\.)?megashares.com/.*' + __pattern__ = r'http://(?:www\.)?(d\d{2}\.)?megashares\.com/((index.php)?\?d\d{2}=|dl/)\w+' __description__ = """Megashares.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<h1 class="black xxl"[^>]*title="(?P<N>[^"]+)">' - FILE_SIZE_PATTERN = r'<strong><span class="black">Filesize:</span></strong> (?P<S>[0-9.]+) (?P<U>[kKMG])i?B<br />' - OFFLINE_PATTERN = r'<dd class="red">(Invalid Link Request|Link has been deleted)' + FILE_SIZE_PATTERN = r'<strong><span class="black">Filesize:</span></strong> (?P<S>[\d.]+) (?P<U>\w+)' + OFFLINE_PATTERN = r'<dd class="red">(Invalid Link Request|Link has been deleted|Invalid link)' LINK_PATTERN = r'<div id="show_download_button_%d"[^>]*>\s*<a href="([^"]+)">' - PASSPORT_LEFT_PATTERN = r'Your Download Passport is: <[^>]*>(\w+).*\s*You have\s*<[^>]*>\s*([0-9.]+) ([kKMG]i?B)' - PASSPORT_RENEW_PATTERN = r'Your download passport will renew in\s*<strong>(\d+)</strong>:<strong>(\d+)</strong>:<strong>(\d+)</strong>' + + PASSPORT_LEFT_PATTERN = r'Your Download Passport is: <[^>]*>(\w+).*?You have.*?<[^>]*>.*?([\d.]+) (\w+)' + PASSPORT_RENEW_PATTERN = r'Your download passport will renew(?:.|\n)*?(\d+).*?(\d+).*?(\d+)' REACTIVATE_NUM_PATTERN = r'<input[^>]*id="random_num" value="(\d+)" />' REACTIVATE_PASSPORT_PATTERN = r'<input[^>]*id="passport_num" value="(\w+)" />' REQUEST_URI_PATTERN = r'var request_uri = "([^"]+)";' @@ -35,9 +36,11 @@ class MegasharesCom(SimpleHoster): self.resumeDownload = True self.multiDL = self.premium + def handlePremium(self): self.handleDownload(True) + def handleFree(self): self.html = self.load(self.pyfile.url, decode=True) @@ -45,10 +48,7 @@ class MegasharesCom(SimpleHoster): self.retry(wait_time=5 * 60) self.getFileInfo() - # if self.pyfile.size > 576716800: - # self.fail("This file is too large for free download") - # Reactivate passport if needed m = re.search(self.REACTIVATE_PASSPORT_PATTERN, self.html) if m: passport_num = m.group(1) @@ -76,20 +76,22 @@ class MegasharesCom(SimpleHoster): self.fail("Failed to reactivate passport") # Check traffic left on passport - m = re.search(self.PASSPORT_LEFT_PATTERN, self.html) + m = re.search(self.PASSPORT_LEFT_PATTERN, self.html, re.M | re.S) if m is None: self.fail('Passport not found') self.logInfo("Download passport: %s" % m.group(1)) - data_left = float(m.group(2)) * 1024 ** {'KB': 1, 'MB': 2, 'GB': 3}[m.group(3)] + data_left = float(m.group(2)) * 1024 ** {'B': 0, 'KB': 1, 'MB': 2, 'GB': 3}[m.group(3)] self.logInfo("Data left: %s %s (%d MB needed)" % (m.group(2), m.group(3), self.pyfile.size / 1048576)) if not data_left: m = re.search(self.PASSPORT_RENEW_PATTERN, self.html) - renew = m.group(1) + m.group(2) + m.group(3) * 60 * 60 if m else 10 * 60 - self.retry(max_tries=15, wait_time=renew, reason="Unable to get passport") + renew = int(m.group(1) + 60 * (m.group(2) + 60 * m.group(3))) if found else 600 + self.logDebug('Waiting %d seconds for a new passport' % renew) + self.retry(wait_time=renew, reason="Passport renewal") self.handleDownload(False) + def handleDownload(self, premium=False): # Find download link; m = re.search(self.LINK_PATTERN % (1 if premium else 2), self.html) diff --git a/pyload/plugins/hoster/MovReelCom.py b/pyload/plugins/hoster/MovReelCom.py index f31e27bd1..07a54a27c 100644 --- a/pyload/plugins/hoster/MovReelCom.py +++ b/pyload/plugins/hoster/MovReelCom.py @@ -11,8 +11,7 @@ class MovReelCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?movreel\.com/\w{12}' __description__ = """MovReel.com hoster plugin""" - __author_name__ = "JorisV83" - __author_mail__ = "jorisv83-pyload@yahoo.com" + __authors__ = [("JorisV83", "jorisv83-pyload@yahoo.com")] HOSTER_NAME = "movreel.com" diff --git a/pyload/plugins/hoster/MultishareCz.py b/pyload/plugins/hoster/MultishareCz.py index 819478659..3d9afa392 100644 --- a/pyload/plugins/hoster/MultishareCz.py +++ b/pyload/plugins/hoster/MultishareCz.py @@ -15,8 +15,8 @@ class MultishareCz(SimpleHoster): __pattern__ = r'http://(?:www\.)?multishare.cz/stahnout/(?P<ID>\d+).*' __description__ = """MultiShare.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = ur'(?:<li>Název|Soubor): <strong>(?P<N>[^<]+)</strong><(?:/li><li|br)>Velikost: <strong>(?P<S>[^<]+)</strong>' OFFLINE_PATTERN = ur'<h1>Stáhnout soubor</h1><p><strong>PoÅŸadovanÃœ soubor neexistuje.</strong></p>' diff --git a/pyload/plugins/hoster/MyfastfileCom.py b/pyload/plugins/hoster/MyfastfileCom.py index b3ef02186..219cee92f 100644 --- a/pyload/plugins/hoster/MyfastfileCom.py +++ b/pyload/plugins/hoster/MyfastfileCom.py @@ -14,8 +14,8 @@ class MyfastfileCom(Hoster): __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' __description__ = """Myfastfile.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] + def setup(self): diff --git a/pyload/plugins/hoster/MyvideoDe.py b/pyload/plugins/hoster/MyvideoDe.py index 556444708..bf96014f9 100644 --- a/pyload/plugins/hoster/MyvideoDe.py +++ b/pyload/plugins/hoster/MyvideoDe.py @@ -14,8 +14,7 @@ class MyvideoDe(Hoster): __pattern__ = r'http://(?:www\.)?myvideo.de/watch/' __description__ = """Myvideo.de hoster plugin""" - __author_name__ = "spoob" - __author_mail__ = "spoob@pyload.org" + __authors__ = [("spoob", "spoob@pyload.org")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/NarodRu.py b/pyload/plugins/hoster/NarodRu.py index 6fa16362d..574135192 100644 --- a/pyload/plugins/hoster/NarodRu.py +++ b/pyload/plugins/hoster/NarodRu.py @@ -15,8 +15,8 @@ class NarodRu(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<dt class="name">(?:<[^<]*>)*(?P<N>[^<]+)</dt>' FILE_SIZE_PATTERN = r'<dd class="size">(?P<S>\d[^<]*)</dd>' diff --git a/pyload/plugins/hoster/NetloadIn.py b/pyload/plugins/hoster/NetloadIn.py index 187d2a504..d6b1b77e2 100644 --- a/pyload/plugins/hoster/NetloadIn.py +++ b/pyload/plugins/hoster/NetloadIn.py @@ -57,8 +57,9 @@ class NetloadIn(Hoster): __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") + __authors__ = [("spoob", "spoob@pyload.org"), + ("RaNaN", "ranan@pyload.org"), + ("Gregy", "gregy@gregy.cz")] def setup(self): diff --git a/pyload/plugins/hoster/NosuploadCom.py b/pyload/plugins/hoster/NosuploadCom.py index f620238db..e761a0504 100644 --- a/pyload/plugins/hoster/NosuploadCom.py +++ b/pyload/plugins/hoster/NosuploadCom.py @@ -13,8 +13,8 @@ class NosuploadCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?nosupload\.com/\?d=\w{12}' __description__ = """Nosupload.com hoster plugin""" - __author_name__ = "igel" - __author_mail__ = "igelkun@myopera.com" + __authors__ = [("igel", "igelkun@myopera.com")] + HOSTER_NAME = "nosupload.com" diff --git a/pyload/plugins/hoster/NovafileCom.py b/pyload/plugins/hoster/NovafileCom.py index bd7b6ec65..db5a769b3 100644 --- a/pyload/plugins/hoster/NovafileCom.py +++ b/pyload/plugins/hoster/NovafileCom.py @@ -15,8 +15,8 @@ class NovafileCom(XFSPHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] HOSTER_NAME = "novafile.com" diff --git a/pyload/plugins/hoster/NowDownloadEu.py b/pyload/plugins/hoster/NowDownloadEu.py index 2b0dca907..11b5ea5fa 100644 --- a/pyload/plugins/hoster/NowDownloadEu.py +++ b/pyload/plugins/hoster/NowDownloadEu.py @@ -14,8 +14,9 @@ class NowDownloadEu(SimpleHoster): __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") + __authors__ = [("godofdream", "soilfiction@gmail.com"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_INFO_PATTERN = r'Downloading</span> <br> (?P<N>.*) (?P<S>[0-9,.]+) (?P<U>[kKMG])i?B </h4>' OFFLINE_PATTERN = r'(This file does not exist!)' diff --git a/pyload/plugins/hoster/OboomCom.py b/pyload/plugins/hoster/OboomCom.py index e9496b469..5ade1bd8b 100644 --- a/pyload/plugins/hoster/OboomCom.py +++ b/pyload/plugins/hoster/OboomCom.py @@ -13,13 +13,12 @@ from pyload.plugins.internal.CaptchaService import ReCaptcha class OboomCom(Hoster): __name__ = "OboomCom" __type__ = "hoster" - __version__ = "0.2" + __version__ = "0.3" __pattern__ = r'https?://(?:www\.)?oboom\.com/(#(id=|/)?)?(?P<ID>\w{8})' __description__ = """oboom.com hoster plugin""" - __author_name__ = "stanley" - __author_mail__ = "stanley.foerster@gmail.com" + __authors__ = [("stanley", "stanley.foerster@gmail.com")] RECAPTCHA_KEY = "6LdqpO0SAAAAAJGHXo63HyalP7H4qlRs_vff0kJX" @@ -89,6 +88,7 @@ class OboomCom(Hoster): self.setWait(30) self.wait() break + elif result[0] == 400: if result[1] == "incorrect-captcha-sol": self.invalidCaptcha() @@ -96,6 +96,7 @@ class OboomCom(Hoster): self.invalidCaptcha() elif result[1] == "forbidden": self.retry(5, 15 * 60, "Service unavailable") + elif result[0] == 403: if result[1] == -1: # another download is running self.setWait(15 * 60) @@ -125,7 +126,7 @@ class OboomCom(Hoster): def getDownloadTicket(self): - apiUrl = "https://api.oboom.com/1.0/dl" + apiUrl = "https://api.oboom.com/1/dl" params = {"item": self.fileId, "http_errors": 0} if self.premium: params['token'] = self.sessionToken @@ -137,5 +138,7 @@ class OboomCom(Hoster): if result[0] == 200: self.downloadDomain = result[1] self.downloadTicket = result[2] + elif result[0] == 421: + self.retry(wait_time=result[2] + 60, reason="Connection limit exceeded") else: self.fail("Could not retrieve download ticket. Error code %s" % result[0]) diff --git a/pyload/plugins/hoster/OneFichierCom.py b/pyload/plugins/hoster/OneFichierCom.py index cd304a86c..72d3917a0 100644 --- a/pyload/plugins/hoster/OneFichierCom.py +++ b/pyload/plugins/hoster/OneFichierCom.py @@ -13,9 +13,12 @@ class OneFichierCom(SimpleHoster): __pattern__ = r'https?://(?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", - "imclem on github", "l.stickell@yahoo.it", "elrick69[AT]rocketmail[DOT]com") + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es"), + ("the-razer", "daniel_ AT gmx DOT net"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("imclem", None), + ("stickell", "l.stickell@yahoo.it"), + ("Elrick69", "elrick69[AT]rocketmail[DOT]com")] FILE_NAME_PATTERN = r'>Filename :</th>\s*<td>(?P<N>.+?)<' diff --git a/pyload/plugins/hoster/OverLoadMe.py b/pyload/plugins/hoster/OverLoadMe.py index 180e2406e..b46421d8a 100644 --- a/pyload/plugins/hoster/OverLoadMe.py +++ b/pyload/plugins/hoster/OverLoadMe.py @@ -18,8 +18,7 @@ class OverLoadMe(Hoster): __pattern__ = r'https?://.*overload\.me.*' __description__ = """Over-Load.me hoster plugin""" - __author_name__ = "marley" - __author_mail__ = "marley@over-load.me" + __authors__ = [("marley", "marley@over-load.me")] def getFilename(self, url): diff --git a/pyload/plugins/hoster/PandaPlanet.py b/pyload/plugins/hoster/PandaPlanet.py deleted file mode 100644 index 5fd565618..000000000 --- a/pyload/plugins/hoster/PandaPlanet.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Test links: -# test.bin - 214 B - http://pandapla.net/pew1cz3ot586 -# BigBuckBunny_320x180.mp4 - 61.7 Mb - http://pandapla.net/tz0rgjfyyoh7 - -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo - - -class PandaPlanet(XFSPHoster): - __name__ = "PandaPlanet" - __type__ = "hoster" - __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" - - HOSTER_NAME = "pandapla.net" - - FILE_SIZE_PATTERN = r'File Size:</b>\s*</td>\s*<td[^>]*>(?P<S>[^<]+)</td>\s*</tr>' - FILE_NAME_PATTERN = r'File Name:</b>\s*</td>\s*<td[^>]*>(?P<N>[^<]+)</td>\s*</tr>' - LINK_PATTERN = r'(http://([^/]*?%s|\d+\.\d+\.\d+\.\d+)(:\d+)?(/d/|(?:/files)?/\d+/\w+/)[^"\'<]+\/(?!video\.mp4)[^"\'<]+)' % HOSTER_NAME - - -getInfo = create_getInfo(PandaPlanet) diff --git a/pyload/plugins/hoster/PornhostCom.py b/pyload/plugins/hoster/PornhostCom.py index 621f52702..b8abb2b8a 100644 --- a/pyload/plugins/hoster/PornhostCom.py +++ b/pyload/plugins/hoster/PornhostCom.py @@ -13,8 +13,7 @@ class PornhostCom(Hoster): __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" + __authors__ = [("jeix", "jeix@hasnomail.de")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/PornhubCom.py b/pyload/plugins/hoster/PornhubCom.py index 49f519dc6..8a5fd9075 100644 --- a/pyload/plugins/hoster/PornhubCom.py +++ b/pyload/plugins/hoster/PornhubCom.py @@ -13,8 +13,7 @@ class PornhubCom(Hoster): __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" + __authors__ = [("jeix", "jeix@hasnomail.de")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/PotloadCom.py b/pyload/plugins/hoster/PotloadCom.py index f06798dd7..ce5f832a1 100644 --- a/pyload/plugins/hoster/PotloadCom.py +++ b/pyload/plugins/hoster/PotloadCom.py @@ -1,22 +1,17 @@ # -*- coding: utf-8 -*- -from pyload.plugins.internal.XFSPHoster import XFSPHoster, create_getInfo +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -class PotloadCom(XFSPHoster): +class PotloadCom(DeadHoster): __name__ = "PotloadCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?potload\.com/\w{12}' __description__ = """Potload.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" - - HOSTER_NAME = "potload.com" - - FILE_INFO_PATTERN = r'<h[1-6]>(?P<N>.+) \((?P<S>\d+) (?P<U>\w+)\)</h' + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(PotloadCom) diff --git a/pyload/plugins/hoster/PremiumTo.py b/pyload/plugins/hoster/PremiumTo.py index ee7da65b2..b1efdcc50 100644 --- a/pyload/plugins/hoster/PremiumTo.py +++ b/pyload/plugins/hoster/PremiumTo.py @@ -16,8 +16,9 @@ class PremiumTo(Hoster): __pattern__ = r'https?://(?: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") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it")] def setup(self): diff --git a/pyload/plugins/hoster/PremiumizeMe.py b/pyload/plugins/hoster/PremiumizeMe.py index cf08e810f..abd4cf698 100644 --- a/pyload/plugins/hoster/PremiumizeMe.py +++ b/pyload/plugins/hoster/PremiumizeMe.py @@ -12,8 +12,7 @@ class PremiumizeMe(Hoster): __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" + __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/PromptfileCom.py b/pyload/plugins/hoster/PromptfileCom.py index 4d2ac8ad6..12cb41290 100644 --- a/pyload/plugins/hoster/PromptfileCom.py +++ b/pyload/plugins/hoster/PromptfileCom.py @@ -13,8 +13,8 @@ class PromptfileCom(SimpleHoster): __pattern__ = r'https?://(?:www\.)?promptfile\.com/' __description__ = """Promptfile.com hoster plugin""" - __author_name__ = "igel" - __author_mail__ = "igelkun@myopera.com" + __authors__ = [("igel", "igelkun@myopera.com")] + FILE_INFO_PATTERN = r'<span style="[^"]*" title="[^"]*">(?P<N>.*?) \((?P<S>[\d.]+) (?P<U>\w+)\)</span>' OFFLINE_PATTERN = r'<span style="[^"]*" title="File Not Found">File Not Found</span>' diff --git a/pyload/plugins/hoster/QuickshareCz.py b/pyload/plugins/hoster/QuickshareCz.py index 4082fab44..4e42c7c85 100644 --- a/pyload/plugins/hoster/QuickshareCz.py +++ b/pyload/plugins/hoster/QuickshareCz.py @@ -15,8 +15,8 @@ class QuickshareCz(SimpleHoster): __pattern__ = r'http://(?:[^/]*\.)?quickshare.cz/stahnout-soubor/.*' __description__ = """Quickshare.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<th width="145px">Název:</th>\s*<td style="word-wrap:break-word;">(?P<N>[^<]+)</td>' FILE_SIZE_PATTERN = r'<th>Velikost:</th>\s*<td>(?P<S>[0-9.]+) (?P<U>[kKMG])i?B</td>' diff --git a/pyload/plugins/hoster/RPNetBiz.py b/pyload/plugins/hoster/RPNetBiz.py index 5f213b330..b4982dd8d 100644 --- a/pyload/plugins/hoster/RPNetBiz.py +++ b/pyload/plugins/hoster/RPNetBiz.py @@ -14,8 +14,7 @@ class RPNetBiz(Hoster): __description__ = """RPNet.biz hoster plugin""" __pattern__ = r'https?://.*rpnet\.biz' - __author_name__ = "Dman" - __author_mail__ = "dmanugm@gmail.com" + __authors__ = [("Dman", "dmanugm@gmail.com")] def setup(self): diff --git a/pyload/plugins/hoster/RapidgatorNet.py b/pyload/plugins/hoster/RapidgatorNet.py index 1d84b2245..572b3e121 100644 --- a/pyload/plugins/hoster/RapidgatorNet.py +++ b/pyload/plugins/hoster/RapidgatorNet.py @@ -19,8 +19,11 @@ class RapidgatorNet(SimpleHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("chrox", None), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] + API_URL = "http://rapidgator.net/api/file" diff --git a/pyload/plugins/hoster/RapidshareCom.py b/pyload/plugins/hoster/RapidshareCom.py index 37547443e..afbab10c9 100644 --- a/pyload/plugins/hoster/RapidshareCom.py +++ b/pyload/plugins/hoster/RapidshareCom.py @@ -52,8 +52,9 @@ class RapidshareCom(Hoster): "Preferred Server", "None")] __description__ = """Rapidshare.com hoster plugin""" - __author_name__ = ("spoob", "RaNaN", "mkaay") - __author_mail__ = ("spoob@pyload.org", "ranan@pyload.org", "mkaay@mkaay.de") + __authors__ = [("spoob", "spoob@pyload.org"), + ("RaNaN", "ranan@pyload.org"), + ("mkaay", "mkaay@mkaay.de")] def setup(self): diff --git a/pyload/plugins/hoster/RarefileNet.py b/pyload/plugins/hoster/RarefileNet.py index cbf3639b7..c59f27d07 100644 --- a/pyload/plugins/hoster/RarefileNet.py +++ b/pyload/plugins/hoster/RarefileNet.py @@ -14,8 +14,7 @@ class RarefileNet(XFSPHoster): __pattern__ = r'http://(?:www\.)?rarefile\.net/\w{12}' __description__ = """Rarefile.net hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] HOSTER_NAME = "rarefile.net" diff --git a/pyload/plugins/hoster/RealdebridCom.py b/pyload/plugins/hoster/RealdebridCom.py index bf7f91e21..09c8d7f7e 100644 --- a/pyload/plugins/hoster/RealdebridCom.py +++ b/pyload/plugins/hoster/RealdebridCom.py @@ -19,8 +19,7 @@ class RealdebridCom(Hoster): __pattern__ = r'https?://(?:[^/]*\.)?real-debrid\..*' __description__ = """Real-Debrid.com hoster plugin""" - __author_name__ = "Devirex Hazzard" - __author_mail__ = "naibaf_11@yahoo.de" + __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] def getFilename(self, url): diff --git a/pyload/plugins/hoster/RedtubeCom.py b/pyload/plugins/hoster/RedtubeCom.py index 814fe4ad3..d874f10c9 100644 --- a/pyload/plugins/hoster/RedtubeCom.py +++ b/pyload/plugins/hoster/RedtubeCom.py @@ -14,8 +14,7 @@ class RedtubeCom(Hoster): __pattern__ = r'http://(?:www\.)?redtube\.com/\d+' __description__ = """Redtube.com hoster plugin""" - __author_name__ = "jeix" - __author_mail__ = "jeix@hasnomail.de" + __authors__ = [("jeix", "jeix@hasnomail.de")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/RehostTo.py b/pyload/plugins/hoster/RehostTo.py index 9b708a9d5..0e6af0edb 100644 --- a/pyload/plugins/hoster/RehostTo.py +++ b/pyload/plugins/hoster/RehostTo.py @@ -13,8 +13,7 @@ class RehostTo(Hoster): __pattern__ = r'https?://.*rehost.to\..*' __description__ = """Rehost.com hoster plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def getFilename(self, url): diff --git a/pyload/plugins/hoster/RemixshareCom.py b/pyload/plugins/hoster/RemixshareCom.py index dfd7db5a0..41bba2569 100644 --- a/pyload/plugins/hoster/RemixshareCom.py +++ b/pyload/plugins/hoster/RemixshareCom.py @@ -21,8 +21,9 @@ class RemixshareCom(SimpleHoster): __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") + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_INFO_PATTERN = r'title=\'.+?\'>(?P<N>.+?)</span><span class=\'light2\'> \((?P<S>\d+) (?P<U>\w+)\)<' OFFLINE_PATTERN = r'<h1>Ooops!<' diff --git a/pyload/plugins/hoster/RgHostNet.py b/pyload/plugins/hoster/RgHostNet.py index 0240f3a05..5db278bbf 100644 --- a/pyload/plugins/hoster/RgHostNet.py +++ b/pyload/plugins/hoster/RgHostNet.py @@ -13,8 +13,8 @@ class RgHostNet(SimpleHoster): __pattern__ = r'http://(?:www\.)?rghost\.net/\d+(?:r=\d+)?' __description__ = """RgHost.net hoster plugin""" - __author_name__ = "z00nx" - __author_mail__ = "z00nx0@gmail.com" + __authors__ = [("z00nx", "z00nx0@gmail.com")] + FILE_INFO_PATTERN = r'<h1>\s+(<a[^>]+>)?(?P<N>[^<]+)(</a>)?\s+<small[^>]+>\s+\((?P<S>[^)]+)\)\s+</small>\s+</h1>' OFFLINE_PATTERN = r'File is deleted|this page is not found' diff --git a/pyload/plugins/hoster/RyushareCom.py b/pyload/plugins/hoster/RyushareCom.py index 3117238e8..6c08e5cd7 100644 --- a/pyload/plugins/hoster/RyushareCom.py +++ b/pyload/plugins/hoster/RyushareCom.py @@ -17,8 +17,10 @@ class RyushareCom(XFSPHoster): __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") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it"), + ("quareevo", "quareevo@arcor.de")] + HOSTER_NAME = "ryushare.com" diff --git a/pyload/plugins/hoster/SecureUploadEu.py b/pyload/plugins/hoster/SecureUploadEu.py index 90c80e336..d6d0207e8 100644 --- a/pyload/plugins/hoster/SecureUploadEu.py +++ b/pyload/plugins/hoster/SecureUploadEu.py @@ -11,8 +11,7 @@ class SecureUploadEu(XFSPHoster): __pattern__ = r'https?://(?:www\.)?secureupload\.eu/\w{12}' __description__ = """SecureUpload.eu hoster plugin""" - __author_name__ = "z00nx" - __author_mail__ = "z00nx0@gmail.com" + __authors__ = [("z00nx", "z00nx0@gmail.com")] HOSTER_NAME = "secureupload.eu" diff --git a/pyload/plugins/hoster/SendmywayCom.py b/pyload/plugins/hoster/SendmywayCom.py index e106de9bd..71cdf804d 100644 --- a/pyload/plugins/hoster/SendmywayCom.py +++ b/pyload/plugins/hoster/SendmywayCom.py @@ -11,8 +11,7 @@ class SendmywayCom(XFSPHoster): __pattern__ = r'http://(?:www\.)?sendmyway\.com/\w{12}' __description__ = """SendMyWay hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] HOSTER_NAME = "sendmyway.com" diff --git a/pyload/plugins/hoster/SendspaceCom.py b/pyload/plugins/hoster/SendspaceCom.py index 7a0908c8d..eb7fad5cd 100644 --- a/pyload/plugins/hoster/SendspaceCom.py +++ b/pyload/plugins/hoster/SendspaceCom.py @@ -13,8 +13,8 @@ class SendspaceCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?sendspace.com/file/.*' __description__ = """Sendspace.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<h2 class="bgray">\s*<(?:b|strong)>(?P<N>[^<]+)</' FILE_SIZE_PATTERN = r'<div class="file_description reverse margin_center">\s*<b>File Size:</b>\s*(?P<S>[0-9.]+)(?P<U>[kKMG])i?B\s*</div>' diff --git a/pyload/plugins/hoster/Share4webCom.py b/pyload/plugins/hoster/Share4webCom.py index a3d92d9f4..ac8623464 100644 --- a/pyload/plugins/hoster/Share4webCom.py +++ b/pyload/plugins/hoster/Share4webCom.py @@ -12,8 +12,8 @@ class Share4webCom(UnibytesCom): __pattern__ = r'http://(?:www\.)?share4web\.com/get/\w+' __description__ = """Share4web.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + HOSTER_NAME = "share4web.com" diff --git a/pyload/plugins/hoster/Share76Com.py b/pyload/plugins/hoster/Share76Com.py index 2cd736992..ebcec3e0c 100644 --- a/pyload/plugins/hoster/Share76Com.py +++ b/pyload/plugins/hoster/Share76Com.py @@ -11,8 +11,7 @@ class Share76Com(DeadHoster): __pattern__ = r'http://(?:www\.)?share76.com/\w{12}' __description__ = """Share76.com hoster plugin""" - __author_name__ = "me" - __author_mail__ = None + __authors__ = [] getInfo = create_getInfo(Share76Com) diff --git a/pyload/plugins/hoster/ShareFilesCo.py b/pyload/plugins/hoster/ShareFilesCo.py index b75eb0740..5b7d7a863 100644 --- a/pyload/plugins/hoster/ShareFilesCo.py +++ b/pyload/plugins/hoster/ShareFilesCo.py @@ -11,8 +11,7 @@ class ShareFilesCo(DeadHoster): __pattern__ = r'http://(?:www\.)?sharefiles\.co/\w{12}' __description__ = """Sharefiles.co hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(ShareFilesCo) diff --git a/pyload/plugins/hoster/ShareRapidCom.py b/pyload/plugins/hoster/ShareRapidCom.py index d89be1ec4..0a56fa54d 100644 --- a/pyload/plugins/hoster/ShareRapidCom.py +++ b/pyload/plugins/hoster/ShareRapidCom.py @@ -27,8 +27,11 @@ class ShareRapidCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/soubor/\d+/.+' __description__ = """MegaRapid.cz hoster plugin""" - __author_name__ = ("MikyWoW", "zoidberg", "stickell", "Walter Purcaro") - __author_mail__ = ("mikywow@seznam.cz", "zoidberg@mujmail.cz", "l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("MikyWoW", "mikywow@seznam.cz"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_NAME_PATTERN = r'<h1[^>]*><span[^>]*>(?:<a[^>]*>)?(?P<N>[^<]+)' FILE_SIZE_PATTERN = r'<td class="i">Velikost:</td>\s*<td class="h"><strong>\s*(?P<S>[0-9.]+) (?P<U>[kKMG])i?B</strong></td>' diff --git a/pyload/plugins/hoster/SharebeesCom.py b/pyload/plugins/hoster/SharebeesCom.py index 287dbf59c..f8892b441 100644 --- a/pyload/plugins/hoster/SharebeesCom.py +++ b/pyload/plugins/hoster/SharebeesCom.py @@ -11,8 +11,7 @@ class SharebeesCom(DeadHoster): __pattern__ = r'http://(?:www\.)?sharebees.com/\w{12}' __description__ = """ShareBees hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(SharebeesCom) diff --git a/pyload/plugins/hoster/ShareonlineBiz.py b/pyload/plugins/hoster/ShareonlineBiz.py index 15898e797..d48d76018 100644 --- a/pyload/plugins/hoster/ShareonlineBiz.py +++ b/pyload/plugins/hoster/ShareonlineBiz.py @@ -44,8 +44,11 @@ class ShareonlineBiz(Hoster): __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") + __authors__ = [("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] + ERROR_INFO_PATTERN = r'<p class="b">Information:</p>\s*<div>\s*<strong>(.*?)</strong>' diff --git a/pyload/plugins/hoster/ShareplaceCom.py b/pyload/plugins/hoster/ShareplaceCom.py index d5ef86ae2..f4ade5760 100644 --- a/pyload/plugins/hoster/ShareplaceCom.py +++ b/pyload/plugins/hoster/ShareplaceCom.py @@ -15,8 +15,7 @@ class ShareplaceCom(Hoster): __pattern__ = r'(http://)?(?:www\.)?shareplace\.(com|org)/\?[a-zA-Z0-9]+' __description__ = """Shareplace.com hoster plugin""" - __author_name__ = "ACCakut" - __author_mail__ = None + __authors__ = [("ACCakut", None)] def process(self, pyfile): diff --git a/pyload/plugins/hoster/ShragleCom.py b/pyload/plugins/hoster/ShragleCom.py index 0ec93fcdc..519434a4b 100644 --- a/pyload/plugins/hoster/ShragleCom.py +++ b/pyload/plugins/hoster/ShragleCom.py @@ -11,8 +11,8 @@ class ShragleCom(DeadHoster): __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") + __authors__ = [("RaNaN", "RaNaN@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(ShragleCom) diff --git a/pyload/plugins/hoster/SimplyPremiumCom.py b/pyload/plugins/hoster/SimplyPremiumCom.py index 9a460b13e..be863e8aa 100644 --- a/pyload/plugins/hoster/SimplyPremiumCom.py +++ b/pyload/plugins/hoster/SimplyPremiumCom.py @@ -16,8 +16,7 @@ class SimplyPremiumCom(Hoster): __pattern__ = r'https?://.*(simply-premium)\.com' __description__ = """Simply-Premium.com hoster plugin""" - __author_name__ = "EvolutionClip" - __author_mail__ = "evolutionclip@live.de" + __authors__ = [("EvolutionClip", "evolutionclip@live.de")] def setup(self): diff --git a/pyload/plugins/hoster/SimplydebridCom.py b/pyload/plugins/hoster/SimplydebridCom.py index 66f7149b4..7c6e6bfb3 100644 --- a/pyload/plugins/hoster/SimplydebridCom.py +++ b/pyload/plugins/hoster/SimplydebridCom.py @@ -13,8 +13,7 @@ class SimplydebridCom(Hoster): __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" + __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] def setup(self): diff --git a/pyload/plugins/hoster/SockshareCom.py b/pyload/plugins/hoster/SockshareCom.py index 36e03a5ae..766c861a1 100644 --- a/pyload/plugins/hoster/SockshareCom.py +++ b/pyload/plugins/hoster/SockshareCom.py @@ -16,8 +16,10 @@ class SockshareCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?sockshare\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' __description__ = """Sockshare.com hoster plugin""" - __author_name__ = ("jeix", "stickell", "Walter Purcaro") - __author_mail__ = ("jeix@hasnomail.de", "l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] + FILE_INFO_PATTERN = r'site-content">\s*<h1>(?P<N>.+)<strong>\( (?P<S>[^)]+) \)</strong></h1>' OFFLINE_PATTERN = r'>This file doesn\'t exist, or has been removed.<' diff --git a/pyload/plugins/hoster/SoundcloudCom.py b/pyload/plugins/hoster/SoundcloudCom.py index bf8555439..d91ec03e5 100644 --- a/pyload/plugins/hoster/SoundcloudCom.py +++ b/pyload/plugins/hoster/SoundcloudCom.py @@ -14,8 +14,7 @@ class SoundcloudCom(Hoster): __pattern__ = r'https?://(?:www\.)?soundcloud\.com/(?P<UID>.*?)/(?P<SID>.*)' __description__ = """SoundCloud.com hoster plugin""" - __author_name__ = "Peekayy" - __author_mail__ = "peekayy.dev@gmail.com" + __authors__ = [("Peekayy", "peekayy.dev@gmail.com")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/SpeedLoadOrg.py b/pyload/plugins/hoster/SpeedLoadOrg.py index 74753b029..cefde2afe 100644 --- a/pyload/plugins/hoster/SpeedLoadOrg.py +++ b/pyload/plugins/hoster/SpeedLoadOrg.py @@ -11,8 +11,7 @@ class SpeedLoadOrg(DeadHoster): __pattern__ = r'http://(?:www\.)?speedload\.org/(?P<ID>\w+)' __description__ = """Speedload.org hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] getInfo = create_getInfo(SpeedLoadOrg) diff --git a/pyload/plugins/hoster/SpeedfileCz.py b/pyload/plugins/hoster/SpeedfileCz.py index 85df88d85..5919f44f7 100644 --- a/pyload/plugins/hoster/SpeedfileCz.py +++ b/pyload/plugins/hoster/SpeedfileCz.py @@ -11,8 +11,7 @@ class SpeedfileCz(DeadHoster): __pattern__ = r'http://(?:www\.)?speedfile.cz/.*' __description__ = """Speedfile.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(SpeedfileCz) diff --git a/pyload/plugins/hoster/SpeedyshareCom.py b/pyload/plugins/hoster/SpeedyshareCom.py index 5dd29dad0..edf935d59 100644 --- a/pyload/plugins/hoster/SpeedyshareCom.py +++ b/pyload/plugins/hoster/SpeedyshareCom.py @@ -18,8 +18,7 @@ class SpeedyshareCom(SimpleHoster): __pattern__ = r"https?://(?:www\.)?(speedyshare\.com|speedy\.sh)/\w+" __description__ = """Speedyshare.com hoster plugin""" - __author_name__ = "zapp-brannigan" - __author_mail__ = "fuerst.reinje@web.de" + __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")] FILE_NAME_PATTERN = r'class=downloadfilename>(?P<N>.*)</span></td>' @@ -43,8 +42,8 @@ class SpeedyshareCom(SimpleHoster): dl_link = urljoin("http://www.speedyshare.com", m.group(1)) self.download(dl_link, disposition=True) - check = self.checkDownload({'is_html': re.compile("html")}) - if check == "is_html": + check = self.checkDownload({'html': re.compile("html")}) + if check == "html": self.parseError("Downloaded file is an html file") diff --git a/pyload/plugins/hoster/StreamCz.py b/pyload/plugins/hoster/StreamCz.py index 27325e9f1..0a70e3c48 100644 --- a/pyload/plugins/hoster/StreamCz.py +++ b/pyload/plugins/hoster/StreamCz.py @@ -28,8 +28,8 @@ class StreamCz(Hoster): __pattern__ = r'https?://(?:www\.)?stream\.cz/[^/]+/\d+.*' __description__ = """Stream.cz hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<link rel="video_src" href="http://www.stream.cz/\w+/(\d+)-([^"]+)" />' OFFLINE_PATTERN = r'<h1 class="commonTitle">Str.nku nebylo mo.n. nal.zt \(404\)</h1>' diff --git a/pyload/plugins/hoster/StreamcloudEu.py b/pyload/plugins/hoster/StreamcloudEu.py index eef5cbb68..82ec94fbd 100644 --- a/pyload/plugins/hoster/StreamcloudEu.py +++ b/pyload/plugins/hoster/StreamcloudEu.py @@ -16,8 +16,7 @@ class StreamcloudEu(XFSPHoster): __pattern__ = r'http://(?:www\.)?streamcloud\.eu/\w{12}' __description__ = """Streamcloud.eu hoster plugin""" - __author_name__ = "seoester" - __author_mail__ = "seoester@googlemail.com" + __authors__ = [("seoester", "seoester@googlemail.com")] HOSTER_NAME = "streamcloud.eu" diff --git a/pyload/plugins/hoster/TurbobitNet.py b/pyload/plugins/hoster/TurbobitNet.py index cc9cf16d3..00d95366c 100644 --- a/pyload/plugins/hoster/TurbobitNet.py +++ b/pyload/plugins/hoster/TurbobitNet.py @@ -22,8 +22,8 @@ class TurbobitNet(SimpleHoster): __pattern__ = r'http://(?:www\.)?turbobit\.net/(?:download/free/)?(?P<ID>\w+)' __description__ = """Turbobit.net hoster plugin""" - __author_name__ = ("zoidberg", "prOq") - __author_mail__ = ("zoidberg@mujmail.cz", None) + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("prOq", None)] FILE_NAME_PATTERN = r'id="file-title">(?P<N>.+?)<' diff --git a/pyload/plugins/hoster/TurbouploadCom.py b/pyload/plugins/hoster/TurbouploadCom.py index eb5978145..ce16ebed8 100644 --- a/pyload/plugins/hoster/TurbouploadCom.py +++ b/pyload/plugins/hoster/TurbouploadCom.py @@ -11,8 +11,7 @@ class TurbouploadCom(DeadHoster): __pattern__ = r'http://(?:www\.)?turboupload.com/(\w+).*' __description__ = """Turboupload.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(TurbouploadCom) diff --git a/pyload/plugins/hoster/TusfilesNet.py b/pyload/plugins/hoster/TusfilesNet.py index efe3d6de9..f10501250 100644 --- a/pyload/plugins/hoster/TusfilesNet.py +++ b/pyload/plugins/hoster/TusfilesNet.py @@ -11,8 +11,8 @@ class TusfilesNet(XFSPHoster): __pattern__ = r'https?://(?:www\.)?tusfiles\.net/\w{12}' __description__ = """Tusfiles.net hoster plugin""" - __author_name__ = ("Walter Purcaro", "guidobelix") - __author_mail__ = ("vuolter@gmail.com", "guidobelix@hotmail.it") + __authors__ = [("Walter Purcaro", "vuolter@gmail.com"), + ("guidobelix", "guidobelix@hotmail.it")] HOSTER_NAME = "tusfiles.net" diff --git a/pyload/plugins/hoster/TwoSharedCom.py b/pyload/plugins/hoster/TwoSharedCom.py index 108d31c6f..86f02f0b6 100644 --- a/pyload/plugins/hoster/TwoSharedCom.py +++ b/pyload/plugins/hoster/TwoSharedCom.py @@ -13,8 +13,8 @@ class TwoSharedCom(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<h1>(?P<N>.*)</h1>' FILE_SIZE_PATTERN = r'<span class="dtitle">File size:</span>\s*(?P<S>[0-9,.]+) (?P<U>[kKMG])i?B' diff --git a/pyload/plugins/hoster/UlozTo.py b/pyload/plugins/hoster/UlozTo.py index b33c5dd5f..3fecbd672 100644 --- a/pyload/plugins/hoster/UlozTo.py +++ b/pyload/plugins/hoster/UlozTo.py @@ -20,8 +20,8 @@ class UlozTo(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<p>File <strong>(?P<N>[^<]+)</strong> is password protected</p>' FILE_NAME_PATTERN = r'<title>(?P<N>[^<]+) \| Uloz.to</title>' diff --git a/pyload/plugins/hoster/UloziskoSk.py b/pyload/plugins/hoster/UloziskoSk.py index 5bfb2fc77..e68e2686e 100644 --- a/pyload/plugins/hoster/UloziskoSk.py +++ b/pyload/plugins/hoster/UloziskoSk.py @@ -13,8 +13,8 @@ class UloziskoSk(SimpleHoster): __pattern__ = r'http://(?:www\.)?ulozisko.sk/.*' __description__ = """Ulozisko.sk hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<div class="down1">(?P<N>[^<]+)</div>' FILE_SIZE_PATTERN = ur'VeÄŸkosÅ¥ súboru: <strong>(?P<S>[0-9.]+) (?P<U>[kKMG])i?B</strong><br />' diff --git a/pyload/plugins/hoster/UnibytesCom.py b/pyload/plugins/hoster/UnibytesCom.py index 6adfdbae2..326310104 100644 --- a/pyload/plugins/hoster/UnibytesCom.py +++ b/pyload/plugins/hoster/UnibytesCom.py @@ -15,8 +15,8 @@ class UnibytesCom(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_INFO_PATTERN = r'<span[^>]*?id="fileName"[^>]*>(?P<N>[^>]+)</span>\s*\((?P<S>\d.*?)\)' diff --git a/pyload/plugins/hoster/UnrestrictLi.py b/pyload/plugins/hoster/UnrestrictLi.py index c0d6ddaaa..18d363788 100644 --- a/pyload/plugins/hoster/UnrestrictLi.py +++ b/pyload/plugins/hoster/UnrestrictLi.py @@ -26,8 +26,7 @@ class UnrestrictLi(Hoster): __pattern__ = r'https?://(?:[^/]*\.)?(unrestrict|unr)\.li' __description__ = """Unrestrict.li hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def setup(self): diff --git a/pyload/plugins/hoster/UploadStationCom.py b/pyload/plugins/hoster/UploadStationCom.py index 4671b2dc5..eaeba3937 100644 --- a/pyload/plugins/hoster/UploadStationCom.py +++ b/pyload/plugins/hoster/UploadStationCom.py @@ -11,8 +11,8 @@ class UploadStationCom(DeadHoster): __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") + __authors__ = [("fragonib", "fragonib[AT]yahoo[DOT]es"), + ("zoidberg", "zoidberg@mujmail.cz")] getInfo = create_getInfo(UploadStationCom) diff --git a/pyload/plugins/hoster/UploadedTo.py b/pyload/plugins/hoster/UploadedTo.py index a72a0c1cb..f02b9951d 100644 --- a/pyload/plugins/hoster/UploadedTo.py +++ b/pyload/plugins/hoster/UploadedTo.py @@ -99,9 +99,12 @@ class UploadedTo(Hoster): __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", - "netpok@gmail.com", "l.stickell@yahoo.it") + __authors__ = [("spoob", "spoob@pyload.org"), + ("mkaay", "mkaay@mkaay.de"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("netpok", "netpok@gmail.com"), + ("stickell", "l.stickell@yahoo.it")] + FILE_INFO_PATTERN = r'<a href="file/(?P<ID>\w+)" id="filename">(?P<N>[^<]+)</a> \s*<small[^>]*>(?P<S>[^<]+)</small>' OFFLINE_PATTERN = r'<small class="cL">Error: 404</small>' diff --git a/pyload/plugins/hoster/UploadheroCom.py b/pyload/plugins/hoster/UploadheroCom.py index 63155a23e..1220fd919 100644 --- a/pyload/plugins/hoster/UploadheroCom.py +++ b/pyload/plugins/hoster/UploadheroCom.py @@ -16,8 +16,9 @@ class UploadheroCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?uploadhero\.com?/dl/\w+' __description__ = """UploadHero.co plugin""" - __author_name__ = ("mcmyst", "zoidberg") - __author_mail__ = ("mcmyst@hotmail.fr", "zoidberg@mujmail.cz") + __authors__ = [("mcmyst", "mcmyst@hotmail.fr"), + ("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'<div class="nom_de_fichier">(?P<N>.*?)</div>' FILE_SIZE_PATTERN = r'Taille du fichier : </span><strong>(?P<S>.*?)</strong>' diff --git a/pyload/plugins/hoster/UploadingCom.py b/pyload/plugins/hoster/UploadingCom.py index 1df258c4f..9938d4829 100644 --- a/pyload/plugins/hoster/UploadingCom.py +++ b/pyload/plugins/hoster/UploadingCom.py @@ -16,8 +16,9 @@ class UploadingCom(SimpleHoster): __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") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("mkaay", "mkaay@mkaay.de"), + ("zoidberg", "zoidberg@mujmail.cz")] FILE_NAME_PATTERN = r'id="file_title">(?P<N>.+)</' diff --git a/pyload/plugins/hoster/UpstoreNet.py b/pyload/plugins/hoster/UpstoreNet.py index e1ec93b99..2f05d6ffa 100644 --- a/pyload/plugins/hoster/UpstoreNet.py +++ b/pyload/plugins/hoster/UpstoreNet.py @@ -14,8 +14,8 @@ class UpstoreNet(SimpleHoster): __pattern__ = r'https?://(?:www\.)?upstore\.net/' __description__ = """Upstore.Net File Download Hoster""" - __author_name__ = "igel" - __author_mail__ = "igelkun@myopera.com" + __authors__ = [("igel", "igelkun@myopera.com")] + FILE_INFO_PATTERN = r'<div class="comment">.*?</div>\s*\n<h2 style="margin:0">(?P<N>.*?)</h2>\s*\n<div class="comment">\s*\n\s*(?P<S>[\d.]+) (?P<U>\w+)' OFFLINE_PATTERN = r'<span class="error">File not found</span>' diff --git a/pyload/plugins/hoster/UptoboxCom.py b/pyload/plugins/hoster/UptoboxCom.py index 437391145..2d6148905 100644 --- a/pyload/plugins/hoster/UptoboxCom.py +++ b/pyload/plugins/hoster/UptoboxCom.py @@ -13,8 +13,7 @@ class UptoboxCom(XFSPHoster): __pattern__ = r'https?://(?:www\.)?uptobox\.com/\w{12}' __description__ = """Uptobox.com hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] HOSTER_NAME = "uptobox.com" diff --git a/pyload/plugins/hoster/VeehdCom.py b/pyload/plugins/hoster/VeehdCom.py index 429ef8e1b..396588dfd 100644 --- a/pyload/plugins/hoster/VeehdCom.py +++ b/pyload/plugins/hoster/VeehdCom.py @@ -15,8 +15,7 @@ class VeehdCom(Hoster): ("replacement_char", "str", "Filename replacement character", "_")] __description__ = """Veehd.com hoster plugin""" - __author_name__ = "cat" - __author_mail__ = "cat@pyload" + __authors__ = [("cat", "cat@pyload")] def _debug(self, msg): diff --git a/pyload/plugins/hoster/VeohCom.py b/pyload/plugins/hoster/VeohCom.py index 057db56a3..90e3713f2 100644 --- a/pyload/plugins/hoster/VeohCom.py +++ b/pyload/plugins/hoster/VeohCom.py @@ -14,8 +14,8 @@ class VeohCom(SimpleHoster): __config__ = [("quality", "Low;High;Auto", "Quality", "Auto")] __description__ = """Veoh.com hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + FILE_NAME_PATTERN = r'<meta name="title" content="(?P<N>.*?)"' OFFLINE_PATTERN = r'>Sorry, we couldn\'t find the video you were looking for' diff --git a/pyload/plugins/hoster/VidPlayNet.py b/pyload/plugins/hoster/VidPlayNet.py index 0de21931a..8c78b8bc1 100644 --- a/pyload/plugins/hoster/VidPlayNet.py +++ b/pyload/plugins/hoster/VidPlayNet.py @@ -14,8 +14,8 @@ class VidPlayNet(XFSPHoster): __pattern__ = r'https?://(?:www\.)?vidplay\.net/\w{12}' __description__ = """VidPlay.net hoster plugin""" - __author_name__ = "t4skforce" - __author_mail__ = "t4skforce1337[AT]gmail[DOT]com" + __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] + HOSTER_NAME = "vidplay.net" diff --git a/pyload/plugins/hoster/VimeoCom.py b/pyload/plugins/hoster/VimeoCom.py index d5dab556e..a8abf195a 100644 --- a/pyload/plugins/hoster/VimeoCom.py +++ b/pyload/plugins/hoster/VimeoCom.py @@ -15,8 +15,8 @@ class VimeoCom(SimpleHoster): ("original", "bool", "Try to download the original file first", True)] __description__ = """Vimeo.com hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + FILE_NAME_PATTERN = r'<title>(?P<N>.+) on Vimeo<' OFFLINE_PATTERN = r'class="exception_header"' diff --git a/pyload/plugins/hoster/Vipleech4uCom.py b/pyload/plugins/hoster/Vipleech4uCom.py index 436b7d484..03215fffe 100644 --- a/pyload/plugins/hoster/Vipleech4uCom.py +++ b/pyload/plugins/hoster/Vipleech4uCom.py @@ -11,8 +11,7 @@ class Vipleech4uCom(DeadHoster): __pattern__ = r'http://(?:www\.)?vipleech4u\.com/manager\.php' __description__ = """Vipleech4u.com hoster plugin""" - __author_name__ = "Kagenoshin" - __author_mail__ = "kagenoshin@gmx.ch" + __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] getInfo = create_getInfo(Vipleech4uCom) diff --git a/pyload/plugins/hoster/WarserverCz.py b/pyload/plugins/hoster/WarserverCz.py index 365f0f0fa..9b7f561b5 100644 --- a/pyload/plugins/hoster/WarserverCz.py +++ b/pyload/plugins/hoster/WarserverCz.py @@ -11,8 +11,7 @@ class WarserverCz(DeadHoster): __pattern__ = r'http://(?:www\.)?warserver\.cz/stahnout/\d+' __description__ = """Warserver.cz hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] getInfo = create_getInfo(WarserverCz) diff --git a/pyload/plugins/hoster/WebshareCz.py b/pyload/plugins/hoster/WebshareCz.py index 6ca8d8882..face27e0a 100644 --- a/pyload/plugins/hoster/WebshareCz.py +++ b/pyload/plugins/hoster/WebshareCz.py @@ -29,8 +29,7 @@ class WebshareCz(SimpleHoster): __pattern__ = r'https?://(?:www\.)?webshare.cz/(?:#/)?file/(?P<ID>\w+)' __description__ = """WebShare.cz hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def handleFree(self): diff --git a/pyload/plugins/hoster/WrzucTo.py b/pyload/plugins/hoster/WrzucTo.py index 17d568f54..34065284b 100644 --- a/pyload/plugins/hoster/WrzucTo.py +++ b/pyload/plugins/hoster/WrzucTo.py @@ -15,8 +15,8 @@ class WrzucTo(SimpleHoster): __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" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r'id="file_info">\s*<strong>(?P<N>.*?)</strong>' FILE_SIZE_PATTERN = r'class="info">\s*<tr>\s*<td>(?P<S>.*?)</td>' diff --git a/pyload/plugins/hoster/WuploadCom.py b/pyload/plugins/hoster/WuploadCom.py index 5bc933ae5..7260b5f1f 100644 --- a/pyload/plugins/hoster/WuploadCom.py +++ b/pyload/plugins/hoster/WuploadCom.py @@ -11,8 +11,8 @@ class WuploadCom(DeadHoster): __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", "") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("Paul King", None)] getInfo = create_getInfo(WuploadCom) diff --git a/pyload/plugins/hoster/X7To.py b/pyload/plugins/hoster/X7To.py index 8df1d0ab3..e03502063 100644 --- a/pyload/plugins/hoster/X7To.py +++ b/pyload/plugins/hoster/X7To.py @@ -11,8 +11,7 @@ class X7To(DeadHoster): __pattern__ = r'http://(?:www\.)?x7.to/' __description__ = """X7.to hoster plugin""" - __author_name__ = "ernieb" - __author_mail__ = "ernieb" + __authors__ = [("ernieb", "ernieb")] getInfo = create_getInfo(X7To) diff --git a/pyload/plugins/hoster/XHamsterCom.py b/pyload/plugins/hoster/XHamsterCom.py index 77697281d..6d0dbd4d0 100644 --- a/pyload/plugins/hoster/XHamsterCom.py +++ b/pyload/plugins/hoster/XHamsterCom.py @@ -25,8 +25,7 @@ class XHamsterCom(Hoster): __config__ = [("type", ".mp4;.flv", "Preferred type", ".mp4")] __description__ = """XHamster.com hoster plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] def process(self, pyfile): @@ -67,6 +66,8 @@ class XHamsterCom(Hoster): if flashvars['url_mode']: url_mode = flashvars['url_mode'] + + else: self.fail("Parse error (url_mode)") diff --git a/pyload/plugins/hoster/XVideosCom.py b/pyload/plugins/hoster/XVideosCom.py index c3e555065..723b2acac 100644 --- a/pyload/plugins/hoster/XVideosCom.py +++ b/pyload/plugins/hoster/XVideosCom.py @@ -15,8 +15,7 @@ class XVideosCom(Hoster): __pattern__ = r'http://(?:www\.)?xvideos\.com/video([0-9]+)/.*' __description__ = """XVideos.com hoster plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] def process(self, pyfile): diff --git a/pyload/plugins/hoster/Xdcc.py b/pyload/plugins/hoster/Xdcc.py index ba798d2c2..c992ada2a 100644 --- a/pyload/plugins/hoster/Xdcc.py +++ b/pyload/plugins/hoster/Xdcc.py @@ -24,8 +24,7 @@ class Xdcc(Hoster): ("realname", "str", "Realname", "pyloadreal")] __description__ = """Download from IRC XDCC bot""" - __author_name__ = "jeix" - __author_mail__ = "jeix@hasnomail.com" + __authors__ = [("jeix", "jeix@hasnomail.com")] def setup(self): diff --git a/pyload/plugins/hoster/YibaishiwuCom.py b/pyload/plugins/hoster/YibaishiwuCom.py index 24cd0e9fc..9b0244aa2 100644 --- a/pyload/plugins/hoster/YibaishiwuCom.py +++ b/pyload/plugins/hoster/YibaishiwuCom.py @@ -14,8 +14,8 @@ class YibaishiwuCom(SimpleHoster): __pattern__ = r'http://(?:www\.)?(?:u\.)?115.com/file/(?P<ID>\w+)' __description__ = """115.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + FILE_NAME_PATTERN = r"file_name: '(?P<N>[^']+)'" FILE_SIZE_PATTERN = r"file_size: '(?P<S>[^']+)'" diff --git a/pyload/plugins/hoster/YoupornCom.py b/pyload/plugins/hoster/YoupornCom.py index 26a9a76e7..a5b9f65ae 100644 --- a/pyload/plugins/hoster/YoupornCom.py +++ b/pyload/plugins/hoster/YoupornCom.py @@ -13,8 +13,7 @@ class YoupornCom(Hoster): __pattern__ = r'http://(?:www\.)?youporn\.com/watch/.+' __description__ = """Youporn.com hoster plugin""" - __author_name__ = "willnix" - __author_mail__ = "willnix@pyload.org" + __authors__ = [("willnix", "willnix@pyload.org")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/YourfilesTo.py b/pyload/plugins/hoster/YourfilesTo.py index 7c4157ad5..3bbdf0628 100644 --- a/pyload/plugins/hoster/YourfilesTo.py +++ b/pyload/plugins/hoster/YourfilesTo.py @@ -15,8 +15,8 @@ class YourfilesTo(Hoster): __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") + __authors__ = [("jeix", "jeix@hasnomail.de"), + ("skydancer", "skydancer@hasnomail.de")] def process(self, pyfile): diff --git a/pyload/plugins/hoster/YoutubeCom.py b/pyload/plugins/hoster/YoutubeCom.py index 610983294..6679974cc 100644 --- a/pyload/plugins/hoster/YoutubeCom.py +++ b/pyload/plugins/hoster/YoutubeCom.py @@ -48,8 +48,9 @@ class YoutubeCom(Hoster): ("3d", "bool", "Prefer 3D", False)] __description__ = """Youtube.com hoster plugin""" - __author_name__ = ("spoob", "zoidberg") - __author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz") + __authors__ = [("spoob", "spoob@pyload.org"), + ("zoidberg", "zoidberg@mujmail.cz")] + FILE_URL_REPLACEMENTS = [(r'youtu\.be/', 'youtube.com/')] diff --git a/pyload/plugins/hoster/ZDF.py b/pyload/plugins/hoster/ZDF.py index cd1a83c7c..21ee94443 100644 --- a/pyload/plugins/hoster/ZDF.py +++ b/pyload/plugins/hoster/ZDF.py @@ -16,8 +16,7 @@ class ZDF(Hoster): __pattern__ = r'http://(?:www\.)?zdf\.de/ZDFmediathek/[^0-9]*([0-9]+)[^0-9]*' __description__ = """ZDF.de hoster plugin""" - __author_name__ = None - __author_mail__ = None + __authors__ = [] XML_API = "http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?id=%i" diff --git a/pyload/plugins/hoster/ZeveraCom.py b/pyload/plugins/hoster/ZeveraCom.py index 2f46199dc..6f390f0bb 100644 --- a/pyload/plugins/hoster/ZeveraCom.py +++ b/pyload/plugins/hoster/ZeveraCom.py @@ -11,8 +11,7 @@ class ZeveraCom(Hoster): __pattern__ = r'http://(?:www\.)?zevera\.com/.*' __description__ = """Zevera.com hoster plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def setup(self): diff --git a/pyload/plugins/hoster/ZippyshareCom.py b/pyload/plugins/hoster/ZippyshareCom.py index 60d152455..f8ef1ce43 100644 --- a/pyload/plugins/hoster/ZippyshareCom.py +++ b/pyload/plugins/hoster/ZippyshareCom.py @@ -16,8 +16,7 @@ class ZippyshareCom(SimpleHoster): __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__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] FILE_NAME_PATTERN = r'>Name:.+?">(?P<N>.+?)<' diff --git a/pyload/plugins/internal/AbstractExtractor.py b/pyload/plugins/internal/AbstractExtractor.py index 39bc46b1e..5a372fd71 100644 --- a/pyload/plugins/internal/AbstractExtractor.py +++ b/pyload/plugins/internal/AbstractExtractor.py @@ -17,8 +17,7 @@ class AbtractExtractor: __version__ = "0.1" __description__ = """Abtract extractor plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] @staticmethod diff --git a/pyload/plugins/internal/DeadCrypter.py b/pyload/plugins/internal/DeadCrypter.py index 2d4dfc7e6..9a59677fd 100644 --- a/pyload/plugins/internal/DeadCrypter.py +++ b/pyload/plugins/internal/DeadCrypter.py @@ -11,8 +11,7 @@ class DeadCrypter(_Crypter): __pattern__ = None __description__ = """Crypter is no longer available""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" + __authors__ = [("stickell", "l.stickell@yahoo.it")] def setup(self): diff --git a/pyload/plugins/internal/DeadHoster.py b/pyload/plugins/internal/DeadHoster.py index 72fd356bd..349296e47 100644 --- a/pyload/plugins/internal/DeadHoster.py +++ b/pyload/plugins/internal/DeadHoster.py @@ -19,8 +19,7 @@ class DeadHoster(_Hoster): __pattern__ = None __description__ = """Hoster is no longer available""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] def setup(self): diff --git a/pyload/plugins/internal/MultiHoster.py b/pyload/plugins/internal/MultiHoster.py index 1781cb17f..087edb6af 100644 --- a/pyload/plugins/internal/MultiHoster.py +++ b/pyload/plugins/internal/MultiHoster.py @@ -12,8 +12,8 @@ class MultiHoster(Addon): __version__ = "0.20" __description__ = """Generic MultiHoster plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] + replacements = [("2shared.com", "twoshared.com"), ("4shared.com", "fourshared.com"), ("cloudnator.com", "shragle.com"), ("ifile.it", "filecloud.io"), ("easy-share.com", "crocko.com"), ("freakshare.net", "freakshare.com"), diff --git a/pyload/plugins/internal/SimpleCrypter.py b/pyload/plugins/internal/SimpleCrypter.py index 454a95e84..6c5c9593f 100644 --- a/pyload/plugins/internal/SimpleCrypter.py +++ b/pyload/plugins/internal/SimpleCrypter.py @@ -2,30 +2,32 @@ import re -from pyload.plugins.base.Crypter import Crypter +from pyload.plugins.Crypter import Crypter from pyload.plugins.internal.SimpleHoster import PluginParseError, replace_patterns, set_cookies -from pyload.utils import html_unescape +from pyload.utils import fixup, html_unescape class SimpleCrypter(Crypter): __name__ = "SimpleCrypter" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = None __description__ = """Simple decrypter plugin""" - __author_name__ = ("stickell", "zoidberg", "Walter Purcaro") - __author_mail__ = ("l.stickell@yahoo.it", "zoidberg@mujmail.cz", "vuolter@gmail.com") + __authors__ = [("stickell", "l.stickell@yahoo.it"), + ("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] + """ Following patterns should be defined by each crypter: LINK_PATTERN: group(1) must be a download link or a regex to catch more links - example: LINK_PATTERN = r'<div class="link"><a href="(http://speedload.org/\w+)' + example: LINK_PATTERN = r'<div class="link"><a href="(.+?)"' - TITLE_PATTERN: (optional) The group defined by 'title' should be the folder name or the webpage title - example: TITLE_PATTERN = r'<title>Files of: (?P<title>[^<]+) folder</title>' + TITLE_PATTERN: (optional) group(1) should be the folder name or the webpage title + example: TITLE_PATTERN = r'<title>Files of: ([^<]+) folder</title>' OFFLINE_PATTERN: (optional) Checks if the file is yet available online example: OFFLINE_PATTERN = r'File (deleted|not found)' @@ -39,8 +41,8 @@ class SimpleCrypter(Crypter): If the links are splitted on multiple pages you can define the PAGES_PATTERN regex: - PAGES_PATTERN: (optional) The group defined by 'pages' should be the number of overall pages containing the links - example: PAGES_PATTERN = r'Pages: (?P<pages>\d+)' + PAGES_PATTERN: (optional) group(1) should be the number of overall pages containing the links + example: PAGES_PATTERN = r'Pages: (\d+)' and its loadPage method: @@ -48,7 +50,7 @@ class SimpleCrypter(Crypter): return the html of the page number page_n """ - + TITLE_REPLACEMENTS = [("&#?\w+;", fixup)] URL_REPLACEMENTS = [] TEXT_ENCODING = False #: Set to True or encoding name if encoding in http header is not correct @@ -110,23 +112,28 @@ class SimpleCrypter(Crypter): def getPackageNameAndFolder(self): if hasattr(self, 'TITLE_PATTERN'): - m = re.search(self.TITLE_PATTERN, self.html) - if m: - name = folder = html_unescape(m.group('title').strip()) + try: + m = re.search(self.TITLE_PATTERN, self.html) + name = replace_patterns(m.group(1).strip(), self.TITLE_REPLACEMENTS) + folder = html_unescape(name) + except: + pass + else: self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder)) return name, folder name = self.pyfile.package().name folder = self.pyfile.package().folder self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) + return name, folder def handleMultiPages(self): - pages = re.search(self.PAGES_PATTERN, self.html) - if pages: - pages = int(pages.group('pages')) - else: + try: + m = re.search(self.PAGES_PATTERN, self.html) + pages = int(m.group(1)) + except: pages = 1 for p in xrange(2, pages + 1): diff --git a/pyload/plugins/internal/SimpleHoster.py b/pyload/plugins/internal/SimpleHoster.py index 8fdff5dd5..bc4cc3c88 100644 --- a/pyload/plugins/internal/SimpleHoster.py +++ b/pyload/plugins/internal/SimpleHoster.py @@ -106,15 +106,14 @@ def parseFileInfo(self, url='', html=''): # File online, return name and size info['status'] = 2 if 'N' in info: - info['name'] = replace_patterns(info['N'], self.FILE_NAME_REPLACEMENTS) + info['name'] = replace_patterns(info['N'].strip(), self.FILE_NAME_REPLACEMENTS) if 'S' in info: size = replace_patterns(info['S'] + info['U'] if 'U' in info else info['S'], self.FILE_SIZE_REPLACEMENTS) info['size'] = parseFileSize(size) elif isinstance(info['size'], basestring): - if 'units' in info: - info['size'] += info['units'] - info['size'] = parseFileSize(info['size']) + unit = info['units'] if 'units' in info else None + info['size'] = parseFileSize(info['size'], unit) if hasattr(self, "file_info"): self.file_info = info @@ -153,13 +152,15 @@ class PluginParseError(Exception): class SimpleHoster(Hoster): __name__ = "SimpleHoster" __type__ = "hoster" - __version__ = "0.36" + __version__ = "0.38" __pattern__ = None __description__ = """Simple hoster plugin""" - __author_name__ = ("zoidberg", "stickell", "Walter Purcaro") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] + """ Following patterns should be defined by each hoster: @@ -180,6 +181,15 @@ class SimpleHoster(Hoster): PREMIUM_ONLY_PATTERN: (optional) Checks if the file can be downloaded only with a premium account example: PREMIUM_ONLY_PATTERN = r'Premium account required' + + + Instead overriding handleFree and handlePremium methods now you can define patterns for direct download: + + LINK_FREE_PATTERN: (optional) group(1) should be the direct link for free download + example: LINK_FREE_PATTERN = r'<div class="link"><a href="(.+?)"' + + LINK_PREMIUM_PATTERN: (optional) group(1) should be the direct link for premium download + example: LINK_PREMIUM_PATTERN = r'<div class="link"><a href="(.+?)"' """ FILE_NAME_REPLACEMENTS = [("&#?\w+;", fixup)] @@ -255,11 +265,35 @@ class SimpleHoster(Hoster): def handleFree(self): - self.fail("Free download not implemented") + if not hasattr(self, 'LINK_FREE_PATTERN'): + self.fail("Free download not implemented") + + try: + m = re.search(self.LINK_FREE_PATTERN, self.html) + if m is None: + self.parseError("Free download link not found") + + link = m.group(1) + except Exception, e: + self.logError(str(e)) + else: + self.download(link, ref=True, cookies=True, disposition=True) def handlePremium(self): - self.fail("Premium download not implemented") + if not hasattr(self, 'LINK_PREMIUM_PATTERN'): + self.fail("Premium download not implemented") + + try: + m = re.search(self.LINK_PREMIUM_PATTERN, self.html) + if m is None: + self.parseError("Premium download link not found") + + link = m.group(1) + except Exception, e: + self.logError(str(e)) + else: + self.download(link, ref=True, cookies=True, disposition=True) def parseError(self, msg): diff --git a/pyload/plugins/internal/UnRar.py b/pyload/plugins/internal/UnRar.py index 0f54e75b9..df7557d0d 100644 --- a/pyload/plugins/internal/UnRar.py +++ b/pyload/plugins/internal/UnRar.py @@ -25,8 +25,7 @@ class UnRar(AbtractExtractor): __version__ = "0.18" __description__ = """Rar extractor plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] CMD = "unrar" diff --git a/pyload/plugins/internal/UnZip.py b/pyload/plugins/internal/UnZip.py index 65a5a82bb..0fe50198f 100644 --- a/pyload/plugins/internal/UnZip.py +++ b/pyload/plugins/internal/UnZip.py @@ -11,8 +11,7 @@ class UnZip(AbtractExtractor): __version__ = "0.1" __description__ = """Zip extractor plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] @staticmethod diff --git a/pyload/plugins/internal/UpdateManager.py b/pyload/plugins/internal/UpdateManager.py index 7848fa2de..f64a1e573 100644 --- a/pyload/plugins/internal/UpdateManager.py +++ b/pyload/plugins/internal/UpdateManager.py @@ -23,8 +23,7 @@ class UpdateManager(Addon): ("nodebugupdate", "bool", "Don't check for updates in debug mode", True)] __description__ = """Check for updates""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] event_list = ["pluginConfigChanged"] diff --git a/pyload/plugins/internal/XFSPAccount.py b/pyload/plugins/internal/XFSPAccount.py index 058fdf2b5..edf6ad3cc 100644 --- a/pyload/plugins/internal/XFSPAccount.py +++ b/pyload/plugins/internal/XFSPAccount.py @@ -2,6 +2,7 @@ import re +from urlparse import urljoin from time import mktime, strptime from pyload.plugins.base.Account import Account @@ -12,62 +13,82 @@ from pyload.utils import parseFileSize class XFSPAccount(Account): __name__ = "XFSPAccount" __type__ = "account" - __version__ = "0.07" + __version__ = "0.09" __description__ = """XFileSharingPro base account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] HOSTER_URL = None COOKIES = None #: or list of tuples [(domain, name, value)] - VALID_UNTIL_PATTERN = r'>Premium.[Aa]ccount expire:</TD><TD><b>([^<]+)</b>' - TRAFFIC_LEFT_PATTERN = r'>Traffic available today:</TD><TD><b>([^<]+)</b>' - LOGIN_FAIL_PATTERN = r'Incorrect Login or Password|>Error<' - PREMIUM_PATTERN = r'>Renew premium<' + VALID_UNTIL_PATTERN = r'>Premium.[Aa]ccount expire:.*?<b>(.+?)</b>' + TRAFFIC_LEFT_PATTERN = r'>Traffic available today:.*?<b>(?P<S>.+?)</b>' + LOGIN_FAIL_PATTERN = r'>(Incorrect Login or Password|Error<)' + # PREMIUM_PATTERN = r'>Renew premium<' def loadAccountInfo(self, user, req): - html = req.load(self.HOSTER_URL + "?op=my_account", decode=True) + html = req.load(self.HOSTER_URL, get={'op': "my_account"}, decode=True) - validuntil = trafficleft = None - premium = True if re.search(self.PREMIUM_PATTERN, html) else False + validuntil = None + trafficleft = None + premium = None + + if hasattr(self, "PREMIUM_PATTERN"): + premium = True if re.search(self.PREMIUM_PATTERN, html) else False m = re.search(self.VALID_UNTIL_PATTERN, html) if m: - premium = True - trafficleft = -1 + expiredate = m.group(1) + self.logDebug("Expire date: " + expiredate) + try: - self.logDebug(m.group(1)) - validuntil = mktime(strptime(m.group(1), "%d %B %Y")) + validuntil = mktime(strptime(expiredate, "%d %B %Y")) except Exception, e: self.logError(e) - else: - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - trafficleft = m.group(1) - if "Unlimited" in trafficleft: + else: + if validuntil > mktime(gmtime()): premium = True + trafficleft = -1 else: - trafficleft = parseFileSize(trafficleft) / 1024 + if premium is False: #: registered account type (not premium) + validuntil = -1 + premium = False + + try: + traffic = re.search(self.TRAFFIC_LEFT_PATTERN, html).groupdict() + trafficsize = traffic['S'] + traffic['U'] if 'U' in traffic else traffic['S'] + if "Unlimited" in trafficsize: + trafficleft = -1 + if premium is None: + premium = True + else: + trafficleft = parseFileSize(trafficsize) + except: + pass + + if premium is None: + premium = False - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} + return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} def login(self, user, data, req): set_cookies(req.cj, self.COOKIES) - html = req.load('%slogin.html' % self.HOSTER_URL, decode=True) + url = urljoin(self.HOSTER_URL, "login.html") + html = req.load(url, decode=True) action, inputs = parseHtmlForm('name="FL"', html) if not inputs: - inputs = {"op": "login", - "redirect": self.HOSTER_URL} + inputs = {'op': "login", + 'redirect': self.HOSTER_URL} - inputs.update({"login": user, - "password": data['password']}) + inputs.update({'login': user, + 'password': data['password']}) html = req.load(self.HOSTER_URL, post=inputs, decode=True) diff --git a/pyload/plugins/internal/XFSPHoster.py b/pyload/plugins/internal/XFSPHoster.py index 3adae43c5..ae8065732 100644 --- a/pyload/plugins/internal/XFSPHoster.py +++ b/pyload/plugins/internal/XFSPHoster.py @@ -26,8 +26,9 @@ class XFSPHoster(SimpleHoster): __pattern__ = r'^unmatchable$' __description__ = """XFileSharingPro base hoster plugin""" - __author_name__ = ("zoidberg", "stickell", "Walter Purcaro") - __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it", "vuolter@gmail.com") + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("stickell", "l.stickell@yahoo.it"), + ("Walter Purcaro", "vuolter@gmail.com")] HOSTER_NAME = None @@ -242,7 +243,7 @@ class XFSPHoster(SimpleHoster): self.retry(25) elif 'countdown' in self.errmsg or 'Expired' in self.errmsg: self.retry() - elif 'maintenance' in self.errmsg: + elif 'maintenance' in self.errmsg or 'maintainance' in self.errmsg: self.tempOffline() elif 'download files up to' in self.errmsg: self.fail("File too large for free download") diff --git a/pyload/plugins/ocr/GigasizeCom.py b/pyload/plugins/ocr/GigasizeCom.py index 424a23790..6fe6ffa2d 100644 --- a/pyload/plugins/ocr/GigasizeCom.py +++ b/pyload/plugins/ocr/GigasizeCom.py @@ -9,8 +9,7 @@ class GigasizeCom(OCR): __version__ = "0.1" __description__ = """Gigasize.com ocr plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] def __init__(self): diff --git a/pyload/plugins/ocr/LinksaveIn.py b/pyload/plugins/ocr/LinksaveIn.py index 98906abbe..10f7354d9 100644 --- a/pyload/plugins/ocr/LinksaveIn.py +++ b/pyload/plugins/ocr/LinksaveIn.py @@ -1,7 +1,11 @@ # -*- coding: utf-8 -*- +try: + from PIL import Image +except ImportError: + import Image + from glob import glob -from PIL import Image from os import sep from os.path import abspath, dirname @@ -14,8 +18,7 @@ class LinksaveIn(OCR): __version__ = "0.1" __description__ = """Linksave.in ocr plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] def __init__(self): diff --git a/pyload/plugins/ocr/NetloadIn.py b/pyload/plugins/ocr/NetloadIn.py index 7ea9f6671..05798c14e 100644 --- a/pyload/plugins/ocr/NetloadIn.py +++ b/pyload/plugins/ocr/NetloadIn.py @@ -9,8 +9,7 @@ class NetloadIn(OCR): __version__ = "0.1" __description__ = """Netload.in ocr plugin""" - __author_name__ = "pyLoad Team" - __author_mail__ = "admin@pyload.org" + __authors__ = [("pyLoad Team", "admin@pyload.org")] def __init__(self): diff --git a/pyload/plugins/ocr/ShareonlineBiz.py b/pyload/plugins/ocr/ShareonlineBiz.py index 1410ccfd5..4839a3e0c 100644 --- a/pyload/plugins/ocr/ShareonlineBiz.py +++ b/pyload/plugins/ocr/ShareonlineBiz.py @@ -9,8 +9,7 @@ class ShareonlineBiz(OCR): __version__ = "0.1" __description__ = """Shareonline.biz ocr plugin""" - __author_name__ = "RaNaN" - __author_mail__ = "RaNaN@pyload.org" + __authors__ = [("RaNaN", "RaNaN@pyload.org")] def __init__(self): |