diff options
Diffstat (limited to 'module/plugins/hoster')
| -rw-r--r-- | module/plugins/hoster/BayfilesCom.py | 77 | 
1 files changed, 4 insertions, 73 deletions
| diff --git a/module/plugins/hoster/BayfilesCom.py b/module/plugins/hoster/BayfilesCom.py index 24c86f5be..0929ece01 100644 --- a/module/plugins/hoster/BayfilesCom.py +++ b/module/plugins/hoster/BayfilesCom.py @@ -1,87 +1,18 @@  # -*- coding: utf-8 -*- -import re +from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo -from time import time -from module.common.json_layer import json_loads -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo - - -class BayfilesCom(SimpleHoster): +class BayfilesCom(DeadHoster):      __name__    = "BayfilesCom"      __type__    = "hoster" -    __version__ = "0.08" +    __version__ = "0.09"      __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>\w+/\w+/[^/]+)'      __description__ = """Bayfiles.com hoster plugin"""      __license__     = "GPLv3" -    __authors__     = [("zoidberg", "zoidberg@mujmail.cz"), -                       ("Walter Purcaro", "vuolter@gmail.com")] - - -    INFO_PATTERN = r'<p title="(?P<N>[^"]+)">[^<]*<strong>(?P<S>[\d .,]+)(?P<U>[\w^_]+)</strong></p>' -    OFFLINE_PATTERN = r'(<p>The requested file could not be found.</p>|<title>404 Not Found</title>)' - -    WAIT_PATTERN = r'>Your IP [\d.]* has recently downloaded a file\. Upgrade to premium or wait (\d+) minutes\.<' -    VARS_PATTERN = r'var vfid = (\d+);\s*var delay = (\d+);' -    FREE_LINK_PATTERN = r'javascript:window\.location\.href = \'(.+?)\';' -    PREMIUM_LINK_PATTERN = r'(?:<a class="highlighted-btn" href="|(?=http://s\d+\.baycdn\.com/dl/))(.*?)"' - - -    def handleFree(self): -        m = re.search(self.WAIT_PATTERN, self.html) -        if m: -            self.retry(wait_time=int(m.group(1)) * 60) - -        # Get download token -        m = re.search(self.VARS_PATTERN, self.html) -        if m is None: -            self.error(_("VARS_PATTERN not found")) -        vfid, delay = m.groups() - -        res = json_loads(self.load('http://bayfiles.com/ajax_download', -                         get={"_": time() * 1000, -                              "action": "startTimer", -                              "vfid": vfid}, decode=True)) - -        if not "token" in res or not res['token']: -            self.fail(_("No token")) - -        self.wait(int(delay)) - -        self.html = self.load('http://bayfiles.com/ajax_download', get={ -            "token": res['token'], -            "action": "getLink", -            "vfid": vfid}) - -        # Get final link and download -        m = re.search(self.FREE_LINK_PATTERN, self.html) -        if m is None: -            self.error(_("Free link")) -        self.startDownload(m.group(1)) - - -    def handlePremium(self): -        m = re.search(self.PREMIUM_LINK_PATTERN, self.html) -        if m is None: -            self.error(_("Premium link")) -        self.startDownload(m.group(1)) - - -    def startDownload(self, url): -        self.logDebug("%s URL: %s" % ("Premium" if self.premium else "Free", url)) -        self.download(url) -        # check download -        check = self.checkDownload({ -            "waitforfreeslots": re.compile(r"<title>BayFiles</title>"), -            "notfound": re.compile(r"<title>404 Not Found</title>") -        }) -        if check == "waitforfreeslots": -            self.retry(30, 5 * 60, "Wait for free slot") -        elif check == "notfound": -            self.retry(30, 5 * 60, "404 Not found") +    __authors__     = [("Walter Purcaro", "vuolter@gmail.com")]  getInfo = create_getInfo(BayfilesCom) | 
