SkyOSFullCore / modules /dashboard /event_handler.py
sky-meilin's picture
Update modules/dashboard/event_handler.py
cc1fbb4 verified
Raw History Blame
3.61 kB
"""
event_handler.py
SkyOS Dashboard Event Handler
Verbindet alle UI-Komponenten mit den Backend-Modulen.
Autor: Sky Meilin
Projekt: SkyOS
"""
from __future__ import annotations
import logging
logger = logging.getLogger("SkyOS.Dashboard")
# ---------------------------------------------------------
# Backend Bridge
# ---------------------------------------------------------
def process_message(message: str) -> str:
"""
Übergangspunkt zum SkyOS Router.
Wird später ersetzt durch:
Router.handle(message)
"""
return (
"Nachricht empfangen. "
"Die Verarbeitung übernimmt später der SkyOS Router."
)
# ---------------------------------------------------------
# Chat Events
# ---------------------------------------------------------
def send_message(text, audio):
"""
Standard-Chatcallback.
"""
try:
if text:
user_input = text
elif audio:
user_input = "🎤 Spracheingabe empfangen."
else:
return [], "", None
response = process_message(user_input)
history = [
{
"role": "user",
"content": user_input,
},
{
"role": "assistant",
"content": response,
},
]
return history, "", None
except Exception:
logger.exception("Chat-Verarbeitung fehlgeschlagen.")
return (
[
{
"role": "assistant",
"content": "⚠️ Fehler bei der Verarbeitung."
}
],
"",
None,
)
# ---------------------------------------------------------
# Status Events
# ---------------------------------------------------------
def refresh_status():
"""
Status-Aktualisierung.
Später:
StatusMonitor.get_status()
"""
logger.info("Status aktualisiert")
return (
"🟢 Online",
"🟡 Nicht verbunden",
"🟢 Aktiv",
"🟢 Aktiv",
"🟢 Aktiv",
"🟢 Aktiv",
"🟢 Online",
"🟢 Online",
)
# ---------------------------------------------------------
# Header Events
# ---------------------------------------------------------
def refresh_header():
"""
Aktualisiert die Dashboard-Uhr.
"""
from .header import current_time
return (
current_time(),
)
# ---------------------------------------------------------
# Event Registrierung
# ---------------------------------------------------------
def register_events(
*,
status: dict,
stream: dict,
chat: dict,
navigation: dict,
):
"""
Registriert alle Dashboard-Events.
"""
logger.info("Registriere Dashboard Events...")
# Chat Button
if "send" in chat:
chat["send"].click(
fn=send_message,
inputs=[
chat["message"],
chat["audio"],
],
outputs=[
chat["chatbot"],
chat["message"],
chat["audio"],
],
)
# Enter Taste
if "message" in chat:
chat["message"].submit(
fn=send_message,
inputs=[
chat["message"],
chat["audio"],
],
outputs=[
chat["chatbot"],
chat["message"],
chat["audio"],
],
)
logger.info(
"Dashboard Events registriert."
)