Grotti 2.2.0: Auth, API-Tokens, MCP und Doku-Trennung.

This commit is contained in:
Dominic Gundel committed 2026-10-15 10:53:12 +02:00
1 parent b20f8a7779
commit 5a3716b26a
65 files changed
+2212 -198

No files matched your search

+19 -1
View File
@@ -907,7 +907,7 @@ def query(host):
"/api/v1/vorschau?host=%s&embedded=%s" % (quoted_host, urllib.parse.quote(raw_name))
if raw_name and EMBEDDED.get((host, raw_name)) else ""
),
"camera": "/api/v1/kamera?host=%s" % quoted_host,
**_camera_fields(host, quoted_host),
**mesh_fields(host, shown, mesh_profile),
"fan": fan_speed,
"fan_rpm": fan_rpm,
@@ -946,6 +946,8 @@ def snapshot(printers):
"ok": False,
"state": "offline",
"message": str(error),
"camera": "",
"has_camera": False,
"fan": None,
"fan_rpm": None,
"fans": {"part": None, "chamber": None, "aux": None},
@@ -986,5 +988,21 @@ def camera_image(host):
return CAMERA_CACHE[host][2]
def _camera_fields(host, quoted_host):
"""Kamera-URL nur, wenn nicht als tot bekannt (Cache-Miss = erst versuchen)."""
cached = CAMERA_CACHE.get(host)
if cached is not None and cached[2] is None:
return {"camera": "", "has_camera": False}
if cached is not None and cached[2] is not None:
return {
"camera": "/api/v1/kamera?host=%s" % quoted_host,
"has_camera": True,
}
return {
"camera": "/api/v1/kamera?host=%s" % quoted_host,
"has_camera": None,
}
def embedded_bytes(host, name):
return EMBEDDED.get((host, name))