mirror of
https://github.com/fHDHR/fHDHR_NextPVR.git
synced 2025-12-06 13:26:57 -05:00
45 lines
1.5 KiB
Python
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")
|