summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/BitshareCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/BitshareCom.py')
-rw-r--r--module/plugins/hoster/BitshareCom.py47
1 files changed, 24 insertions, 23 deletions
diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py
index 781f31df1..feb2b682c 100644
--- a/module/plugins/hoster/BitshareCom.py
+++ b/module/plugins/hoster/BitshareCom.py
@@ -11,9 +11,9 @@ from pyload.plugin.internal.SimpleHoster import SimpleHoster, create_getInfo
class BitshareCom(SimpleHoster):
__name__ = "BitshareCom"
__type__ = "hoster"
- __version__ = "0.51"
+ __version__ = "0.53"
- __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/(?P<id1>\w+)(/(?P<name>.*?)\.html)?|\?f=(?P<id2>\w+))'
+ __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/)?(?(1)|\?f=)(?P<ID>\w+)(?(1)/(?P<NAME>.+?)\.html)'
__description__ = """Bitshare.com hoster plugin"""
__license__ = "GPLv3"
@@ -21,13 +21,13 @@ class BitshareCom(SimpleHoster):
("fragonib", "fragonib[AT]yahoo[DOT]es")]
- 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)'
-
COOKIES = [("bitshare.com", "language_selection", "EN")]
- AJAXID_PATTERN = r'var ajaxdl = "(.*?)";'
- TRAFFIC_USED_UP = r'Your Traffic is used up for today. Upgrade to premium to continue!'
+ INFO_PATTERN = r'Downloading (?P<N>.+) - (?P<S>[\d.,]+) (?P<U>[\w^_]+)</h1>'
+ OFFLINE_PATTERN = r'[Ff]ile (not available|was deleted|was not found)'
+
+ AJAXID_PATTERN = r'var ajaxdl = "(.*?)";'
+ TRAFFIC_USED_UP = r'Your Traffic is used up for today'
def setup(self):
@@ -39,11 +39,9 @@ class BitshareCom(SimpleHoster):
if self.premium:
self.account.relogin(self.user)
- self.pyfile = pyfile
-
# File id
m = re.match(self.__pattern__, pyfile.url)
- self.file_id = max(m.group('id1'), m.group('id2'))
+ self.file_id = max(m.group('ID1'), m.group('ID2'))
self.logDebug("File id is [%s]" % self.file_id)
# Load main page
@@ -60,10 +58,12 @@ class BitshareCom(SimpleHoster):
self.retry()
# File name
- m = re.match(self.__pattern__, pyfile.url)
- name1 = m.group('name') if m else None
- m = re.search(self.INFO_PATTERN, self.html)
+ m = re.match(self.__pattern__, pyfile.url)
+ name1 = m.group('NAME') if m else None
+
+ m = re.search(self.INFO_PATTERN, self.html)
name2 = m.group('N') if m else None
+
pyfile.name = max(name1, name2)
# Ajax file id
@@ -71,13 +71,9 @@ class BitshareCom(SimpleHoster):
self.logDebug("File ajax id is [%s]" % self.ajaxid)
# This may either download our file or forward us to an error page
- url = self.getDownloadUrl()
- self.download(url)
+ self.download(self.getDownloadUrl())
- check = self.checkDownload({"404": ">404 Not Found<", "Error": ">Error occured<"})
- if check == "404":
- self.retry(3, 60, 'Error 404')
- elif check == "error":
+ if self.checkDownload({"error": ">Error occured<"}):
self.retry(5, 5 * 60, "Bitshare host : Error occured")
@@ -92,11 +88,14 @@ class BitshareCom(SimpleHoster):
self.logDebug("Getting download info")
res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
post={"request": "generateID", "ajaxid": self.ajaxid})
+
self.handleErrors(res, ':')
- parts = res.split(":")
+
+ parts = res.split(":")
filetype = parts[0]
- wait = int(parts[1])
- captcha = int(parts[2])
+ wait = int(parts[1])
+ captcha = int(parts[2])
+
self.logDebug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha))
# Waiting
@@ -115,7 +114,7 @@ class BitshareCom(SimpleHoster):
# Try up to 3 times
for i in xrange(3):
- challenge, response = recaptcha.challenge()
+ response, challenge = recaptcha.challenge()
res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
post={"request" : "validateCaptcha",
"ajaxid" : self.ajaxid,
@@ -128,7 +127,9 @@ class BitshareCom(SimpleHoster):
self.logDebug("Getting download url")
res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
post={"request": "getDownloadURL", "ajaxid": self.ajaxid})
+
self.handleErrors(res, '#')
+
url = res.split("#")[-1]
return url