diff options
| author | 2014-10-07 19:54:24 +0200 | |
|---|---|---|
| committer | 2014-10-07 19:54:24 +0200 | |
| commit | be459e0b409dcd5e04edd75be374bd35d4018e9a (patch) | |
| tree | 3f73e813d20608ff0d23eada8214a5124c85bff5 /pyload/plugins | |
| 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
Diffstat (limited to 'pyload/plugins')
368 files changed, 964 insertions, 1065 deletions
| 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): | 
