diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2009-06-11 12:46:49 +0200 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2009-06-11 12:46:49 +0200 |
| commit | 510fe63aa7bf232fcca7f2a3d0fdab2c45307b78 (patch) | |
| tree | 1d1fabf5758a4db48982d7dafd37d9d0c51bce2d /tools/host_tools/FormatConverter/satxml.py | |
| parent | 30562d78ee2be5fe628a88cce45f7671ff0644bb (diff) | |
| download | enigma2-510fe63aa7bf232fcca7f2a3d0fdab2c45307b78.tar.gz enigma2-510fe63aa7bf232fcca7f2a3d0fdab2c45307b78.zip | |
add a format converter, i.e. to convert from lamedb to sat.xml files
the main destination format of this converter is a sat.xml file
easily extendable with further datasources
Diffstat (limited to 'tools/host_tools/FormatConverter/satxml.py')
| -rw-r--r-- | tools/host_tools/FormatConverter/satxml.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tools/host_tools/FormatConverter/satxml.py b/tools/host_tools/FormatConverter/satxml.py new file mode 100644 index 00000000..5e2069e3 --- /dev/null +++ b/tools/host_tools/FormatConverter/satxml.py @@ -0,0 +1,87 @@ +import os +from datasource import datasource +from xml.dom import minidom +from xml.dom.minidom import Document +from input import inputText + +class satxml(datasource): + def __init__(self, filename = "satellites.xml"): + self.filename = filename + datasource.__init__(self) + + if not os.path.isfile(filename): + print "File %s doesn't exist. Creating it." % filename + + def getStatus(self): + text = datasource.getStatus(self) + return text + + def getCapabilities(self): + return [("set filename", self.setFilename), ("read file", self.read), ("write file", self.write), ("print all", self.printAll)] + + def getName(self): + return "satellites.xml" + + def setFilename(self): + print "Please give a filename <satellites.xml>:" + filename = inputText() + if filename == "": + self.filename = "satellites.xml" + else: + self.filename = filename + print "Filename set to %s" % self.filename + + def read(self): + basicsatxml = minidom.parse(self.filename) + + for sat in basicsatxml.firstChild.childNodes: + if sat.nodeType == sat.ELEMENT_NODE and sat.localName == "sat": + print sat.localName + satname = str(sat.getAttribute("name")) + satpos = str(sat.getAttribute("position")) + self.addSat(satname, satpos) + for transponder in sat.childNodes: + if transponder.nodeType == transponder.ELEMENT_NODE and transponder.localName == "transponder": + parameters = {} + paramlist = ["frequency", "symbol_rate", "polarization", "fec", "system", "modulation", "tsid", "onid"] + for param in paramlist: + entry = str(transponder.getAttribute(param)) + if entry != "": + parameters[param] = entry + if len(parameters.keys()) > 1: + self.addTransponder(satpos, parameters) + print self.transponderlist + + def write(self): + satxml = Document() + satellites = satxml.createElement("satellites") + satxml.appendChild(satellites) + satlist = self.transponderlist.keys() + print self.transponderlist + satlist.sort() + + for sat in satlist: + xmlsat = satxml.createElement("sat") + xmlsat.setAttribute("name", self.satnames[sat]) + xmlsat.setAttribute("flags", "1") + xmlsat.setAttribute("position", sat) + satellites.appendChild(xmlsat) + transponders = self.transponderlist[sat] + transponders.sort(key = lambda a: a["frequency"]) + + for transponder in transponders: + xmltransponder = satxml.createElement("transponder") + paramlist = ["frequency", "symbol_rate", "polarization", "fec", "system", "modulation", "tsid", "onid"] + for param in paramlist: + if transponder.has_key(param): + xmltransponder.setAttribute(param, transponder[param]) + xmlsat.appendChild(xmltransponder) + prettyxml = satxml.toprettyxml() + print prettyxml + file = open(self.filename, "w") + file.write(prettyxml) + file.close() + + + +
\ No newline at end of file |
