summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--module/plugins/internal/Plugin.py10
-rw-r--r--module/plugins/internal/SimpleHoster.py5
2 files changed, 13 insertions, 2 deletions
diff --git a/module/plugins/internal/Plugin.py b/module/plugins/internal/Plugin.py
index b0c0bb66e..fd8712b44 100644
--- a/module/plugins/internal/Plugin.py
+++ b/module/plugins/internal/Plugin.py
@@ -7,6 +7,7 @@ import inspect
import os
import re
import urllib
+import unicodedata
if os.name != "nt":
import grp
@@ -51,6 +52,15 @@ def fixurl(url):
return html_unescape(urllib.unquote(url.decode('unicode-escape'))).strip().rstrip('/')
+def fixname(m):
+ m = unicodedata.normalize('NFKD', m)
+ output = ''
+ for c in m:
+ if not unicodedata.combining(c):
+ output += c
+ return output
+
+
#@TODO: Move to utils in 0.4.10
def timestamp():
return int(time.time() * 1000)
diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py
index 968a80b63..89af22c87 100644
--- a/module/plugins/internal/SimpleHoster.py
+++ b/module/plugins/internal/SimpleHoster.py
@@ -11,7 +11,7 @@ from module.PyFile import statusMap as _statusMap
from module.network.HTTPRequest import BadHeader
from module.network.RequestFactory import getURL as get_url
from module.plugins.internal.Hoster import Hoster, create_getInfo, parse_fileInfo
-from module.plugins.internal.Plugin import Fail, encode, fixurl, replace_patterns, seconds_to_midnight, set_cookie, set_cookies
+from module.plugins.internal.Plugin import Fail, encode, fixurl, fixname, replace_patterns, seconds_to_midnight, set_cookie, set_cookies
from module.utils import fixup, fs_encode, parseFileSize as parse_size
@@ -175,7 +175,8 @@ class SimpleHoster(Hoster):
info['status'] = 2
if 'N' in info['pattern']:
- info['name'] = replace_patterns(fixurl(info['pattern']['N']),
+ name = fixname(info['pattern']['N'])
+ info['name'] = replace_patterns(fixurl(name),
cls.NAME_REPLACEMENTS)
if 'S' in info['pattern']: