1
0
mirror of https://github.com/fHDHR/fHDHR_NextPVR.git synced 2025-12-06 11:36:59 -05:00
fHDHR_NextPVR/fHDHR_web/files/style_css.py
2020-12-08 09:27:51 -05:00

45 lines
1.5 KiB
Python

from flask import Response
import pathlib
from io import StringIO
class Style_CSS():
endpoints = ["/style.css"]
endpoint_name = "file_style_css"
def __init__(self, fhdhr):
self.fhdhr = fhdhr
self.internal_style_file = pathlib.Path(
self.fhdhr.config.internal["paths"]["www_dir"]).joinpath('style.css')
self.internal_style = StringIO()
self.internal_style.write(open(self.internal_style_file).read())
self.pull_external_theme()
def pull_external_theme(self):
self.external_style = None
self.external_style_address = None
if self.fhdhr.config.dict["web_ui"]["theme"]:
if self.fhdhr.config.dict["web_ui"]["theme"].startswith(tuple(["http://", "https://"])):
css_req = self.fhdhr.web.session.get(self.fhdhr.config.dict["web_ui"]["theme"])
self.external_style = StringIO(css_req.text)
self.external_style_address = self.fhdhr.config.dict["web_ui"]["theme"]
def __call__(self, *args):
return self.get(*args)
def get(self, *args):
main_output = StringIO()
main_output.write(self.internal_style.getvalue())
if self.fhdhr.config.dict["web_ui"]["theme"]:
if self.fhdhr.config.dict["web_ui"]["theme"] != self.external_style_address:
self.pull_external_theme()
if self.external_style:
main_output.write(self.external_style.getvalue())
return Response(status=200, response=main_output.getvalue(), mimetype="text/css")