summaryrefslogtreecommitdiff
path: root/src/webvicli
diff options
context:
space:
mode:
authorAntti Ajanki <antti.ajanki@iki.fi>2011-06-12 15:18:36 +0300
committerAntti Ajanki <antti.ajanki@iki.fi>2011-06-12 15:18:36 +0300
commit541779154be54e113ddd8bfac7245aed484e9ced (patch)
tree3c4384f255b27db0c930defd14052374af9febbe /src/webvicli
parentbd478ec0ef43d29f47a8892d558280cdd05a1dbb (diff)
downloadvdr-plugin-webvideo-541779154be54e113ddd8bfac7245aed484e9ced.tar.gz
vdr-plugin-webvideo-541779154be54e113ddd8bfac7245aed484e9ced.tar.bz2
Fix Katsomo, add encoding attribute to <submission> node
Diffstat (limited to 'src/webvicli')
-rw-r--r--src/webvicli/webvicli/client.py6
-rw-r--r--src/webvicli/webvicli/menu.py10
2 files changed, 13 insertions, 3 deletions
diff --git a/src/webvicli/webvicli/client.py b/src/webvicli/webvicli/client.py
index 78a933d..f82c32a 100644
--- a/src/webvicli/webvicli/client.py
+++ b/src/webvicli/webvicli/client.py
@@ -279,14 +279,18 @@ class WVClient:
def parse_button(self, node, queryitems):
label = ''
submission = None
+ encoding = 'utf-8'
child = node.children
while child:
if child.name == 'label':
label = webvi.utils.get_content_unicode(child)
elif child.name == 'submission':
submission = webvi.utils.get_content_unicode(child)
+ enc = child.hasProp('encoding')
+ if enc is not None:
+ encoding = webvi.utils.get_content_unicode(enc)
child = child.next
- return menu.MenuItemSubmitButton(label, submission, queryitems)
+ return menu.MenuItemSubmitButton(label, submission, queryitems, encoding)
def guess_extension(self, mimetype, url):
ext = mimetypes.guess_extension(mimetype)
diff --git a/src/webvicli/webvicli/menu.py b/src/webvicli/webvicli/menu.py
index f1f1f21..d8551a7 100644
--- a/src/webvicli/webvicli/menu.py
+++ b/src/webvicli/webvicli/menu.py
@@ -145,13 +145,14 @@ class MenuItemList:
class MenuItemSubmitButton:
- def __init__(self, label, baseurl, subitems):
+ def __init__(self, label, baseurl, subitems, encoding):
self.label = label
if type(baseurl) == unicode:
self.baseurl = baseurl.encode('utf-8')
else:
self.baseurl = baseurl
self.subitems = subitems
+ self.encoding = encoding
def __str__(self):
return '[' + self.label + ']'
@@ -166,6 +167,11 @@ class MenuItemSubmitButton:
parts = []
for sub in self.subitems:
for key, val in sub.get_query().iteritems():
- parts.append('subst=' + urllib.quote_plus(key.encode('utf-8')) + ',' + urllib.quote_plus(val.encode('utf-8')))
+ try:
+ parts.append('subst=' + \
+ urllib.quote_plus(key.encode(self.encoding, 'ignore')) + ',' + \
+ urllib.quote_plus(val.encode(self.encoding, 'ignore')))
+ except LookupError:
+ pass
return baseurl + '&'.join(parts)