summaryrefslogtreecommitdiffstats
path: root/module/plugins/internal/XFSHoster.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/internal/XFSHoster.py')
-rw-r--r--module/plugins/internal/XFSHoster.py33
1 files changed, 21 insertions, 12 deletions
diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py
index 8af6b83ed..ce87642f0 100644
--- a/module/plugins/internal/XFSHoster.py
+++ b/module/plugins/internal/XFSHoster.py
@@ -14,10 +14,13 @@ from module.utils import html_unescape
class XFSHoster(SimpleHoster):
__name__ = "XFSHoster"
__type__ = "hoster"
- __version__ = "0.61"
+ __version__ = "0.62"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
+ __config__ = [("use_premium" , "bool", "Use premium account if available" , True),
+ ("fallback_premium", "bool", "Fallback to free download if premium fails", True),
+ ("chk_filesize" , "bool", "Check file size" , True)]
__description__ = """XFileSharing hoster plugin"""
__license__ = "GPLv3"
@@ -57,6 +60,16 @@ class XFSHoster(SimpleHoster):
self.resume_download = self.multiDL = self.premium
+ def set_xfs_cookie(self):
+ if not self.COOKIES:
+ return
+
+ if isinstance(self.COOKIES, list) and (self.PLUGIN_DOMAIN, "lang", "english") not in self.COOKIES:
+ self.COOKIES.insert((self.PLUGIN_DOMAIN, "lang", "english"))
+ else:
+ set_cookie(self.req.cj, self.PLUGIN_DOMAIN, "lang", "english")
+
+
def prepare(self):
"""
Initialize important variables
@@ -72,11 +85,7 @@ class XFSHoster(SimpleHoster):
else:
self.fail(_("Missing PLUGIN_DOMAIN"))
- if self.COOKIES:
- if isinstance(self.COOKIES, list) and (self.PLUGIN_DOMAIN, "lang", "english") not in self.COOKIES:
- self.COOKIES.insert((self.PLUGIN_DOMAIN, "lang", "english"))
- else:
- set_cookie(self.req.cj, self.PLUGIN_DOMAIN, "lang", "english")
+ self.set_xfs_cookie()
if not self.LINK_PATTERN:
pattern = r'(?:file: "(.+?)"|(https?://(?:www\.)?([^/]*?%s|\d+\.\d+\.\d+\.\d+)(\:\d+)?(/d/|(/files)?/\d+/\w+/).+?)["\'<])'
@@ -95,7 +104,7 @@ class XFSHoster(SimpleHoster):
self.check_errors()
m = re.search(self.LINK_PATTERN, self.html, re.S)
- if m:
+ if m is not None:
break
data = self.get_post_parameters()
@@ -111,7 +120,7 @@ class XFSHoster(SimpleHoster):
break
m = re.search(self.LINK_PATTERN, self.html, re.S)
- if m:
+ if m is not None:
break
else:
if 'op' in data:
@@ -163,7 +172,7 @@ class XFSHoster(SimpleHoster):
self.retry(20, 3 * 60, _("Can not leech file"))
elif 'today' in stmsg:
- self.retry(delay=seconds_to_midnight(), msg=_("You've used all Leech traffic today"))
+ self.retry(wait=seconds_to_midnight(), msg=_("You've used all Leech traffic today"))
else:
self.fail(stmsg)
@@ -202,7 +211,7 @@ class XFSHoster(SimpleHoster):
if not self.premium:
m = re.search(self.WAIT_PATTERN, self.html)
- if m:
+ if m is not None:
wait_time = int(m.group(1))
self.set_wait(wait_time, False)
@@ -223,13 +232,13 @@ class XFSHoster(SimpleHoster):
def handle_captcha(self, inputs):
m = re.search(self.CAPTCHA_PATTERN, self.html)
- if m:
+ if m is not None:
captcha_url = m.group(1)
inputs['code'] = self.captcha.decrypt(captcha_url)
return
m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.html, re.S)
- if m:
+ if m is not None:
captcha_div = m.group(1)
numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div))