DungeonCrawler/comfyui-audio/comfyui_audiocraft/__init__.py
Andre 8768edc16c AudioManager: Einzelne Dateien löschen per X-Button
API-Endpoint /audiocraft/delete im Backend. Löscht die Datei
und die zugehörige upsampled Version. Gelöschte Zeilen werden
ausgegraut. Stoppt Wiedergabe falls die Datei gerade spielt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 19:46:50 +01:00

30 lines
1.2 KiB
Python

from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
import os
from aiohttp import web
import server
WEB_DIRECTORY = "./web"
# API-Endpoint zum Löschen einzelner Audio-Dateien
@server.PromptServer.instance.routes.post("/audiocraft/delete")
async def delete_audio_file(request):
data = await request.json()
filename = data.get("filename", "")
if not filename or ".." in filename or "/" in filename or "\\" in filename:
return web.json_response({"error": "Ungueltiger Dateiname"}, status=400)
audio_dir = "/app/ComfyUI/output/audio"
filepath = os.path.join(audio_dir, filename)
if not os.path.exists(filepath):
return web.json_response({"error": "Datei nicht gefunden"}, status=404)
os.remove(filepath)
# Auch die zugehörige upsampled Version löschen falls vorhanden
base = filename.replace(".wav", "")
for f in os.listdir(audio_dir):
if f.startswith(base) and f != filename and f.endswith(".wav"):
os.remove(os.path.join(audio_dir, f))
return web.json_response({"ok": True, "deleted": filename})
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]