diff --git a/fHDHR/fHDHRweb/__init__.py b/fHDHR/fHDHRweb/__init__.py index a525a09..133507f 100644 --- a/fHDHR/fHDHRweb/__init__.py +++ b/fHDHR/fHDHRweb/__init__.py @@ -1,7 +1,7 @@ from gevent.pywsgi import WSGIServer from flask import Flask, send_from_directory, request, abort, Response, stream_with_context -from . import fHDHRdevice +from . import fHDHRdevice, fHDHRpages class HDHR_Hub(): @@ -12,6 +12,8 @@ class HDHR_Hub(): def hubprep(self, settings, origserv, epghandling): self.config = settings + self.index = fHDHRpages.Index_HTML(settings) + self.devicexml = fHDHRdevice.Device_XML(settings) self.discoverjson = fHDHRdevice.Discover_JSON(settings) self.lineupxml = fHDHRdevice.Lineup_XML(settings, origserv) @@ -75,6 +77,9 @@ class HDHR_Hub(): def get_stream(self, stream_args): return self.watch.get_stream(stream_args) + def get_index_html(self, base_url): + return self.index.get_index_html(base_url) + hdhr = HDHR_Hub() @@ -84,7 +89,8 @@ class HDHR_HTTP_Server(): @app.route('/') def root_path(): - return hdhr.config.dict["fhdhr"]["friendlyname"] + base_url = request.headers["host"] + return hdhr.get_index_html(base_url) @app.route('/favicon.ico', methods=['GET']) def favicon(): diff --git a/fHDHR/fHDHRweb/fHDHRpages/__init__.py b/fHDHR/fHDHRweb/fHDHRpages/__init__.py new file mode 100644 index 0000000..bca1b19 --- /dev/null +++ b/fHDHR/fHDHRweb/fHDHRpages/__init__.py @@ -0,0 +1,2 @@ +# pylama:ignore=W0611 +from .index_html import Index_HTML diff --git a/fHDHR/fHDHRweb/fHDHRpages/index_html.py b/fHDHR/fHDHRweb/fHDHRpages/index_html.py new file mode 100644 index 0000000..eb26fac --- /dev/null +++ b/fHDHR/fHDHRweb/fHDHRpages/index_html.py @@ -0,0 +1,52 @@ +from io import StringIO + + +class Index_HTML(): + + def __init__(self, settings): + self.config = settings + self.index_html = None + + def get_index_html(self, base_url, force_update=False): + if not self.index_html or force_update: + + friendlyname = self.config.dict["fhdhr"]["friendlyname"] + + fakefile = StringIO() + + fakefile.write("\n") + fakefile.write("\n") + + fakefile.write("\n") + fakefile.write("%s\n" % friendlyname) + fakefile.write("\n") + fakefile.write("\n") + + fakefile.write("

%s

\n" % friendlyname) + + # a list of 2 part lists containing button information + button_list = [ + ["xmltv", "xmltv.xml"], + ["m3u", "channels.m3u"], + ["debug", "debug.json"] + ] + + for button_item in button_list: + button_label = button_item[0] + button_path = button_item[1] + fakefile.write("
\n") + fakefile.write("

\n" % (button_path, button_label)) + fakefile.write("
\n") + + fakefile.write("\n") + fakefile.write("\n") + + fakefile.write("") + + self.index_html = fakefile.getvalue() + + return self.index_html