clean: remove root-level stale files (moved to static/ and no longer needed)
This commit is contained in:
@@ -1,52 +0,0 @@
|
||||
#!/bin/sh
|
||||
# alioth smoke tests — exits 1 if any check fails
|
||||
FAIL=0
|
||||
|
||||
ok() { printf " PASS %s\n" "$1"; }
|
||||
fail() { printf " FAIL %s\n" "$1"; FAIL=1; }
|
||||
|
||||
check() {
|
||||
name="$1"; url="$2"; want="${3:-200}"
|
||||
code=$(curl -s -o /dev/null -w '%{http_code}' --max-time 5 "$url")
|
||||
if [ "$code" = "$want" ] || { [ "$want" = "2xx" ] && [ "${code%?}" = "20" ]; }; then
|
||||
ok "$name ($code)"
|
||||
else
|
||||
fail "$name — got $code, want $want ($url)"
|
||||
fi
|
||||
}
|
||||
|
||||
echo "=== dashboard ==="
|
||||
check "GET /" http://127.0.0.1:9090/
|
||||
check "GET /style.css" http://127.0.0.1:9090/style.css
|
||||
check "GET /app.js" http://127.0.0.1:9090/app.js
|
||||
check "GET /api/stats" http://127.0.0.1:9090/api/stats
|
||||
|
||||
echo "=== iptv-dl ==="
|
||||
check "GET /" http://127.0.0.1:8787/
|
||||
check "GET /iptv.css" http://127.0.0.1:8787/iptv.css
|
||||
check "GET /downloads" http://127.0.0.1:8787/downloads
|
||||
check "GET /api/downloads" http://127.0.0.1:8787/api/downloads
|
||||
check "GET /movies" http://127.0.0.1:8787/movies
|
||||
check "GET /series" http://127.0.0.1:8787/series
|
||||
|
||||
echo "=== arr stack ==="
|
||||
check "jellyfin" http://127.0.0.1:8096/jellyfin/health
|
||||
check "sonarr" http://127.0.0.1:8989/sonarr/ping
|
||||
check "radarr" http://127.0.0.1:7878/radarr/ping
|
||||
check "prowlarr" http://127.0.0.1:9696/prowlarr/ping
|
||||
check "qbit" http://127.0.0.1:8080/
|
||||
|
||||
echo "=== nginx proxy ==="
|
||||
check "nginx /" http://127.0.0.1/
|
||||
check "nginx /style.css" http://127.0.0.1/style.css
|
||||
check "nginx /app.js" http://127.0.0.1/app.js
|
||||
check "nginx /iptv/" http://127.0.0.1/iptv/
|
||||
check "nginx /iptv/iptv.css" http://127.0.0.1/iptv/iptv.css
|
||||
|
||||
echo ""
|
||||
if [ "$FAIL" -eq 0 ]; then
|
||||
echo "ALL PASS"
|
||||
else
|
||||
echo "SOME FAILED"
|
||||
fi
|
||||
exit $FAIL
|
||||
@@ -1 +0,0 @@
|
||||
</div></body></html>
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html><html lang=en><head><meta charset=utf-8>
|
||||
<base href='/iptv/'>
|
||||
<title>{{TITLE}} — iptv</title>
|
||||
<meta name=viewport content='width=device-width,initial-scale=1'>
|
||||
<link rel=stylesheet href='iptv.css'>
|
||||
<script>var BASE='/iptv';</script>
|
||||
</head>
|
||||
<body>
|
||||
<header><h1>iptv</h1><nav>
|
||||
<a href='series'>series</a>
|
||||
<a href='movies'>movies</a>
|
||||
<a href='search'>search</a>
|
||||
<a href='downloads'>downloads</a>
|
||||
</nav></header>
|
||||
<div class=c>
|
||||
@@ -1,41 +0,0 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;700&display=swap');
|
||||
:root{--black:#000;--offblack:#0a0a0a;--terminal:#ccc;--dim:#555;--border:#171717;--strawberry:#e8547a;--green:#4ade80}
|
||||
*{box-sizing:border-box;margin:0;padding:0}
|
||||
body{background:var(--black);color:var(--terminal);font-family:'JetBrains Mono',monospace;min-height:100vh;padding:24px 16px 48px;-webkit-font-smoothing:antialiased}
|
||||
header{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:24px;display:flex;align-items:baseline;gap:16px}
|
||||
header h1{font-size:22px;font-weight:700;letter-spacing:-.04em;color:#fff}
|
||||
nav{display:flex;gap:6px;flex-wrap:wrap}
|
||||
nav a{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);text-decoration:none;padding:4px 10px;border:1px solid var(--border);border-radius:6px;transition:border-color .15s,color .15s}
|
||||
nav a:hover{border-color:var(--strawberry);color:var(--strawberry)}
|
||||
.c{max-width:960px;margin:0 auto}
|
||||
.lbl{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:28px}
|
||||
.card{background:var(--offblack);border:1px solid var(--border);border-radius:12px;padding:14px 12px 10px;cursor:pointer;text-decoration:none;display:block;color:var(--terminal);transition:border-color .15s}
|
||||
.card:hover{border-color:#2a2a2a}
|
||||
.card:active{background:#0f0f0f}
|
||||
.card-img{width:100%;aspect-ratio:2/3;background:var(--border);border-radius:6px;overflow:hidden;margin-bottom:8px}
|
||||
.card-img img{width:100%;height:100%;object-fit:cover;display:block}
|
||||
.card-name{font-size:12px;font-weight:700;color:#fff;letter-spacing:-.01em;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.card-sub{font-size:10px;color:var(--dim);letter-spacing:.04em}
|
||||
table{width:100%;border-collapse:collapse;font-size:12px}
|
||||
th{text-align:left;padding:8px 10px;background:var(--offblack);border-bottom:1px solid var(--border);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);position:sticky;top:0}
|
||||
td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
|
||||
tr:hover td{background:var(--offblack)}
|
||||
.btn{display:inline-block;padding:4px 12px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:10px;font-family:inherit;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:border-color .15s,color .15s;background:transparent;color:var(--terminal)}
|
||||
.btn:hover{border-color:var(--strawberry);color:var(--strawberry)}
|
||||
.btn-g{border-color:var(--green);color:var(--green)}.btn-g:hover{border-color:#22d360;color:#22d360}
|
||||
.btn-s{border-color:var(--strawberry);color:var(--strawberry)}.btn-r{border-color:#ef4444;color:#ef4444}.btn-r:hover{border-color:#f87171;color:#f87171}
|
||||
input[type=checkbox]{cursor:pointer;accent-color:var(--strawberry)}
|
||||
.search{width:100%;padding:8px 12px;background:var(--offblack);border:1px solid var(--border);color:var(--terminal);border-radius:8px;font-size:12px;font-family:inherit;margin-bottom:14px;outline:none;transition:border-color .15s}
|
||||
.search:focus{border-color:#2a2a2a}
|
||||
select{background:var(--offblack);border:1px solid var(--border);color:var(--terminal);border-radius:8px;font-size:12px;font-family:inherit;padding:8px 12px;outline:none;cursor:pointer}
|
||||
.pbar{background:var(--border);border-radius:2px;height:2px;overflow:hidden;min-width:80px;display:inline-block;vertical-align:middle}
|
||||
.pfill{background:var(--green);height:100%}
|
||||
.done{color:var(--green)}.err{color:var(--strawberry)}.dl{color:#fbbf24}
|
||||
.bc{font-size:10px;color:var(--dim);letter-spacing:.04em;margin-bottom:16px}
|
||||
.bc a{color:var(--strawberry);text-decoration:none}
|
||||
.sep{border:none;border-top:1px solid var(--border);margin:20px 0}
|
||||
.sform{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
|
||||
.sform input{flex:1;min-width:160px;margin-bottom:0}
|
||||
.sform select{margin-bottom:0}
|
||||
@media(min-width:480px){.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
|
||||
Reference in New Issue
Block a user