diff --git a/fHDHR/api/__init__.py b/fHDHR/api/__init__.py index cfcdb37..55d3e79 100644 --- a/fHDHR/api/__init__.py +++ b/fHDHR/api/__init__.py @@ -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"] diff --git a/fHDHR/api/hub/__init__.py b/fHDHR/api/hub/__init__.py index 21ea240..248aa3d 100644 --- a/fHDHR/api/hub/__init__.py +++ b/fHDHR/api/hub/__init__.py @@ -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) diff --git a/fHDHR/api/hub/pages/__init__.py b/fHDHR/api/hub/pages/__init__.py index 17161e6..3b6f2d0 100644 --- a/fHDHR/api/hub/pages/__init__.py +++ b/fHDHR/api/hub/pages/__init__.py @@ -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(): "" % ("/version", "Version"), "" % ("/diagnostics", "Diagnostics"), "" % ("/cluster", "Cluster"), + "" % ("/streams", "Streams"), "%s" % ("xmltv.xml", "xmltv"), "%s" % ("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) diff --git a/fHDHR/api/hub/pages/streams_html.py b/fHDHR/api/hub/pages/streams_html.py new file mode 100644 index 0000000..98140ca --- /dev/null +++ b/fHDHR/api/hub/pages/streams_html.py @@ -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("\n") + fakefile.write(" \n") + fakefile.write(" \n") + fakefile.write(" \n") + fakefile.write(" \n") + fakefile.write(" \n") + fakefile.write(" \n") + fakefile.write(" \n") + + tuner_status = self.device.tuners.status() + for tuner in list(tuner_status.keys()): + fakefile.write(" \n") + fakefile.write(" \n" % (str(tuner))) + fakefile.write(" \n" % (str(tuner_status[tuner]["status"]))) + if tuner_status[tuner]["status"] == "Active": + fakefile.write(" \n" % ( + tuner_status[tuner]["epg"]["name"], tuner_status[tuner]["epg"]["thumbnail"], tuner_status[tuner]["epg"]["name"], str(tuner_status[tuner]["epg"]["number"]))) + fakefile.write(" \n" % (str(tuner_status[tuner]["method"]))) + fakefile.write(" \n" % (str(tuner_status[tuner]["Play Time"]))) + else: + fakefile.write(" \n" % "N/A") + fakefile.write(" \n" % "N/A") + fakefile.write(" \n" % "N/A") + fakefile.write(" \n") + + for line in page_elements["end"]: + fakefile.write(line + "\n") + + return fakefile.getvalue()
TunerStatusChannelMethodTime Active
%s%s%s\"%s\"%s%s%s%s%s%s