add favicon

This commit is contained in:
2021-05-23 21:48:10 +02:00
parent cabccfa7b5
commit ef6674b35b
6 changed files with 24 additions and 16 deletions

View File

@ -229,6 +229,7 @@ script_file = None
videojs_version = None
font_awesome_version = None
custom_style = None
favicon = None
try:
with open("/app/index.html", "r") as f:
template_html = tornado.template.Template(f.read().strip())
@ -242,6 +243,8 @@ try:
chromecast_version = f.read().strip()
with open("/app/version/font-awesome.txt", "r") as f:
font_awesome_version = f.read().strip()
with open("/app/favicon.png", "rb") as f:
favicon = f.read()
with open("/app/style.css", "r") as f:
custom_style_raw = bytes(f.read().strip(), "utf-8")
b64 = str(base64.b64encode(custom_style_raw), "ascii")
@ -319,27 +322,18 @@ class MainHandler(tornado.web.RequestHandler):
if script_file is not None and template_html is not None:
meta = await handler.meta()
title = handler.render_url
video_creator = None
video_title = None
for elem in meta:
if isinstance(elem[1], str):
if elem[0] == "og:title":
video_title = elem[1]
elif elem[0] == "og:description":
video_creator = elem[1]
if isinstance(video_creator, str) and isinstance(video_title, str):
title = f'{video_creator}: {video_title}'
elif isinstance(video_creator, str):
title = video_creator
elif isinstance(video_title, str):
title = video_title
data["script"] = script_file
data["videojs_version"] = videojs_version
data["chromecast_version"] = chromecast_version
data["font_awesome_version"] = font_awesome_version
data["custom_style"] = custom_style
rendered_html = template_html.generate(data=data, meta=meta)
rendered_html = template_html.generate(data=data, meta=meta, title=video_title)
self.write(rendered_html)
else:
self.set_status(404)
@ -377,11 +371,10 @@ class FileHandler(tornado.web.RequestHandler):
def get(self):
self.set_header("Content-Type", "text/plain; charset=utf-8")
self.write(playlist)
class IconHandler(tornado.web.RequestHandler):
def get(self):
self.set_header("Content-Type", "text/plain; charset=utf-8")
self.set_status(204)
self.set_header("Content-Type", "image/png")
self.write(favicon)
try:
handlers = []
handlers.append((tornado.routing.PathMatches("/sources.m3u8"), FileHandler))

View File

@ -91,7 +91,7 @@ async def get_any(upstream, proxy, logger):
tasks.append(asyncio.create_task(get_streamlink(upstream, proxy, logger)))
tasks.append(asyncio.create_task(get_ytdl(upstream, proxy, logger)))
result = None
for task in asyncio.as_completed(tasks, timeout=2.0):
for task in asyncio.as_completed(tasks, timeout=5.0):
result = await task
if isinstance(result, str):
break