This commit is contained in:
lda committed 2025-12-17 23:20:05 +07:00
1 parent d5f578cfd0
commit 30aa610653
4 files changed
+15 -6

No files matched your search

+2 -1
View File
@@ -7,7 +7,8 @@ requires-python = ">=3.13"
dependencies = [ dependencies = [
"fastapi", "fastapi",
"flask", "flask",
"pydantic",
"python-multipart", "python-multipart",
"qrcode>=8.2", "qrcode",
"uvicorn", "uvicorn",
] ]
+3 -3
View File
@@ -40,11 +40,11 @@
<div class="route-list"> <div class="route-list">
{% macro this(route) %} {% macro this(route) %}
<div class="route-item"> <div class="route-item">
<a href="{{ url_for(route.name) }}">{{ route.name }}</a> <a href="{{ route.path }}">{{ route.name }}</a>
<span>{{ route.path }}</span> <span>{{ route.path }}</span>
</div> </div>
{% endmacro %} {% for route in routes if "GET" in route.methods %} {% endmacro %} {% for route in routes %} {{ this(route) }} {%
{{ this(route) }} {% endfor %} endfor %}
</div> </div>
</details> </details>
</body> </body>
+8 -2
View File
@@ -8,6 +8,7 @@ from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse, RedirectResponse from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from pydantic import AnyHttpUrl
app = FastAPI() app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static") app.mount("/static", StaticFiles(directory="static"), name="static")
@@ -15,10 +16,10 @@ templates = Jinja2Templates(directory="templates")
queue: deque[str] = deque() # fifo ahh queue: deque[str] = deque() # fifo ahh
def link_extract_from_onetab(line): def link_extract_from_onetab(line: str) -> str:
"link | title" "link | title"
link = line.split("|", 1)[0].strip() link = line.split("|", 1)[0].strip()
return link return AnyHttpUrl(link).unicode_string() # encoded is xn something
@app.get("/", response_class=HTMLResponse) @app.get("/", response_class=HTMLResponse)
@@ -75,6 +76,11 @@ async def queue_len():
return len(queue) return len(queue)
@app.post("/api/queue/clear")
async def clear_queue():
queue.clear()
@app.get("/qrcode_queue", response_class=HTMLResponse) @app.get("/qrcode_queue", response_class=HTMLResponse)
async def qrcodequeue(request: Request): async def qrcodequeue(request: Request):
return templates.TemplateResponse(request, "qq.html", {"queue_items": list(queue)}) return templates.TemplateResponse(request, "qq.html", {"queue_items": list(queue)})
Generated
+2
View File
@@ -281,6 +281,7 @@ source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "fastapi" }, { name = "fastapi" },
{ name = "flask" }, { name = "flask" },
{ name = "pydantic" },
{ name = "python-multipart" }, { name = "python-multipart" },
{ name = "qrcode" }, { name = "qrcode" },
{ name = "uvicorn" }, { name = "uvicorn" },
@@ -290,6 +291,7 @@ dependencies = [
requires-dist = [ requires-dist = [
{ name = "fastapi" }, { name = "fastapi" },
{ name = "flask" }, { name = "flask" },
{ name = "pydantic", specifier = ">=2.12.5" },
{ name = "python-multipart" }, { name = "python-multipart" },
{ name = "qrcode", specifier = ">=8.2" }, { name = "qrcode", specifier = ">=8.2" },
{ name = "uvicorn" }, { name = "uvicorn" },