diff options
Diffstat (limited to 'pyload/plugins/hoster/BayfilesCom.py')
-rw-r--r-- | pyload/plugins/hoster/BayfilesCom.py | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/pyload/plugins/hoster/BayfilesCom.py b/pyload/plugins/hoster/BayfilesCom.py index d5d001730..f3fa87d89 100644 --- a/pyload/plugins/hoster/BayfilesCom.py +++ b/pyload/plugins/hoster/BayfilesCom.py @@ -9,65 +9,67 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BayfilesCom(SimpleHoster): - __name__ = "BayfilesCom" - __type__ = "hoster" - __version__ = "0.07" + __name__ = "BayfilesCom" + __type__ = "hoster" + __version__ = "0.08" - __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>[a-zA-Z0-9]+/[a-zA-Z0-9]+/[^/]+)' + __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>\w+/\w+/[^/]+)' __description__ = """Bayfiles.com hoster plugin""" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("Walter Purcaro", "vuolter@gmail.com")] + __license__ = "GPLv3" + __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>' + 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 [0-9.]* has recently downloaded a file\. Upgrade to premium or wait (\d+) minutes\.<' + 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 = '([^']+)';" + 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.wait(int(m.group(1)) * 60) - self.retry() + 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.parseError('VARS') + self.error(_("VARS_PATTERN not found")) vfid, delay = m.groups() - response = json_loads(self.load('http://bayfiles.com/ajax_download', get={ - "_": time() * 1000, - "action": "startTimer", - "vfid": vfid}, decode=True)) + res = json_loads(self.load('http://bayfiles.com/ajax_download', + get={"_": time() * 1000, + "action": "startTimer", + "vfid": vfid}, decode=True)) - if not "token" in response or not response['token']: - self.fail('No token') + 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": response['token'], + "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.parseError("Free link") + 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.parseError("Premium link") + 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) |