diff options
Diffstat (limited to 'module/plugins/hoster/OboomCom.py')
-rw-r--r-- | module/plugins/hoster/OboomCom.py | 116 |
1 files changed, 58 insertions, 58 deletions
diff --git a/module/plugins/hoster/OboomCom.py b/module/plugins/hoster/OboomCom.py index b50e2fb42..8420c6f02 100644 --- a/module/plugins/hoster/OboomCom.py +++ b/module/plugins/hoster/OboomCom.py @@ -6,18 +6,19 @@ import re from module.common.json_layer import json_loads -from module.plugins.Hoster import Hoster -from module.plugins.internal.ReCaptcha import ReCaptcha +from module.plugins.internal.Hoster import Hoster +from module.plugins.captcha.ReCaptcha import ReCaptcha class OboomCom(Hoster): __name__ = "OboomCom" __type__ = "hoster" - __version__ = "0.33" + __version__ = "0.36" + __status__ = "testing" __pattern__ = r'https?://(?:www\.)?oboom\.com/(?:#(?:id=|/)?)?(?P<ID>\w{8})' - __description__ = """oboom.com hoster plugin""" + __description__ = """Oboom.com hoster plugin""" __license__ = "GPLv3" __authors__ = [("stanley", "stanley.foerster@gmail.com")] @@ -26,120 +27,119 @@ class OboomCom(Hoster): def setup(self): - self.chunkLimit = 1 - self.multiDL = self.resumeDownload = self.premium + self.chunk_limit = 1 + self.multiDL = self.resume_download = self.premium def process(self, pyfile): self.pyfile.url.replace(".com/#id=", ".com/#") self.pyfile.url.replace(".com/#/", ".com/#") self.html = self.load(pyfile.url) - self.getFileId(self.pyfile.url) - self.getSessionToken() - self.getFileInfo(self.sessionToken, self.fileId) - self.pyfile.name = self.fileName - self.pyfile.size = self.fileSize + self.get_file_id(self.pyfile.url) + self.get_session_token() + self.get_fileInfo(self.session_token, self.file_id) + self.pyfile.name = self.file_name + self.pyfile.size = self.file_size if not self.premium: - self.solveCaptcha() - self.getDownloadTicket() - self.download("https://%s/1.0/dlh" % self.downloadDomain, get={"ticket": self.downloadTicket, "http_errors": 0}) + self.solve_captcha() + self.get_download_ticket() + self.download("http://%s/1.0/dlh" % self.download_domain, get={'ticket': self.download_ticket, 'http_errors': 0}) - def loadUrl(self, url, get=None): + def load_url(self, url, get=None): if get is None: - get = dict() - return json_loads(self.load(url, get, decode=True)) + get = {} + return json_loads(self.load(url, get)) - def getFileId(self, url): - self.fileId = re.match(OboomCom.__pattern__, url).group('ID') + def get_file_id(self, url): + self.file_id = re.match(OboomCom.__pattern__, url).group('ID') - def getSessionToken(self): + def get_session_token(self): if self.premium: - accountInfo = self.account.getAccountInfo(self.user, True) + accountInfo = self.account.get_data(self.user, True) if "session" in accountInfo: - self.sessionToken = accountInfo['session'] + self.session_token = accountInfo['session'] else: self.fail(_("Could not retrieve premium session")) else: - apiUrl = "https://www.oboom.com/1.0/guestsession" - result = self.loadUrl(apiUrl) + apiUrl = "http://www.oboom.com/1.0/guestsession" + result = self.load_url(apiUrl) if result[0] == 200: - self.sessionToken = result[1] + self.session_token = result[1] else: self.fail(_("Could not retrieve token for guest session. Error code: %s") % result[0]) - def solveCaptcha(self): + def solve_captcha(self): recaptcha = ReCaptcha(self) for _i in xrange(5): response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY) - apiUrl = "https://www.oboom.com/1.0/download/ticket" - params = {"recaptcha_challenge_field": challenge, - "recaptcha_response_field": response, - "download_id": self.fileId, - "token": self.sessionToken} - result = self.loadUrl(apiUrl, params) + apiUrl = "http://www.oboom.com/1.0/download/ticket" + params = {'recaptcha_challenge_field': challenge, + 'recaptcha_response_field': response, + 'download_id': self.file_id, + 'token': self.session_token} + result = self.load_url(apiUrl, params) if result[0] == 200: - self.downloadToken = result[1] - self.downloadAuth = result[2] - self.correctCaptcha() - self.setWait(30) - self.wait() + self.download_token = result[1] + self.download_auth = result[2] + self.captcha.correct() + self.wait(30) break elif result[0] == 400: if result[1] == "incorrect-captcha-sol": - self.invalidCaptcha() + self.captcha.invalid() elif result[1] == "captcha-timeout": - self.invalidCaptcha() + self.captcha.invalid() elif result[1] == "forbidden": self.retry(5, 15 * 60, _("Service unavailable")) elif result[0] == 403: - if result[1] == -1: # another download is running - self.setWait(15 * 60) + if result[1] == -1: #: Another download is running + self.set_wait(15 * 60) else: - self.setWait(result[1], True) + self.set_wait(result[1], True) self.wait() self.retry(5) else: - self.invalidCaptcha() + self.captcha.invalid() self.fail(_("Received invalid captcha 5 times")) - def getFileInfo(self, token, fileId): - apiUrl = "https://api.oboom.com/1.0/info" - params = {"token": token, "items": fileId, "http_errors": 0} + def get_fileInfo(self, token, fileId): + apiUrl = "http://api.oboom.com/1.0/info" + params = {'token': token, 'items': fileId, 'http_errors': 0} - result = self.loadUrl(apiUrl, params) + result = self.load_url(apiUrl, params) if result[0] == 200: item = result[1][0] if item['state'] == "online": - self.fileSize = item['size'] - self.fileName = item['name'] + self.file_size = item['size'] + self.file_name = item['name'] else: self.offline() else: self.fail(_("Could not retrieve file info. Error code %s: %s") % (result[0], result[1])) - def getDownloadTicket(self): - apiUrl = "https://api.oboom.com/1/dl" - params = {"item": self.fileId, "http_errors": 0} + def get_download_ticket(self): + apiUrl = "http://api.oboom.com/1/dl" + params = {'item': self.file_id, 'http_errors': 0} if self.premium: - params['token'] = self.sessionToken + params['token'] = self.session_token else: - params['token'] = self.downloadToken - params['auth'] = self.downloadAuth + params['token'] = self.download_token + params['auth'] = self.download_auth - result = self.loadUrl(apiUrl, params) + result = self.load_url(apiUrl, params) if result[0] == 200: - self.downloadDomain = result[1] - self.downloadTicket = result[2] + self.download_domain = result[1] + self.download_ticket = result[2] elif result[0] == 421: self.retry(wait_time=result[2] + 60, reason=_("Connection limit exceeded")) else: |