81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
import requests
|
|
import os
|
|
from htmlpy import *
|
|
from config import colors, CONFIG
|
|
|
|
# Wrapper for Base HTML
|
|
def buildSite(content, title=None, disable_color=False, shadow=True):
|
|
c_class = "bg-dark text-white justify-content-center text-center"
|
|
c_style = ""
|
|
if not disable_color:
|
|
if colors() is not None:
|
|
c_class = "justify-content-center text-center"
|
|
fg = colors()["special"]["foreground"]
|
|
bg = colors()["special"]["background"]
|
|
if "colors" in CONFIG:
|
|
if "fg" in CONFIG["colors"]:
|
|
i = CONFIG["colors"]["fg"] - 1
|
|
fg = colors()["colors"][f"color{i}"]
|
|
if "bg" in CONFIG["colors"]:
|
|
i = CONFIG["colors"]["bg"] - 1
|
|
bg = colors()["colors"][f"color{i}"]
|
|
c_style = f"background: {bg}; color: {fg};"
|
|
|
|
if os.path.exists("/config/wall.avif"):
|
|
c_style += "background-image: url('assets/wall');background-size:cover;"
|
|
|
|
if shadow:
|
|
c_style += "text-shadow: 1px 1px 3px black;"
|
|
|
|
return Document(
|
|
head=Head(
|
|
[
|
|
Title(title),
|
|
Meta(
|
|
name="viewport",
|
|
content="user-scalable=no, width=device-width, initial-scale=1.0",
|
|
),
|
|
BOOTSTRAP,
|
|
]
|
|
),
|
|
body=Body(
|
|
content,
|
|
global_attr=GlobalAttributes(css_class=c_class, style=c_style),
|
|
),
|
|
)
|
|
|
|
|
|
def download_file(url, file):
|
|
os.makedirs("/app/static/", exist_ok=True)
|
|
r = requests.get(url, allow_redirects=True)
|
|
open(file, "wb").write(r.content)
|
|
|
|
|
|
# Downloads all bootstrap files to flasks static directory
|
|
def cache_bootstrap():
|
|
download_file(
|
|
"https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css",
|
|
"/app/static/bootstrap.min.css",
|
|
)
|
|
download_file(
|
|
"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css",
|
|
"/app/static/bootstrap-icons.css",
|
|
)
|
|
download_file(
|
|
"https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js",
|
|
"/app/static/bootstrap.bundle.min.js",
|
|
)
|
|
|
|
|
|
# Bootstrap CSS
|
|
BOOTSTRAP = [
|
|
Reference(
|
|
"/static/bootstrap.min.css",
|
|
"stylesheet",
|
|
),
|
|
Reference(
|
|
"/static/bootstrap-icons.css",
|
|
"stylesheet",
|
|
),
|
|
Script(src="/static/bootstrap.bundle.min.js"),
|
|
]
|