summaryrefslogtreecommitdiffstats
path: root/module/plugins/internal
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/internal')
-rw-r--r--module/plugins/internal/Addon.py7
-rw-r--r--module/plugins/internal/Base.py6
-rw-r--r--module/plugins/internal/Plugin.py8
-rw-r--r--module/plugins/internal/UnRar.py2
4 files changed, 13 insertions, 10 deletions
diff --git a/module/plugins/internal/Addon.py b/module/plugins/internal/Addon.py
index cf3f01df1..ae61acf65 100644
--- a/module/plugins/internal/Addon.py
+++ b/module/plugins/internal/Addon.py
@@ -23,7 +23,7 @@ def threaded(fn):
class Addon(Plugin):
__name__ = "Addon"
__type__ = "hook" #@TODO: Change to `addon` in 0.4.10
- __version__ = "0.07"
+ __version__ = "0.08"
__status__ = "testing"
__threaded__ = [] #@TODO: Remove in 0.4.10
@@ -46,6 +46,8 @@ class Addon(Plugin):
#: List of events the plugin can handle, name the functions exactly like eventname.
self.event_list = [] #@NOTE: dont make duplicate entries in event_map
+ self.info['ip'] = None #@TODO: Remove in 0.4.10
+
#: Callback of periodical job task, used by HookManager
self.cb = None
self.interval = 60
@@ -210,7 +212,8 @@ class Addon(Plugin):
#: Deprecated method, use `after_reconnect` instead (Remove in 0.4.10)
def afterReconnecting(self, ip):
- return self.after_reconnect(ip, None)
+ self.after_reconnect(ip, self.info['ip'])
+ self.info['ip'] = ip
def captcha_task(self, task):
diff --git a/module/plugins/internal/Base.py b/module/plugins/internal/Base.py
index 28bc47556..51be82bd4 100644
--- a/module/plugins/internal/Base.py
+++ b/module/plugins/internal/Base.py
@@ -52,7 +52,7 @@ def check_abort(fn):
class Base(Plugin):
__name__ = "Base"
__type__ = "base"
- __version__ = "0.03"
+ __version__ = "0.04"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
@@ -110,7 +110,7 @@ class Base(Plugin):
@classmethod
def get_info(cls, url="", html=""):
- url = fixurl(url)
+ url = fixurl(url, unquote=True)
info = {'name' : parse_name(url),
'size' : 0,
'status': 3 if url else 8,
@@ -378,7 +378,7 @@ class Base(Plugin):
def fixurl(self, url, baseurl=None, unquote=True):
- url = fixurl(url)
+ url = fixurl(url, unquote=False)
if not baseurl:
baseurl = fixurl(self.pyfile.url)
diff --git a/module/plugins/internal/Plugin.py b/module/plugins/internal/Plugin.py
index 9d2aa8b50..d89c3d2c0 100644
--- a/module/plugins/internal/Plugin.py
+++ b/module/plugins/internal/Plugin.py
@@ -60,7 +60,7 @@ def fixurl(url, unquote=None):
if unquote is None:
unquote = newurl == url
- newurl = html_unescape(newurl.decode('unicode-escape'))
+ newurl = html_unescape(decode(newurl).decode('unicode-escape'))
newurl = re.sub(r'(?<!:)/{2,}', '/', newurl).strip().lstrip('.')
if not unquote:
@@ -96,7 +96,7 @@ def str2int(string):
t_tuple = [(w, i * 10) for i, w in enumerate(tens)]
numwords = dict(o_tuple + t_tuple)
- tokens = re.split(r"[\s-]+", string.lower())
+ tokens = re.split(r"[\s\-]+", string.lower())
try:
return sum(numwords[word] for word in tokens)
@@ -226,7 +226,7 @@ def chunks(iterable, size):
class Plugin(object):
__name__ = "Plugin"
__type__ = "plugin"
- __version__ = "0.47"
+ __version__ = "0.48"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
@@ -398,7 +398,7 @@ class Plugin(object):
self.log_debug("LOAD URL " + url,
*["%s=%s" % (key, val) for key, val in locals().items() if key not in ("self", "url", "_[1]")])
- url = fixurl(url) #: Recheck in 0.4.10
+ url = fixurl(url, unquote=True) #: Recheck in 0.4.10
if req is None:
req = self.req or self.pyload.requestFactory.getRequest(self.__name__)
diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py
index 39a919ec6..f31a386a7 100644
--- a/module/plugins/internal/UnRar.py
+++ b/module/plugins/internal/UnRar.py
@@ -38,7 +38,7 @@ class UnRar(Extractor):
re_multipart = re.compile(r'\.(part|r)(\d+)(?:\.rar)?(\.rev|\.bad)?', re.I)
re_filefixed = re.compile(r'Building (.+)')
- re_filelist = re.compile(r'^(.)(\s*[\w.-]+)\s+(\d+\s+)+(?:\d+\%\s+)?[\d-]{8}\s+[\d\:]{5}', re.M|re.I)
+ re_filelist = re.compile(r'^(.)(\s*[\w\-.]+)\s+(\d+\s+)+(?:\d+\%\s+)?[\d\-]{8}\s+[\d\:]{5}', re.M|re.I)
re_wrongpwd = re.compile(r'password', re.I)
re_wrongcrc = re.compile(r'encrypted|damaged|CRC failed|checksum error|corrupt', re.I)