This commit is contained in:
lda committed 2025-12-17 13:26:09 +07:00
1 parent f2559bc63e
commit 882aba6004
3 files changed
+169 -3

No files matched your search

+130
View File
@@ -0,0 +1,130 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Queue dump type shit</title>
<style>
li {
width: min-content;
}
</style>
</head>
<body>
<!-- style="display: flex; justify-content: space-between" -->
<form id="c">
<label for="n"
>how many:
<input
name="n"
id="n"
step="1"
min="0"
type="number"
placeholder="how many"
value="1"
/></label>
<div>
<button id="s" type="button">send it</button>
<button id="all" type="button">send all</button>
</div>
</form>
<div id="gonk"></div>
<script>
/** @type {HTMLDivElement} */
const bij = document.getElementById("gonk");
let arrlen = 0;
/** @type {HTMLInputElement} */
const n = document.getElementById("n");
const changeHandler = async () => {
const number = parseInt(n.value);
if (isNaN(number)) {
bij.textContent = "number?";
return;
}
const f = new URL("/api/queue", window.location.href);
f.searchParams.append("n", number);
console.log("fetching", f);
const c = await fetch(f)
.then((r) => r.json())
.then((n) => {
console.log(n);
arrlen = n.length;
if (n) {
const ol = document.createElement("ol");
for (const i of n) {
const li = document.createElement("li");
const a = document.createElement("a");
a.href = i;
a.textContent = i;
a.target = "_blank";
a.rel = "noopener noreferrer";
li.appendChild(a);
ol.appendChild(li);
}
bij.textContent = `next ${
n.length != 1
? `${n.length} entries are`
: "entry is"
} SO gone`;
bij.appendChild(ol);
} else {
bij.textContent = "wym empty";
}
})
.catch((e) => {
console.error(e);
arrlen = 0;
bij.textContent = `shit. cant fetch`;
});
};
n.addEventListener("change", changeHandler);
/** @type {HTMLFormElement} */
const c = document.getElementById("c");
c.addEventListener("submit", async (e) => {
e.preventDefault();
await changeHandler();
});
changeHandler();
const s = document.getElementById("s");
s.addEventListener("click", (e) => {
e.preventDefault();
console.log("ts runs");
changeHandler();
for (const _ of Array(arrlen)) {
const w = window.open(
"/r",
"_blank",
"noopener, noreferrer"
);
console.log(w);
}
arrlen = 0;
bij.textContent = "something idk";
});
/** @type {HTMLButtonElement} */
const all = document.getElementById("all");
all.addEventListener(
"click",
async () =>
await fetch("/api/queue/len")
.then((d) => d.json())
.then((len) => {
console.log("ts runs", len);
for (const _ of Array(len)) {
const w = window.open(
"/r",
"_blank",
"noopener, noreferrer"
);
console.log(w);
}
arrlen = 0;
bij.textContent = "everything idk";
})
.catch((e) => console.error(e))
);
</script>
</body>
</html>
+18
View File
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>QRCode queue</title>
</head>
<body>
{% from "macros.html" import qrcode_queue %}
{% if queue_items %}
<p>total: {{ queue_items|length }}</p>
{{ qrcode_queue(queue_items) }}
{% else %}
<p>empty</p>
{% endif %}
</body>
</html>
+21 -3
View File
@@ -1,6 +1,7 @@
"gemini converted" "gemini converted"
from collections import deque from collections import deque
from itertools import islice
import uvicorn import uvicorn
from fastapi import FastAPI, Form, Request from fastapi import FastAPI, Form, Request
@@ -33,9 +34,26 @@ async def redir(request: Request):
return RedirectResponse(url=q) return RedirectResponse(url=q)
return templates.TemplateResponse(request, "index.html", {"current_link": None}) return templates.TemplateResponse(request, "index.html", {"current_link": None})
return templates.TemplateResponse(
"index.html", {"request": request, "current_link": None} @app.get("/m", response_class=HTMLResponse)
) async def mlti(request: Request):
"request first new style"
return templates.TemplateResponse(request, "multi.html")
@app.get("/api/queue")
async def queueview(n: int | None = None, s: int | None = None):
return list(islice(queue, s, n))
@app.get("/api/queue/len")
async def queuelen():
return len(queue)
@app.get("/qrcode_queue", response_class=HTMLResponse)
async def qrcodequeue(request: Request):
return templates.TemplateResponse(request, "qq.html", {"queue_items": list(queue)})
@app.get("/queuein", response_class=HTMLResponse) @app.get("/queuein", response_class=HTMLResponse)