misc: handle non-ascii characters in xml of themes (#6236)

This commit is contained in:
Frédéric Péters 2015-01-05 22:15:10 +01:00
parent d1d9520d13
commit ed4b3997ab
1 changed files with 9 additions and 4 deletions

View File

@ -78,11 +78,16 @@ def get_theme_dict(theme_xml):
tree = ET.parse(theme_xml).getroot()
except: # parse error
return None
name = tree.attrib['name']
publisher = get_publisher()
def encode_string(x):
if publisher:
return unicode(x).encode(publisher.site_charset)
return x
name = encode_string(tree.attrib['name'])
version = tree.attrib.get('version')
label = tree.findtext('label')
desc = tree.findtext('desc')
author = tree.findtext('author')
label = encode_string(tree.findtext('label'))
desc = encode_string(tree.findtext('desc'))
author = encode_string(tree.findtext('author'))
icon = None
if type(theme_xml) is str:
icon = os.path.join(os.path.dirname(theme_xml), 'icon.png')