summaryrefslogtreecommitdiffstats
path: root/pyload/plugin/internal
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugin/internal')
-rw-r--r--pyload/plugin/internal/SimpleHoster.py11
-rw-r--r--pyload/plugin/internal/XFSCrypter.py6
-rw-r--r--pyload/plugin/internal/XFSHoster.py16
3 files changed, 14 insertions, 19 deletions
diff --git a/pyload/plugin/internal/SimpleHoster.py b/pyload/plugin/internal/SimpleHoster.py
index a87986330..d3e2edc48 100644
--- a/pyload/plugin/internal/SimpleHoster.py
+++ b/pyload/plugin/internal/SimpleHoster.py
@@ -244,10 +244,11 @@ def secondsToMidnight(gmt=0):
class SimpleHoster(Hoster):
__name = "SimpleHoster"
__type = "hoster"
- __version = "1.40"
+ __version = "1.42"
__pattern = r'^unmatchable$'
- __config = [("use_premium", "bool", "Use premium account if available", True)]
+ __config = [("use_premium", "bool", "Use premium account if available" , True),
+ ("fallback" , "bool", "Fallback to free download if premium fails", True)]
__description = """Simple hoster plugin"""
__license = "GPLv3"
@@ -487,8 +488,8 @@ class SimpleHoster(Hoster):
self.checkFile()
except Fail, e: #@TODO: Move to PluginThread in 0.4.10
- if self.premium:
- self.logWarning(_("Premium download failed"))
+ if self.getConfig('fallback', True) and self.premium:
+ self.logWarning(_("Premium download failed"), e)
self.retryFree()
else:
raise Fail(e)
@@ -745,7 +746,7 @@ class SimpleHoster(Hoster):
self.premium = False
self.account = None
self.req = self.core.requestFactory.getRequest(self.getClassName())
- self.retries = 0
+ self.retries = -1
raise Retry(_("Fallback to free download"))
diff --git a/pyload/plugin/internal/XFSCrypter.py b/pyload/plugin/internal/XFSCrypter.py
index 4297de842..85b99712a 100644
--- a/pyload/plugin/internal/XFSCrypter.py
+++ b/pyload/plugin/internal/XFSCrypter.py
@@ -6,7 +6,7 @@ from pyload.plugin.internal.SimpleCrypter import SimpleCrypter
class XFSCrypter(SimpleCrypter):
__name = "XFSCrypter"
__type = "crypter"
- __version = "0.07"
+ __version = "0.08"
__pattern = r'^unmatchable$'
@@ -19,8 +19,8 @@ class XFSCrypter(SimpleCrypter):
URL_REPLACEMENTS = [(r'&?per_page=\d+', ""), (r'[?/&]+$', ""), (r'(.+/[^?]+)$', r'\1?'), (r'$', r'&per_page=10000')]
- LINK_PATTERN = r'<a href="(.+?)".*?>.+?(?:</a>)?\s*</(?:td|TD)>'
- NAME_PATTERN = r'<[tT]itle>.*?\: (?P<N>.+) folder</[tT]itle>'
+ LINK_PATTERN = r'<a href="(.+?)".*?>.+?(?:</a>)?\s*(<.+>\s*)?</(?:td|TD)>'
+ NAME_PATTERN = r'<[Tt]itle>.*?\: (?P<N>.+) folder</[Tt]itle>'
OFFLINE_PATTERN = r'>\s*\w+ (Not Found|file (was|has been) removed)'
TEMP_OFFLINE_PATTERN = r'>\s*\w+ server (is in )?(maintenance|maintainance)'
diff --git a/pyload/plugin/internal/XFSHoster.py b/pyload/plugin/internal/XFSHoster.py
index 3f7aeeee8..956f02b95 100644
--- a/pyload/plugin/internal/XFSHoster.py
+++ b/pyload/plugin/internal/XFSHoster.py
@@ -11,7 +11,7 @@ from pyload.utils import html_unescape
class XFSHoster(SimpleHoster):
__name = "XFSHoster"
__type = "hoster"
- __version = "0.46"
+ __version = "0.47"
__pattern = r'^unmatchable$'
@@ -34,7 +34,7 @@ class XFSHoster(SimpleHoster):
OFFLINE_PATTERN = r'>\s*\w+ (Not Found|file (was|has been) removed)'
TEMP_OFFLINE_PATTERN = r'>\s*\w+ server (is in )?(maintenance|maintainance)'
- WAIT_PATTERN = r'<span id="countdown_str">.*?>(\d+)</span>|id="countdown" value=".*?(\d+).*?"'
+ WAIT_PATTERN = r'<span id="countdown_str".*>(\d+)</span>|id="countdown" value=".*?(\d+).*?"'
PREMIUM_ONLY_PATTERN = r'>This file is available for Premium Users only'
ERROR_PATTERN = r'(?:class=["\']err["\'].*?>|<[Cc]enter><b>|>Error</td>|>\(ERROR:)(?:\s*<.+?>\s*)*(.+?)(?:["\']|<|\))'
@@ -142,10 +142,7 @@ class XFSHoster(SimpleHoster):
action, inputs = self.parseHtmlForm('F1')
if not inputs:
- if self.errmsg:
- self.retry(reason=self.errmsg)
- else:
- self.error(_("TEXTAREA F1 not found"))
+ self.retry(reason=self.errmsg or _("TEXTAREA F1 not found"))
self.logDebug(inputs)
@@ -198,7 +195,7 @@ class XFSHoster(SimpleHoster):
self.fail(_("File can be downloaded by premium users only"))
elif 'limit' in self.errmsg:
- if 'days' in self.errmsg:
+ if 'day' in self.errmsg:
delay = secondsToMidnight(gmt=2)
retries = 3
else:
@@ -236,10 +233,7 @@ class XFSHoster(SimpleHoster):
if not inputs:
action, inputs = self.parseHtmlForm('F1')
if not inputs:
- if self.errmsg:
- self.retry(reason=self.errmsg)
- else:
- self.error(_("TEXTAREA F1 not found"))
+ self.retry(reason=self.errmsg or _("TEXTAREA F1 not found"))
self.logDebug(inputs)