summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nitzo <nitzo2001@yahoo.com> 2016-06-18 21:19:06 +0200
committerGravatar Nitzo <nitzo2001@yahoo.com> 2016-06-18 21:19:06 +0200
commit23c50ea340b96bc0f2d6746a070d5564dfe1cad3 (patch)
treeb5255a46e105f3e2acd5fc8576d1c91b6cd6ace4
parent[MegaCoNz] Update (diff)
downloadpyload-23c50ea340b96bc0f2d6746a070d5564dfe1cad3.tar.xz
[BitshareCom] Dead, fix #2510
-rw-r--r--module/plugins/accounts/BitshareCom.py36
-rw-r--r--module/plugins/crypter/BitshareComFolder.py15
-rw-r--r--module/plugins/hoster/BitshareCom.py151
3 files changed, 8 insertions, 194 deletions
diff --git a/module/plugins/accounts/BitshareCom.py b/module/plugins/accounts/BitshareCom.py
deleted file mode 100644
index 58a589abc..000000000
--- a/module/plugins/accounts/BitshareCom.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from module.plugins.internal.Account import Account
-
-
-class BitshareCom(Account):
- __name__ = "BitshareCom"
- __type__ = "account"
- __version__ = "0.19"
- __status__ = "testing"
-
- __description__ = """Bitshare account plugin"""
- __license__ = "GPLv3"
- __authors__ = [("Paul King", None)]
-
-
- def grab_info(self, user, password, data):
- html = self.load("http://bitshare.com/mysettings.html")
-
- if "\"http://bitshare.com/myupgrade.html\">Free" in html:
- return {'validuntil': -1, 'trafficleft': -1, 'premium': False}
-
- if not '<input type="checkbox" name="directdownload" checked="checked" />' in html:
- self.log_warning(_("Activate direct Download in your Bitshare Account"))
-
- return {'validuntil': -1, 'trafficleft': -1, 'premium': True}
-
-
- def signin(self, user, password, data):
- html = self.load("https://bitshare.com/login.html",
- post={'user' : user,
- 'password': password,
- 'submit' : "Login"})
-
- if "login" in self.req.lastEffectiveURL:
- self.fail_login()
diff --git a/module/plugins/crypter/BitshareComFolder.py b/module/plugins/crypter/BitshareComFolder.py
index ab7cec80a..1964196cf 100644
--- a/module/plugins/crypter/BitshareComFolder.py
+++ b/module/plugins/crypter/BitshareComFolder.py
@@ -1,24 +1,17 @@
# -*- coding: utf-8 -*-
-from module.plugins.internal.SimpleCrypter import SimpleCrypter
+from module.plugins.internal.DeadCrypter import DeadCrypter
-class BitshareComFolder(SimpleCrypter):
+class BitshareComFolder(DeadCrypter):
__name__ = "BitshareComFolder"
__type__ = "crypter"
- __version__ = "0.09"
+ __version__ = "0.10"
__status__ = "testing"
__pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+'
- __config__ = [("activated" , "bool" , "Activated" , True ),
- ("use_premium" , "bool" , "Use premium account if available" , True ),
- ("folder_per_package", "Default;Yes;No", "Create folder for each package" , "Default"),
- ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )]
+ __config__ = [("activated", "bool", "Activated", True)]
__description__ = """Bitshare.com folder decrypter plugin"""
__license__ = "GPLv3"
__authors__ = [("stickell", "l.stickell@yahoo.it")]
-
-
- LINK_PATTERN = r'<a href="(http://bitshare\.com/files/.+)">.+</a></td>'
- NAME_PATTERN = r'View public folder "(?P<N>.+?)"</h1>'
diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py
index 54f413d13..7d7de1d88 100644
--- a/module/plugins/hoster/BitshareCom.py
+++ b/module/plugins/hoster/BitshareCom.py
@@ -1,161 +1,18 @@
# -*- coding: utf-8 -*-
-from __future__ import with_statement
+from module.plugins.internal.DeadHoster import DeadHoster
-import re
-from module.plugins.captcha.ReCaptcha import ReCaptcha
-from module.plugins.internal.SimpleHoster import SimpleHoster
-
-
-class BitshareCom(SimpleHoster):
+class BitshareCom(DeadHoster):
__name__ = "BitshareCom"
__type__ = "hoster"
- __version__ = "0.60"
+ __version__ = "0.61"
__status__ = "testing"
__pattern__ = r'http://(?:www\.)?bitshare\.com/(files/)?(?(1)|\?f=)(?P<ID>\w+)(?(1)/(?P<NAME>.+?)\.html)'
- __config__ = [("activated" , "bool", "Activated" , True),
- ("use_premium" , "bool", "Use premium account if available" , True),
- ("fallback" , "bool", "Fallback to free download if premium fails" , True),
- ("chk_filesize", "bool", "Check file size" , True),
- ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )]
+ __config__ = [("activated" , "bool", "Activated", True)]
__description__ = """Bitshare.com hoster plugin"""
__license__ = "GPLv3"
__authors__ = [("Paul King", None),
("fragonib", "fragonib[AT]yahoo[DOT]es")]
-
-
- COOKIES = [("bitshare.com", "language_selection", "EN")]
-
- 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):
- self.multiDL = self.premium
- self.chunk_limit = 1
-
-
- def process(self, pyfile):
- if self.premium:
- self.account.relogin()
-
- #: File id
- m = re.match(self.__pattern__, pyfile.url)
- self.file_id = max(m.group('ID1'), m.group('ID2'))
- self.log_debug("File id is [%s]" % self.file_id)
-
- #: Load main page
- self.data = self.load(pyfile.url, ref=False)
-
- #: Check offline
- if re.search(self.OFFLINE_PATTERN, self.data):
- self.offline()
-
- #: Check Traffic used up
- if re.search(self.TRAFFIC_USED_UP, self.data):
- self.log_info(_("Your Traffic is used up for today"))
- self.wait(30 * 60, True)
- 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.data)
- name2 = m.group('N') if m else None
-
- pyfile.name = max(name1, name2)
-
- #: Ajax file id
- self.ajaxid = re.search(self.AJAXID_PATTERN, self.data).group(1)
- self.log_debug("File ajax id is [%s]" % self.ajaxid)
-
- #: This may either download our file or forward us to an error page
- self.link = self.get_download_url()
-
- if self.scan_download({'error': ">Error occured<"}):
- self.retry(5, 5 * 60, "Bitshare host : Error occured")
-
-
- def get_download_url(self):
- #: Return location if direct download is active
- if self.premium:
- header = self.load(self.pyfile.url, just_header=True)
- if 'location' in header:
- return header.get('location')
-
- #: Get download info
- self.log_debug("Getting download info")
- res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
- post={'request': "generateID", 'ajaxid': self.ajaxid})
-
- self.handle_errors(res, ':')
-
- parts = res.split(":")
- filetype = parts[0]
- wait = int(parts[1])
- captcha = int(parts[2])
-
- self.log_debug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha))
-
- #: Waiting
- if wait > 0:
- self.log_debug("Waiting %d seconds." % wait)
- if wait < 120:
- self.wait(wait, False)
- else:
- self.wait(wait - 55, True)
- self.retry()
-
- #: Resolve captcha
- if captcha == 1:
- self.log_debug("File is captcha protected")
- self.captcha = ReCaptcha(self.pyfile)
-
- response, challenge = self.captcha.challenge()
- res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
- post={'request' : "validateCaptcha",
- 'ajaxid' : self.ajaxid,
- 'recaptcha_challenge_field': challenge,
- 'recaptcha_response_field' : response})
-
- self.handle_captcha_errors(res)
-
- #: Get download URL
- self.log_debug("Getting download url")
- res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",
- post={'request': "getDownloadURL", 'ajaxid': self.ajaxid})
-
- self.handle_errors(res, '#')
-
- url = res.split("#")[-1]
-
- return url
-
-
- def handle_errors(self, res, separator):
- self.log_debug("Checking response [%s]" % res)
- if "ERROR:Session timed out" in res:
- self.retry()
-
- elif "ERROR" in res:
- msg = res.split(separator)[-1]
- self.fail(msg)
-
-
- def handle_captcha_errors(self, res):
- self.log_debug("Result of captcha resolving [%s]" % res)
- if "SUCCESS" in res:
- self.captcha.correct()
-
- elif "ERROR:SESSION ERROR" in res:
- self.retry()
-
- else:
- self.retry_captcha()