summaryrefslogtreecommitdiffstats
path: root/linhes/linhes-web/website/contents/list_cardmap.py
diff options
context:
space:
mode:
Diffstat (limited to 'linhes/linhes-web/website/contents/list_cardmap.py')
-rwxr-xr-xlinhes/linhes-web/website/contents/list_cardmap.py156
1 files changed, 156 insertions, 0 deletions
diff --git a/linhes/linhes-web/website/contents/list_cardmap.py b/linhes/linhes-web/website/contents/list_cardmap.py
new file mode 100755
index 0000000..c77ed83
--- /dev/null
+++ b/linhes/linhes-web/website/contents/list_cardmap.py
@@ -0,0 +1,156 @@
+#!/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&nbsp;&nbsp;&nbsp%s" %(statictuner[1] ,statictuner[0])
+ print "</br>"
+ print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static device node: %s" %statictuner[2]
+ print "</br>"
+ print "</br>"
+ else:
+ print "<li> no tuners found &nbsp;&nbsp;&nbsp"
+
+ return
+
+
+
+mbelist = read_local_tuner()
+slave_hosts = find_slave_hosts()
+
+#--------------MBE-------------
+hostname = socket.gethostname()
+print "</br>"
+print "<h2>"
+print "__________ %s __________" %(hostname)
+print "</h2>"
+print "</br>"
+print '''
+<div id="navcontainer">
+<ul id="navlist">
+'''
+
+for statictuner in mbelist:
+ hdhr_url = None
+ if statictuner[1].find("notfound") > -1 :
+ print "Couldn't open tuner map"
+ print "</br>"
+ else:
+ ceton_url = None
+ hdhr_url = None
+ if statictuner[0] == "hdhr":
+ hdhr_url = statictuner[1].split("-")[-1]
+ elif statictuner[0] == "infinitv":
+ ceton_port = statictuner[3].strip()
+ #Services/1/Status.html
+ #print statictuner
+ ceton_tuner=statictuner[2].strip()[-1]
+ ceton_tuner = int(ceton_tuner) + 1
+ ceton_url = "http://%s:%s/Services/%s/Status.html" %(hostname,
+ ceton_port,
+ ceton_tuner)
+
+ #print "<li> %s&nbsp;&nbsp;&nbsp%s" %(statictuner[1] ,statictuner[0])
+ print "<li> %s&nbsp;&nbsp;&nbsp" %(statictuner[1])
+ print "</br>"
+ print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static device node: %s" %statictuner[2]
+
+ if hdhr_url:
+ print "</br>"
+ print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device webpage: <a href="http://%s">http://%s</a> ' %(hdhr_url.strip(),hdhr_url.strip())
+ if ceton_url:
+ print "</br>"
+ print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device webpage: <a href="%s">%s</a> ' %(ceton_url.strip(),ceton_url.strip())
+ 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>'''
+
+