1
0
mirror of https://github.com/fHDHR/fHDHR_NextPVR.git synced 2025-12-06 05:56:57 -05:00

Add Streams Page

This commit is contained in:
deathbybandaid 2020-11-01 16:23:56 -05:00
parent 0776ca420a
commit 16eb946b72
4 changed files with 58 additions and 0 deletions

View File

@ -132,6 +132,11 @@ class HDHR_HTTP_Server():
base_url = request.headers["host"]
return fhdhrhub.get_diagnostics_html(base_url)
@app.route('/streams', methods=['GET'])
def streams_html():
base_url = request.headers["host"]
return fhdhrhub.get_streams_html(base_url)
@app.route('/version', methods=['GET'])
def version_html():
base_url = request.headers["host"]

View File

@ -71,6 +71,9 @@ class fHDHR_Hub():
def get_diagnostics_html(self, base_url):
return self.pages.diagnostics.get_diagnostics_html(base_url)
def get_streams_html(self, base_url):
return self.pages.streams.get_streams_html(base_url)
def get_version_html(self, base_url):
return self.pages.version.get_version_html(base_url)

View File

@ -6,6 +6,7 @@ from .index_html import Index_HTML
from .origin_html import Origin_HTML
from .cluster_html import Cluster_HTML
from .diagnostics_html import Diagnostics_HTML
from .streams_html import Streams_HTML
from .version_html import Version_HTML
from .channel_guide_html import Channel_Guide_HTML
@ -48,6 +49,7 @@ class fHDHR_Page_Elements():
"<button class=\"pull-left\" onclick=\"OpenLink('%s')\">%s</a></button>" % ("/version", "Version"),
"<button class=\"pull-left\" onclick=\"OpenLink('%s')\">%s</a></button>" % ("/diagnostics", "Diagnostics"),
"<button class=\"pull-left\" onclick=\"OpenLink('%s')\">%s</a></button>" % ("/cluster", "Cluster"),
"<button class=\"pull-left\" onclick=\"OpenLink('%s')\">%s</a></button>" % ("/streams", "Streams"),
"<a class=\"pull-right\" style=\"padding: 5px;\" href=\"%s\">%s</a>" % ("xmltv.xml", "xmltv"),
"<a class=\"pull-right\" style=\"padding: 5px;\" href=\"%s\">%s</a>" % ("channels.m3u", "m3u"),
@ -103,3 +105,4 @@ class fHDHR_Pages():
self.diagnostics = Diagnostics_HTML(settings, self.device, self.page_elements)
self.version = Version_HTML(settings, self.device, self.page_elements)
self.channel_guide = Channel_Guide_HTML(settings, self.device, self.page_elements)
self.streams = Streams_HTML(settings, self.device, self.page_elements)

View File

@ -0,0 +1,47 @@
from io import StringIO
class Streams_HTML():
def __init__(self, settings, device, page_elements):
self.config = settings
self.device = device
self.page_elements = page_elements
def get_streams_html(self, base_url, force_update=False):
fakefile = StringIO()
page_elements = self.page_elements.get()
for line in page_elements["top"]:
fakefile.write(line + "\n")
fakefile.write("<table style=\"width:100%\">\n")
fakefile.write(" <tr>\n")
fakefile.write(" <th>Tuner</th>\n")
fakefile.write(" <th>Status</th>\n")
fakefile.write(" <th>Channel</th>\n")
fakefile.write(" <th>Method</th>\n")
fakefile.write(" <th>Time Active</th>\n")
fakefile.write(" </tr>\n")
tuner_status = self.device.tuners.status()
for tuner in list(tuner_status.keys()):
fakefile.write(" <tr>\n")
fakefile.write(" <td>%s</td>\n" % (str(tuner)))
fakefile.write(" <td>%s</td>\n" % (str(tuner_status[tuner]["status"])))
if tuner_status[tuner]["status"] == "Active":
fakefile.write(" <td>%s<img src=\"%s\" alt=\"%s\" width=\"100\" height=\"100\">%s</td>\n" % (
tuner_status[tuner]["epg"]["name"], tuner_status[tuner]["epg"]["thumbnail"], tuner_status[tuner]["epg"]["name"], str(tuner_status[tuner]["epg"]["number"])))
fakefile.write(" <td>%s</td>\n" % (str(tuner_status[tuner]["method"])))
fakefile.write(" <td>%s</td>\n" % (str(tuner_status[tuner]["Play Time"])))
else:
fakefile.write(" <td>%s</td>\n" % "N/A")
fakefile.write(" <td>%s</td>\n" % "N/A")
fakefile.write(" <td>%s</td>\n" % "N/A")
fakefile.write(" </tr>\n")
for line in page_elements["end"]:
fakefile.write(line + "\n")
return fakefile.getvalue()