From 265b48905a4283f5cd728fbcf5041bf28c4c624d Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Tue, 6 Oct 2026 13:34:32 +0200 Subject: [PATCH] =?UTF-8?q?fix(yt):=20manglende=20import=20asyncio=20gav?= =?UTF-8?q?=20500=20p=C3=A5=20overv=C3=A5gning=20og=20tilf=C3=B8jelse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit main.py brugte asyncio.create_task i YouTube-ruterne (tilføj video, tilføj og kør overvågede kanaler), men importen på modulniveau forsvandt 2026-09-20 (9675a5b); kun to funktioner havde en lokal import. Siden da gav "tilføj overvåget kanal" og "tilføj video" 500 (NameError). CI kører nu pyflakes og fejler på udefinerede navne, så det fanges før drift. Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG --- .gitea/workflows/ci.yml | 8 +++++++- main.py | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 92929a9..cd2de72 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -15,9 +15,15 @@ jobs: steps: - uses: actions/checkout@v4 - name: Tooling - run: apt-get update -qq && apt-get install -y -qq --no-install-recommends python3 python3-jinja2 + run: apt-get update -qq && apt-get install -y -qq --no-install-recommends python3 python3-jinja2 python3-pyflakes - name: Python compiles run: python3 -m compileall -q . + - name: No undefined names + # Fanger fx et manglende "import asyncio", der ellers først viser sig som + # en 500 i drift (sket for YouTube-modulet 2026-09-20 til 2026-10-06). + run: | + python3 -m pyflakes *.py > pyflakes.txt || true + if grep -E "undefined name|unable to detect undefined names" pyflakes.txt; then exit 1; fi - name: Templates parse run: | python3 - <<'PY' diff --git a/main.py b/main.py index ee98aca..c6de434 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,7 @@ from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from starlette.middleware.sessions import SessionMiddleware +import asyncio import re import time import urllib.parse @@ -133,7 +134,6 @@ async def dashboard_content(request: Request): user = current_user(request) if not user: raise HTTPException(401) - import asyncio mc_task = asyncio.create_task(svc.minecraft_servers()) apps, error = [], None try: @@ -236,7 +236,6 @@ async def admin_ops(request: Request): @app.get("/ops-content", response_class=HTMLResponse) async def ops_content(request: Request): require_admin(request) - import asyncio version, rp, vers = await asyncio.gather( svc.assets_version(), svc.rp_status(), versions.all_versions()) return templates.TemplateResponse(request, "admin_ops_body.html", {