summaryrefslogtreecommitdiffstats
path: root/pyload/plugin/internal
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-04-13 17:20:59 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-04-13 17:20:59 +0200
commite00ef98491f79ae8aa972ae1473dae4a7b78c07e (patch)
tree31be0c7cdcebb61525bcc387bcf15d265a1c494a /pyload/plugin/internal
parentFix except (diff)
downloadpyload-e00ef98491f79ae8aa972ae1473dae4a7b78c07e.tar.xz
Cleanup
Diffstat (limited to 'pyload/plugin/internal')
-rw-r--r--pyload/plugin/internal/BasePlugin.py2
-rw-r--r--pyload/plugin/internal/DeadCrypter.py2
-rw-r--r--pyload/plugin/internal/DeadHoster.py2
-rw-r--r--pyload/plugin/internal/SimpleCrypter.py1
-rw-r--r--pyload/plugin/internal/SimpleHoster.py30
-rw-r--r--pyload/plugin/internal/XFSHoster.py8
6 files changed, 44 insertions, 1 deletions
diff --git a/pyload/plugin/internal/BasePlugin.py b/pyload/plugin/internal/BasePlugin.py
index 996dc8e76..1ddfee122 100644
--- a/pyload/plugin/internal/BasePlugin.py
+++ b/pyload/plugin/internal/BasePlugin.py
@@ -24,6 +24,8 @@ class BasePlugin(Hoster):
@classmethod
+
+
def getInfo(cls, url="", html=""): #@TODO: Move to hoster class in 0.4.10
url = unquote(url)
url_p = urlparse(url)
diff --git a/pyload/plugin/internal/DeadCrypter.py b/pyload/plugin/internal/DeadCrypter.py
index daa7e1a0d..c66a1b5e3 100644
--- a/pyload/plugin/internal/DeadCrypter.py
+++ b/pyload/plugin/internal/DeadCrypter.py
@@ -16,6 +16,8 @@ class DeadCrypter(_Crypter):
@classmethod
+
+
def apiInfo(cls, url="", get={}, post={}):
api = super(DeadCrypter, self).apiInfo(url, get, post)
api['status'] = 1
diff --git a/pyload/plugin/internal/DeadHoster.py b/pyload/plugin/internal/DeadHoster.py
index 2e57decdb..5f00d0128 100644
--- a/pyload/plugin/internal/DeadHoster.py
+++ b/pyload/plugin/internal/DeadHoster.py
@@ -16,6 +16,8 @@ class DeadHoster(_Hoster):
@classmethod
+
+
def apiInfo(cls, url="", get={}, post={}):
api = super(DeadHoster, self).apiInfo(url, get, post)
api['status'] = 1
diff --git a/pyload/plugin/internal/SimpleCrypter.py b/pyload/plugin/internal/SimpleCrypter.py
index ba5cb991c..f6c5aa5e2 100644
--- a/pyload/plugin/internal/SimpleCrypter.py
+++ b/pyload/plugin/internal/SimpleCrypter.py
@@ -49,7 +49,6 @@ class SimpleCrypter(Crypter, SimpleHoster):
and its loadPage method:
-
def loadPage(self, page_n):
return the html of the page number page_n
"""
diff --git a/pyload/plugin/internal/SimpleHoster.py b/pyload/plugin/internal/SimpleHoster.py
index 79b3cac1a..b32cb60c0 100644
--- a/pyload/plugin/internal/SimpleHoster.py
+++ b/pyload/plugin/internal/SimpleHoster.py
@@ -311,12 +311,16 @@ class SimpleHoster(Hoster):
@classmethod
+
+
def parseInfos(cls, urls): #@TODO: Built-in in 0.4.10 core (remove from plugins)
for url in urls:
url = replace_patterns(url, cls.URL_REPLACEMENTS)
yield cls.getInfo(url)
@classmethod
+
+
def apiInfo(cls, url="", get={}, post={}):
url = urllib.unquote(url)
url_p = urlparse.urlparse(url)
@@ -328,6 +332,8 @@ class SimpleHoster(Hoster):
'url': url}
@classmethod
+
+
def getInfo(cls, url="", html=""):
info = cls.apiInfo(url)
online = False if info['status'] != 2 else True
@@ -406,9 +412,11 @@ class SimpleHoster(Hoster):
return info
+
def setup(self):
self.resumeDownload = self.multiDL = self.premium
+
def prepare(self):
self.pyfile.error = "" #@TODO: Remove in 0.4.10
@@ -442,12 +450,14 @@ class SimpleHoster(Hoster):
self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS)
+
def preload(self):
self.html = self.load(self.pyfile.url, cookies=bool(self.COOKIES), decode=not self.TEXT_ENCODING)
if isinstance(self.TEXT_ENCODING, basestring):
self.html = unicode(self.html, self.TEXT_ENCODING)
+
def process(self, pyfile):
try:
self.prepare()
@@ -487,6 +497,7 @@ class SimpleHoster(Hoster):
else:
raise Fail(e)
+
def downloadLink(self, link, disposition=True):
if link and isinstance(link, basestring):
self.correctCaptcha()
@@ -498,6 +509,7 @@ class SimpleHoster(Hoster):
self.download(link, ref=False, disposition=disposition)
+
def checkFile(self, rules={}):
if self.cTask and not self.lastDownload:
self.invalidCaptcha()
@@ -538,6 +550,7 @@ class SimpleHoster(Hoster):
self.logWarning("Check result: " + errmsg, "Waiting 1 minute and retry")
self.retry(3, 60, errmsg)
+
def checkErrors(self):
if not self.html:
self.logWarning(_("No html code to check"))
@@ -582,6 +595,7 @@ class SimpleHoster(Hoster):
self.info.pop('error', None)
+
def checkStatus(self, getinfo=True):
if not self.info or getinfo:
self.logDebug("Update file info...")
@@ -604,6 +618,7 @@ class SimpleHoster(Hoster):
finally:
self.logDebug("File status: %s" % statusMap[status])
+
def checkNameSize(self, getinfo=True):
if not self.info or getinfo:
self.logDebug("Update file info...")
@@ -631,6 +646,7 @@ class SimpleHoster(Hoster):
self.logDebug("File name: %s" % self.pyfile.name,
"File size: %s byte" % self.pyfile.size if self.pyfile.size > 0 else "File size: Unknown")
+
def checkInfo(self):
self.checkNameSize()
@@ -641,11 +657,14 @@ class SimpleHoster(Hoster):
self.checkStatus(getinfo=False)
#: Deprecated
+
+
def getFileInfo(self):
self.info = {}
self.checkInfo()
return self.info
+
def handleDirect(self, pyfile):
link = self.directLink(pyfile.url, self.resumeDownload)
@@ -655,9 +674,11 @@ class SimpleHoster(Hoster):
else:
self.logDebug("Direct download link not found")
+
def handleMulti(self, pyfile): #: Multi-hoster handler
pass
+
def handleFree(self, pyfile):
if not hasattr(self, 'LINK_FREE_PATTERN'):
self.logError(_("Free download not implemented"))
@@ -668,6 +689,7 @@ class SimpleHoster(Hoster):
else:
self.link = m.group(1)
+
def handlePremium(self, pyfile):
if not hasattr(self, 'LINK_PREMIUM_PATTERN'):
self.logError(_("Premium download not implemented"))
@@ -680,6 +702,7 @@ class SimpleHoster(Hoster):
else:
self.link = m.group(1)
+
def longWait(self, wait_time=None, max_tries=3):
if wait_time and isinstance(wait_time, (int, long, float)):
time_str = "%dh %dm" % divmod(wait_time / 60, 60)
@@ -693,9 +716,11 @@ class SimpleHoster(Hoster):
self.wait(wait_time, True)
self.retry(max_tries=max_tries, reason=_("Download limit reached"))
+
def parseHtmlForm(self, attr_str="", input_names={}):
return parseHtmlForm(attr_str, self.html, input_names)
+
def checkTrafficLeft(self):
if not self.account:
return True
@@ -711,6 +736,7 @@ class SimpleHoster(Hoster):
self.logInfo(_("Filesize: %i KiB, Traffic left for user %s: %i KiB") % (size, self.user, traffic))
return size <= traffic
+
def getConfig(self, option, default=''): #@TODO: Remove in 0.4.10
"""getConfig with default value - sublass may not implements all config options"""
try:
@@ -719,6 +745,7 @@ class SimpleHoster(Hoster):
except KeyError:
return default
+
def retryFree(self):
if not self.premium:
return
@@ -729,8 +756,11 @@ class SimpleHoster(Hoster):
raise Retry(_("Fallback to free download"))
#@TODO: Remove in 0.4.10
+
+
def wait(self, seconds=0, reconnect=None):
return _wait(self, seconds, reconnect)
+
def error(self, reason="", type="parse"):
return _error(self, reason, type)
diff --git a/pyload/plugin/internal/XFSHoster.py b/pyload/plugin/internal/XFSHoster.py
index d2d5fb0dd..4cef261df 100644
--- a/pyload/plugin/internal/XFSHoster.py
+++ b/pyload/plugin/internal/XFSHoster.py
@@ -52,10 +52,12 @@ class XFSHoster(SimpleHoster):
FORM_PATTERN = None
FORM_INPUTS_MAP = None #: dict passed as input_names to parseHtmlForm
+
def setup(self):
self.chunkLimit = -1 if self.premium else 1
self.resumeDownload = self.multiDL = self.premium
+
def prepare(self):
""" Initialize important variables """
if not self.HOSTER_DOMAIN:
@@ -84,6 +86,7 @@ class XFSHoster(SimpleHoster):
if self.DIRECT_LINK is None:
self.directDL = self.premium
+
def handleFree(self, pyfile):
for i in xrange(1, 6):
self.logDebug("Getting download link: #%d" % i)
@@ -111,9 +114,11 @@ class XFSHoster(SimpleHoster):
self.link = m.group(1).strip() #@TODO: Remove .strip() in 0.4.10
+
def handlePremium(self, pyfile):
return self.handleFree(pyfile)
+
def handleMulti(self, pyfile):
if not self.account:
self.fail(_("Only registered or premium users can use url leech feature"))
@@ -171,6 +176,7 @@ class XFSHoster(SimpleHoster):
if 'location' in header: #: Direct download link
self.link = header['location']
+
def checkErrors(self):
m = re.search(self.ERROR_PATTERN, self.html)
if m is None:
@@ -223,6 +229,7 @@ class XFSHoster(SimpleHoster):
else:
self.info.pop('error', None)
+
def getPostParameters(self):
if self.FORM_PATTERN or self.FORM_INPUTS_MAP:
action, inputs = self.parseHtmlForm(self.FORM_PATTERN or "", self.FORM_INPUTS_MAP or {})
@@ -268,6 +275,7 @@ class XFSHoster(SimpleHoster):
return inputs
+
def handleCaptcha(self, inputs):
m = re.search(self.CAPTCHA_PATTERN, self.html)
if m: