From 08b4aece2bfadab175040260416e8d3ebf0832f2 Mon Sep 17 00:00:00 2001 From: Claw - AI Now Inc Date: Sun, 1 Mar 2026 13:39:51 -0800 Subject: [PATCH] Add emoji support to responses in text and TUI modes --- assistant.py | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/assistant.py b/assistant.py index a6d24d4..135014f 100755 --- a/assistant.py +++ b/assistant.py @@ -18,6 +18,24 @@ from openclaw_client import OpenClawClient 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: """ @@ -117,28 +135,28 @@ class VoiceAssistant: if self.music_player.music_library: first_track = list(self.music_player.music_library.values())[0] self.music_player.play(first_track) - return ("Playing music", + return (f"{EMOJIS['music_play']} Playing music", "en" if language == "en" else "zh") # Pause elif "pause" in text or "暂停" in text: 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 elif "resume" in text or "继续" in text: 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 elif "stop" in text or "停止" in text: 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 elif "next" in text or "下一首" in text: 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 elif "volume" in text or "音量" in text: @@ -146,7 +164,7 @@ class VoiceAssistant: self.music_player.set_volume(self.music_player.volume + 0.1) elif "down" in text or "小" in text: 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") @@ -166,10 +184,11 @@ class VoiceAssistant: def _get_time(self, language: str) -> Tuple[str, str]: """Get current time response.""" now = datetime.now() + emoji = EMOJIS['time'] if language == "zh": - return (f"现在时间是 {now.strftime('%H点%M分')}", "zh") + return (f"{emoji} 现在时间是 {now.strftime('%H点%M分')}", "zh") 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]: """Get greeting response.""" @@ -193,9 +212,9 @@ class VoiceAssistant: """Send question to OpenClaw and get response.""" if not self.openclaw_client.enabled: if language == "zh": - return ("OpenClaw 未启用", "zh") + return (f"{EMOJIS['openclaw']} OpenClaw 未启用", "zh") else: - return ("OpenClaw is not enabled", "en") + return (f"{EMOJIS['openclaw']} OpenClaw is not enabled", "en") # Add context about language preference context = {"preferred_language": language} @@ -204,9 +223,9 @@ class VoiceAssistant: if "error" in response: if language == "zh": - return ("抱歉,暂时无法回答", "zh") + return (f"{EMOJIS['error']} 抱歉,暂时无法回答", "zh") 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 response_text = response.get("response", str(response))