summaryrefslogtreecommitdiffstats
path: root/module/plugins
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@gmail.com> 2014-12-24 14:16:59 +0100
committerGravatar Walter Purcaro <vuolter@gmail.com> 2014-12-24 14:16:59 +0100
commit90e5cacbfda7e47db02223d02baf63879b285e8a (patch)
tree0ac7936c43a114b83194e9501b680f414d91faa7 /module/plugins
parentExtractor rewritten (2) (diff)
downloadpyload-90e5cacbfda7e47db02223d02baf63879b285e8a.tar.xz
[BayfilesCom] Mark dead
Diffstat (limited to 'module/plugins')
-rw-r--r--module/plugins/accounts/BayfilesCom.py37
-rw-r--r--module/plugins/hoster/BayfilesCom.py77
2 files changed, 4 insertions, 110 deletions
diff --git a/module/plugins/accounts/BayfilesCom.py b/module/plugins/accounts/BayfilesCom.py
deleted file mode 100644
index b2295c3f1..000000000
--- a/module/plugins/accounts/BayfilesCom.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from time import time
-
-from module.plugins.Account import Account
-from module.common.json_layer import json_loads
-
-
-class BayfilesCom(Account):
- __name__ = "BayfilesCom"
- __type__ = "account"
- __version__ = "0.03"
-
- __description__ = """Bayfiles.com account plugin"""
- __license__ = "GPLv3"
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
-
-
- def loadAccountInfo(self, user, req):
- for _i in xrange(2):
- res = json_loads(req.load("http://api.bayfiles.com/v1/account/info"))
- self.logDebug(res)
- if not res['error']:
- break
- self.logWarning(res['error'])
- self.relogin(user)
-
- return {"premium": bool(res['premium']), "trafficleft": -1,
- "validuntil": res['expires'] if res['expires'] >= int(time()) else -1}
-
-
- def login(self, user, data, req):
- res = json_loads(req.load("http://api.bayfiles.com/v1/account/login/%s/%s" % (user, data['password'])))
- self.logDebug(res)
- if res['error']:
- self.logError(res['error'])
- self.wrongPassword()
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)