Spaces:
Running
Running
| # modules/avatar_streamer.py | |
| import time | |
| from typing import Dict, Any | |
| class AvatarStreamer: | |
| # Klassen-Attribute verhindern den Zustandverlust bei Neu-Instanziierung | |
| _avatar_name = "Sky Meilin" | |
| _status = "idle" | |
| def __init__(self): | |
| print("AvatarStreamer geladen") | |
| def avatar_name(self) -> str: | |
| return AvatarStreamer._avatar_name | |
| def avatar_name(self, name: str): | |
| AvatarStreamer._avatar_name = name | |
| def status(self) -> str: | |
| return AvatarStreamer._status | |
| def status(self, value: str): | |
| AvatarStreamer._status = value | |
| def set_avatar(self, name: str): | |
| self.avatar_name = name | |
| def start_stream(self) -> Dict[str, Any]: | |
| self.status = "streaming" | |
| return { | |
| "status": self.status, | |
| "avatar": self.avatar_name | |
| } | |
| def stop_stream(self) -> Dict[str, Any]: | |
| self.status = "offline" | |
| return { | |
| "status": self.status, | |
| "avatar": self.avatar_name | |
| } | |
| def send_message(self, text: str) -> Dict[str, Any]: | |
| if self.status != "streaming": | |
| return { | |
| "error": "Avatar nicht aktiv" | |
| } | |
| payload = { | |
| "avatar": self.avatar_name, | |
| "message": text, | |
| "timestamp": time.time() | |
| } | |
| return payload | |
| def emotion(self, emotion_name: str) -> Dict[str, Any]: | |
| return { | |
| "avatar": self.avatar_name, | |
| "emotion": emotion_name | |
| } | |