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

Merge pull request #29 from deathbybandaid/dev

Implement Very Basic Webpage
This commit is contained in:
Deathbybandaid 2020-10-13 09:24:56 -04:00 committed by GitHub
commit 547ce448f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 62 additions and 2 deletions

View File

@ -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():

View File

@ -0,0 +1,2 @@
# pylama:ignore=W0611
from .index_html import Index_HTML

View File

@ -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("<!DOCTYPE html>\n")
fakefile.write("<html>\n")
fakefile.write("<head>\n")
fakefile.write("<title>%s</title>\n" % friendlyname)
fakefile.write("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n")
fakefile.write("</head>\n")
fakefile.write("<h2 id=\"mcetoc_1cdobsl3g0\" style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em>%s</em></strong></span></h2>\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("<div style=\"text-align: center;\">\n")
fakefile.write(" <p><button onclick=\"OpenLink('%s')\">%s</a></button></p>\n" % (button_path, button_label))
fakefile.write("</div>\n")
fakefile.write("</html>\n")
fakefile.write("\n")
fakefile.write("<script>\n")
fakefile.write("function OpenLink(NewURL) {\n")
fakefile.write(" window.open(NewURL, \"_self\");\n")
fakefile.write("}\n")
fakefile.write("</script>")
self.index_html = fakefile.getvalue()
return self.index_html