diff --git a/data/www/templates/base.html b/data/www/templates/base.html
index 5e2c087..b49e7fd 100644
--- a/data/www/templates/base.html
+++ b/data/www/templates/base.html
@@ -6,9 +6,6 @@
table, th, td {border: 1px solid black;}
- {% if fhdhr.config.dict["web_ui"]["theme"] %}
-
- {% endif %}
diff --git a/fHDHR/http/__init__.py b/fHDHR/http/__init__.py
index bcf167e..5cb55db 100644
--- a/fHDHR/http/__init__.py
+++ b/fHDHR/http/__init__.py
@@ -1,5 +1,5 @@
from gevent.pywsgi import WSGIServer
-from flask import Flask
+from flask import Flask, request
from .pages import fHDHR_Pages
from .files import fHDHR_Files
@@ -35,6 +35,16 @@ class fHDHR_HTTP_Server():
self.watch = fHDHR_WATCH(fhdhr)
self.add_endpoints(self.watch, "watch")
+ self.app.before_request(self.before_request)
+ self.app.after_request(self.after_request)
+
+ def before_request(self):
+ self.fhdhr.logger.debug("")
+
+ def after_request(self, response):
+ self.fhdhr.logger.debug("")
+ return response
+
def add_endpoints(self, index_list, index_name):
item_list = [x for x in dir(index_list) if self.isapath(x)]
for item in item_list:
diff --git a/fHDHR/http/files/style_css.py b/fHDHR/http/files/style_css.py
index b5a1598..d51a7b2 100644
--- a/fHDHR/http/files/style_css.py
+++ b/fHDHR/http/files/style_css.py
@@ -1,4 +1,6 @@
-from flask import send_from_directory
+from flask import Response
+import pathlib
+from io import StringIO
class Style_CSS():
@@ -8,10 +10,35 @@ class 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):
- return send_from_directory(self.fhdhr.config.internal["paths"]["www_dir"],
- 'style.css')
+ 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")