Add emoji support to responses in text and TUI modes

This commit is contained in:
Claw - AI Now Inc 2026-03-01 13:39:51 -08:00
parent 7e1c98a1aa
commit 08b4aece2b

View File

@ -18,6 +18,24 @@ from openclaw_client import OpenClawClient
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# Emoji mappings for different response types
EMOJIS = {
'greeting': '👋',
'music_play': '🎵',
'music_pause': '⏸️ ',
'music_resume': '▶️ ',
'music_stop': '⏹️ ',
'music_next': '⏭️ ',
'music_volume': '🔊',
'time': '🕐',
'question': '🤔',
'answer': '💬',
'error': '⚠️ ',
'success': '',
'thinking': '💭',
'openclaw': '🏭',
}
class VoiceAssistant: class VoiceAssistant:
""" """
@ -117,28 +135,28 @@ class VoiceAssistant:
if self.music_player.music_library: if self.music_player.music_library:
first_track = list(self.music_player.music_library.values())[0] first_track = list(self.music_player.music_library.values())[0]
self.music_player.play(first_track) self.music_player.play(first_track)
return ("Playing music", return (f"{EMOJIS['music_play']} Playing music",
"en" if language == "en" else "zh") "en" if language == "en" else "zh")
# Pause # Pause
elif "pause" in text or "暂停" in text: elif "pause" in text or "暂停" in text:
self.music_player.pause() self.music_player.pause()
return ("Paused", "en" if language == "en" else "zh") return (f"{EMOJIS['music_pause']} Paused", "en" if language == "en" else "zh")
# Resume # Resume
elif "resume" in text or "继续" in text: elif "resume" in text or "继续" in text:
self.music_player.resume() self.music_player.resume()
return ("Resumed", "en" if language == "en" else "zh") return (f"{EMOJIS['music_resume']} Resumed", "en" if language == "en" else "zh")
# Stop # Stop
elif "stop" in text or "停止" in text: elif "stop" in text or "停止" in text:
self.music_player.stop() self.music_player.stop()
return ("Stopped", "en" if language == "en" else "zh") return (f"{EMOJIS['music_stop']} Stopped", "en" if language == "en" else "zh")
# Next # Next
elif "next" in text or "下一首" in text: elif "next" in text or "下一首" in text:
self.music_player.next() self.music_player.next()
return ("Next track", "en" if language == "en" else "zh") return (f"{EMOJIS['music_next']} Next track", "en" if language == "en" else "zh")
# Volume # Volume
elif "volume" in text or "音量" in text: elif "volume" in text or "音量" in text:
@ -146,7 +164,7 @@ class VoiceAssistant:
self.music_player.set_volume(self.music_player.volume + 0.1) self.music_player.set_volume(self.music_player.volume + 0.1)
elif "down" in text or "" in text: elif "down" in text or "" in text:
self.music_player.set_volume(self.music_player.volume - 0.1) self.music_player.set_volume(self.music_player.volume - 0.1)
return ("Volume adjusted", "en" if language == "en" else "zh") return (f"{EMOJIS['music_volume']} Volume adjusted", "en" if language == "en" else "zh")
return ("Command not recognized", "en" if language == "en" else "zh") return ("Command not recognized", "en" if language == "en" else "zh")
@ -166,10 +184,11 @@ class VoiceAssistant:
def _get_time(self, language: str) -> Tuple[str, str]: def _get_time(self, language: str) -> Tuple[str, str]:
"""Get current time response.""" """Get current time response."""
now = datetime.now() now = datetime.now()
emoji = EMOJIS['time']
if language == "zh": if language == "zh":
return (f"现在时间是 {now.strftime('%H点%M分')}", "zh") return (f"{emoji} 现在时间是 {now.strftime('%H点%M分')}", "zh")
else: else:
return (f"The current time is {now.strftime('%I:%M %p')}", "en") return (f"{emoji} The current time is {now.strftime('%I:%M %p')}", "en")
def _get_greeting(self, language: str) -> Tuple[str, str]: def _get_greeting(self, language: str) -> Tuple[str, str]:
"""Get greeting response.""" """Get greeting response."""
@ -193,9 +212,9 @@ class VoiceAssistant:
"""Send question to OpenClaw and get response.""" """Send question to OpenClaw and get response."""
if not self.openclaw_client.enabled: if not self.openclaw_client.enabled:
if language == "zh": if language == "zh":
return ("OpenClaw 未启用", "zh") return (f"{EMOJIS['openclaw']} OpenClaw 未启用", "zh")
else: else:
return ("OpenClaw is not enabled", "en") return (f"{EMOJIS['openclaw']} OpenClaw is not enabled", "en")
# Add context about language preference # Add context about language preference
context = {"preferred_language": language} context = {"preferred_language": language}
@ -204,9 +223,9 @@ class VoiceAssistant:
if "error" in response: if "error" in response:
if language == "zh": if language == "zh":
return ("抱歉,暂时无法回答", "zh") return (f"{EMOJIS['error']} 抱歉,暂时无法回答", "zh")
else: else:
return ("Sorry, I can't answer that right now", "en") return (f"{EMOJIS['error']} Sorry, I can't answer that right now", "en")
# Extract response text # Extract response text
response_text = response.get("response", str(response)) response_text = response.get("response", str(response))