diff options
| author | Antti Ajanki <antti.ajanki@iki.fi> | 2011-06-12 15:18:36 +0300 |
|---|---|---|
| committer | Antti Ajanki <antti.ajanki@iki.fi> | 2011-06-12 15:18:36 +0300 |
| commit | 541779154be54e113ddd8bfac7245aed484e9ced (patch) | |
| tree | 3c4384f255b27db0c930defd14052374af9febbe /src/webvicli | |
| parent | bd478ec0ef43d29f47a8892d558280cdd05a1dbb (diff) | |
| download | vdr-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.py | 6 | ||||
| -rw-r--r-- | src/webvicli/webvicli/menu.py | 10 |
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) |
