1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
#!/usr/bin/env python
# $Id$
import sys
from xml.dom.minidom import *
class Item:
def __init__(self, input):
self.xml = parseString(input)
def __getNodeData(self, data):
try:
title = self.xml.getElementsByTagName(data)[0]
if (len(title.childNodes) > 0):
if (title.childNodes[0].nodeType == title.childNodes[0].TEXT_NODE):
return title.childNodes[0].data
return ''
except:
return ''
def __getNode(self, data):
try:
title = self.xml.getElementsByTagName(data)[0]
if (len(title.childNodes) > 0):
if (title.childNodes[0].nodeType == title.childNodes[0].TEXT_NODE):
return title.childNodes[0]
else:
text = self.xml.createTextNode("")
title.appendChild(text)
return title.childNodes[0]
except:
return None
def getTitle(self):
return self.__getNodeData("dc:title")
def setTitle(self, data):
node = self.__getNode("dc:title")
node.data = data
def getClass(self):
return self.__getNodeData("upnp:class")
def setClass(self, data):
node = self.__getNode("upnp:class")
node.data = data
def getAction(self):
return self.__getNodeData("action")
def setAction(self, data):
node = self.__getNode("action")
node.data = data
def getState(self):
return self.__getNodeData("state")
def setState(self, data):
node = self.__getNode("state")
node.data = data
def getLocation(self):
return self.__getNodeData("location")
def setLocation(self, data):
node = self.__getNode("location")
node.data = data
def getMimeType(self):
return self.__getNodeData("mime-type")
def setMimeType(self, data):
node = self.__getNode("mime-type")
node.data = data
def render(self):
return self.xml.toxml()
def getDescription(self):
return self.__getNodeData("dc:description")
def setDescription(self, data):
node = self.__getNode("dc:description")
node.data = data
item = Item(sys.stdin.read())
if (item.getState() == "1"):
item.setState("0")
item.setTitle("Turn ON")
item.setDescription("Your toggle item is turned OFF, press PLAY to turn it ON.")
item.setLocation("/tmp/path/to/picture_1.jpeg")
else:
item.setState("1")
item.setTitle("Turn OFF")
item.setDescription("Your toggle item is turned ON, press PLAY to turn it OFF.")
item.setLocation("/tmp/path/to/picture_2.jpeg")
# here you could run any program you want.. just make sure that it stays
# silent on stdout
# os.system("/run/something/useful")
sys.stdout.write(item.render())
|