12345678910111213141516171819202122232425262728293031323334353637 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import
-
- import os
- from xml.dom.minidom import parse
-
- import kodiswift.mockxbmc.polib as polib
-
-
- def load_addon_strings(addon, filename):
- """This is not an official Kodi method, it is here to facilitate
- mocking up the other methods when running outside of Kodi."""
- def get_strings(fn):
- if os.path.exists(filename):
- po = polib.pofile(fn)
- return {entry.msgctxt[1:]: entry.msgid for entry in po}
- else:
- fn = os.path.splitext(fn)[0] + '.xml'
- xml = parse(fn)
- strings = {tag.getAttribute('id'): tag.firstChild.data
- for tag in xml.getElementsByTagName('string')}
- return strings
- addon._strings = get_strings(filename)
-
-
- def get_addon_id(addon_xml):
- """Parses an addon id from the given addon.xml filename."""
- xml = parse(addon_xml)
- addon_node = xml.getElementsByTagName('addon')[0]
- return addon_node.getAttribute('id')
-
-
- def get_addon_name(addon_xml):
- """Parses an addon name from the given addon.xml filename."""
- xml = parse(addon_xml)
- addon_node = xml.getElementsByTagName('addon')[0]
- return addon_node.getAttribute('name')
|