mirror of
https://github.com/markbeep/AudioBookRequest.git
synced 2026-01-07 22:20:15 -06:00
add js files to flake
This commit is contained in:
2
.github/workflows/nix-build.yaml
vendored
2
.github/workflows/nix-build.yaml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Build and Deploy Dockerfile
|
||||
name: Build Nix Docker Image
|
||||
|
||||
on:
|
||||
push:
|
||||
|
||||
@@ -111,7 +111,8 @@ async def redirect_to_init(request: Request, call_next: Any):
|
||||
global user_exists
|
||||
if (
|
||||
not user_exists
|
||||
and request.url.path not in ["/init", "/globals.css"]
|
||||
and request.url.path != "/init"
|
||||
and not request.url.path.startswith("/static")
|
||||
and request.method == "GET"
|
||||
):
|
||||
with open_session() as session:
|
||||
|
||||
@@ -23,59 +23,59 @@ router = APIRouter()
|
||||
root = Path("static")
|
||||
|
||||
|
||||
@router.get("/globals.css")
|
||||
@router.get("/static/globals.css")
|
||||
def read_globals_css():
|
||||
return FileResponse(root / "globals.css", media_type="text/css")
|
||||
|
||||
|
||||
@router.get("/nouislider.css")
|
||||
@router.get("/static/nouislider.css")
|
||||
def read_nouislider_css():
|
||||
return FileResponse(root / "nouislider.min.css", media_type="text/css")
|
||||
|
||||
|
||||
@router.get("/nouislider.js")
|
||||
@router.get("/static/nouislider.js")
|
||||
def read_nouislider_js():
|
||||
return FileResponse(root / "nouislider.min.js", media_type="text/javascript")
|
||||
|
||||
|
||||
@router.get("/apple-touch-icon.png")
|
||||
@router.get("/static/apple-touch-icon.png")
|
||||
def read_apple_touch_icon():
|
||||
return FileResponse(root / "apple-touch-icon.png", media_type="image/png")
|
||||
|
||||
|
||||
@router.get("/favicon-32x32.png")
|
||||
@router.get("/static/favicon-32x32.png")
|
||||
def read_favicon_32():
|
||||
return FileResponse(root / "favicon-32x32.png", media_type="image/png")
|
||||
|
||||
|
||||
@router.get("/favicon-16x16.png")
|
||||
@router.get("/static/favicon-16x16.png")
|
||||
def read_favicon_16():
|
||||
return FileResponse(root / "favicon-16x16.png", media_type="image/png")
|
||||
|
||||
|
||||
@router.get("/site.webmanifest")
|
||||
@router.get("/static/site.webmanifest")
|
||||
def read_site_webmanifest():
|
||||
return FileResponse(
|
||||
root / "site.webmanifest", media_type="application/manifest+json"
|
||||
)
|
||||
|
||||
|
||||
@router.get("/htmx.js")
|
||||
@router.get("/static/htmx.js")
|
||||
def read_htmx():
|
||||
return FileResponse(root / "htmx.js", media_type="application/javascript")
|
||||
|
||||
|
||||
@router.get("/htmx-preload.js")
|
||||
@router.get("/static/htmx-preload.js")
|
||||
def read_htmx_preload():
|
||||
return FileResponse(root / "htmx-preload.js", media_type="application/javascript")
|
||||
|
||||
|
||||
@router.get("/alpine.js")
|
||||
@router.get("/static/alpine.js")
|
||||
def read_alpinejs():
|
||||
return FileResponse(root / "alpine.js", media_type="application/javascript")
|
||||
|
||||
|
||||
@router.get("/favicon.svg")
|
||||
@router.get("/static/favicon.svg")
|
||||
def read_favicon_svg():
|
||||
return FileResponse(root / "favicon.svg", media_type="image/svg+xml")
|
||||
|
||||
|
||||
16
flake.nix
16
flake.nix
@@ -81,6 +81,18 @@
|
||||
exec ${default}/bin/fastapi run --port $ABR_APP__PORT
|
||||
'';
|
||||
gitignore = pkgs.nix-gitignore.gitignoreSource [ ] ./.;
|
||||
htmx-preload = builtins.fetchurl {
|
||||
url = "https://unpkg.com/htmx-ext-preload@2.1.0/preload.js";
|
||||
sha256 = "sha256:1bfkr60i20aj16vbwz2nv1q5fmmmzmc52i2aqn5cx6xihbmwy7nd";
|
||||
};
|
||||
htmx = builtins.fetchurl {
|
||||
url = "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js";
|
||||
sha256 = "sha256:0ixlixv36rrfzj97g2w0q6jxbg0x1rswgvvd2vrpjm13r2jxs2g2";
|
||||
};
|
||||
alpinejs = builtins.fetchurl {
|
||||
url = "https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js";
|
||||
sha256 = "sha256:1lqa3v5p7pwz3599xnxf5bwxf17bbmqxcqz3cpgj32a8ab9fxl9y";
|
||||
};
|
||||
in
|
||||
|
||||
pkgs.dockerTools.buildImage {
|
||||
@@ -97,6 +109,10 @@
|
||||
cp -r ${gitignore}/templates $out/app/templates
|
||||
cp -r ${gitignore}/static/* $out/app/static
|
||||
cp -r ${gitignore}/app $out/app/app
|
||||
|
||||
cp ${htmx-preload} $out/app/static/htmx-preload.js
|
||||
cp ${htmx} $out/app/static/htmx.js
|
||||
cp ${alpinejs} $out/app/static/alpine.js
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
{% block head %}
|
||||
<title>AudioBookRequest</title>
|
||||
{% endblock %}
|
||||
<link rel="stylesheet" href="/globals.css" />
|
||||
<script src="/htmx.js"></script>
|
||||
<script defer src="/htmx-preload.js"></script>
|
||||
<link rel="stylesheet" href="/static/globals.css" />
|
||||
<script src="/static/htmx.js"></script>
|
||||
<script defer src="/static/htmx-preload.js"></script>
|
||||
<script>
|
||||
const setTheme = theme => {
|
||||
if (!theme) {
|
||||
@@ -39,11 +39,30 @@
|
||||
</script>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="icon" sizes="any" type="image/svg+xml" href="/favicon.svg" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="/static/apple-touch-icon.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
sizes="any"
|
||||
type="image/svg+xml"
|
||||
href="/static/favicon.svg"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="/static/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="/static/favicon-16x16.png"
|
||||
/>
|
||||
<link rel="manifest" href="/static/site.webmanifest" />
|
||||
|
||||
{% include 'scripts/toast.html' %}
|
||||
</head>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<script defer src="/alpine.js"></script>
|
||||
<script defer src="/static/alpine.js"></script>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "settings_page/base.html" %} {% block head %}
|
||||
<title>Settings - Download</title>
|
||||
<link href="/nouislider.css" rel="stylesheet" />
|
||||
<script src="/nouislider.js"></script>
|
||||
<link href="/static/nouislider.css" rel="stylesheet" />
|
||||
<script src="/static/nouislider.js"></script>
|
||||
<script>
|
||||
const createSlider = (sliderId, fromId, toId, start, stop) => {
|
||||
const slider = document.getElementById(sliderId);
|
||||
|
||||
Reference in New Issue
Block a user