summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/OboomCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/OboomCom.py')
-rw-r--r--module/plugins/hoster/OboomCom.py116
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: