diff options
Diffstat (limited to 'abs/core/supplemental-web/contents/list_cardmap.py')
-rwxr-xr-x | abs/core/supplemental-web/contents/list_cardmap.py | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/abs/core/supplemental-web/contents/list_cardmap.py b/abs/core/supplemental-web/contents/list_cardmap.py new file mode 100755 index 0000000..0c28e0e --- /dev/null +++ b/abs/core/supplemental-web/contents/list_cardmap.py @@ -0,0 +1,132 @@ +#!/usr/bin/python2 +import subprocess +import socket,sys +import urllib2 +from MythTV import MythBE,MythDB,MythLog + +def find_slave_hosts(): + slave_hosts=[] + try: + be=MythBE() + db = MythDB() + cursor = db.cursor() + except: + return slave_hosts + + try: + cmd="select hostname from settings where data='Slave_backend';" + cursor.execute(cmd) + results=cursor.fetchall() + for i in results: + slave_hosts.append(i[0]) + except: + return slave_hosts + return slave_hosts + +def read_local_tuner(): + tuner_list = [] + exportfile = '/etc/udev/mv-persistent-video.description' + try: + f = open(exportfile,"r") + for line in f.readlines(): + if line.startswith("#"): + continue + item = line.split(":") + if len(item) <= 1 : + continue + tuner_list.append(item) + except : + tuner_list.append(["notfound","notfound","notfound"]) + return tuner_list + +def parse_remote_tuners(the_page): + tuner_list=[] + the_page = the_page.split("\n") + try: + for line in the_page: + if line.startswith("#"): + continue + item = line.split(":") + if len(item) <= 1 : + continue + tuner_list.append(item) + except : + tuner_list.append(["notfound","notfound","notfound"]) + return tuner_list + + +def remote_tuners(slave_host): + default_timeout = 3 + socket.setdefaulttimeout(default_timeout) + slaveurl="http://%s:1337/cardlist.cgi" %slave_host + req = urllib2.Request(slaveurl) + response = urllib2.urlopen(req) + the_page = response.read() + #the_page="abc\nadef\na" + if the_page : + tuner_list = parse_remote_tuners(the_page) + print "</br>" + for statictuner in tuner_list: + if statictuner[1].find("notfound") > -1 : + print "Couldn't open tuner map" + print "</br>" + else: + print "<li> %s  %s" %(statictuner[1] ,statictuner[0]) + print "</br>" + print " static device node: %s" %statictuner[2] + print "</br>" + print "</br>" + else: + print "<li> no tuners found  " + + return + + + +mbelist = read_local_tuner() +slave_hosts = find_slave_hosts() + +#--------------MBE------------- +hostname = socket.gethostname() +print "<h2>" +print "__________ %s __________" %(hostname) +print "</h2>" +print "</br>" +print ''' +<div id="navcontainer"> +<ul id="navlist"> +''' + +for statictuner in mbelist: + if statictuner[1].find("notfound") > -1 : + print "Couldn't open tuner map" + print "</br>" + else: + print "<li> %s  %s" %(statictuner[1] ,statictuner[0]) + print "</br>" + print " static device node: %s" %statictuner[2] + print "</br>" + print "</br>" + +print '''</ul> </div>''' + +#---------Slave tuners +for i in slave_hosts: + print "<h2>" + print "__________ %s __________" %(i) + print "</h2>" + print "</br>" + print ''' + <div id="navcontainer"> + <ul id="navlist" ''' + #remote_tuners(i) + try: + remote_tuners(i) + pass + except: + print "</br>" + print "<li> Problem reading list from %s" %i + pass + print ''' </ul> </div>''' + + |