From f93f9485744e2dcab971e90a817ee08197487c50 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Fri, 8 Jun 2012 03:26:58 +0200 Subject: [PATCH] Use the proper decoding function for titles --- resolv/resolvers/pastebin.py | 4 ++-- resolv/resolvers/putlocker.py | 4 ++-- resolv/resolvers/sockshare.py | 4 ++-- resolv/resolvers/youtube.py | 4 ++-- resolv/shared.py | 8 ++++++++ 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/resolv/resolvers/pastebin.py b/resolv/resolvers/pastebin.py index f418de4..f4e61c3 100644 --- a/resolv/resolvers/pastebin.py +++ b/resolv/resolvers/pastebin.py @@ -1,5 +1,5 @@ import re, urllib, urllib2 -from resolv.shared import ResolverError +from resolv.shared import ResolverError, unescape def resolve(url): matches = re.search("https?:\/\/(www\.)?pastebin\.com\/([a-zA-Z0-9]+)", url) @@ -19,6 +19,6 @@ def resolve(url): if matches is None: raise ResolverError("The provided URL is not a valid paste.") - paste_title = urllib.unquote(matches.group(1)) + paste_title = unescape(matches.group(1)) return { 'title': paste_title, 'files': { 'file': "http://pastebin.com/download.php?i=%s" % paste_id } } diff --git a/resolv/resolvers/putlocker.py b/resolv/resolvers/putlocker.py index 1e3ce21..9f485cd 100644 --- a/resolv/resolvers/putlocker.py +++ b/resolv/resolvers/putlocker.py @@ -1,5 +1,5 @@ import re -from resolv.shared import ResolverError +from resolv.shared import ResolverError, unescape def resolve(url): try: @@ -48,7 +48,7 @@ def resolve(url): video_file = matches.group(1) try: - video_title = urllib.unquote(re.search(']*>([^<]*)<\/strong><\/a>', page).group(1)) + video_title = unescape(re.search(']*>([^<]*)<\/strong><\/a>', page).group(1)) except: raise ResolverError("Could not find the video title.") diff --git a/resolv/resolvers/sockshare.py b/resolv/resolvers/sockshare.py index 35d1eb7..f1811c0 100644 --- a/resolv/resolvers/sockshare.py +++ b/resolv/resolvers/sockshare.py @@ -1,5 +1,5 @@ import re -from resolv.shared import ResolverError +from resolv.shared import ResolverError, unescape def resolve(url): try: @@ -48,7 +48,7 @@ def resolve(url): video_file = matches.group(1) try: - video_title = urllib.unquote(re.search(']*>([^<]*)<\/strong><\/a>', page).group(1)) + video_title = unescape(re.search(']*>([^<]*)<\/strong><\/a>', page).group(1)) except: raise ResolverError("Could not find the video title.") diff --git a/resolv/resolvers/youtube.py b/resolv/resolvers/youtube.py index fc190e2..aae294c 100644 --- a/resolv/resolvers/youtube.py +++ b/resolv/resolvers/youtube.py @@ -1,5 +1,5 @@ import re, urllib, urllib2 -from resolv.shared import ResolverError +from resolv.shared import ResolverError, unescape def resolve(url): try: @@ -69,7 +69,7 @@ def resolve(url): stream_pool['video_%s_%s' % (video_quality, video_format)] = video_url try: - video_title = urllib.unquote(re.search('', contents).group(1)) + video_title = unescape(re.search('', contents).group(1)) except: raise ResolverError("Could not find the video title.") diff --git a/resolv/shared.py b/resolv/shared.py index 9bfe869..1a6025a 100644 --- a/resolv/shared.py +++ b/resolv/shared.py @@ -4,3 +4,11 @@ class ResolverError(Exception): def __str__(self): return repr(self.val) + +def unescape(s): + s = s.replace("<", "<") + s = s.replace(">", ">") + s = s.replace(""", '"') + s = s.replace("'", "'") + s = s.replace("&", "&") + return s