From 31f10b843851de97347b3c714c37287e379ae132 Mon Sep 17 00:00:00 2001
From: "Edgar P. Burkhart" <git@edgarpierre.fr>
Date: Sat, 22 Mar 2025 23:21:07 +0100
Subject: [PATCH] Enhance VoiceBot to support AIBot integration for dynamic TTS
 script generation

---
 botbotbot/__init__.py |  2 +-
 botbotbot/voice.py    | 21 ++++++++++++++-------
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/botbotbot/__init__.py b/botbotbot/__init__.py
index 995bbf3..575bce4 100644
--- a/botbotbot/__init__.py
+++ b/botbotbot/__init__.py
@@ -59,7 +59,7 @@ def main() -> None:
     text_bot = TextBot(bot, wl, aibot=aibot, shuffler=shf)
     text_bot.init_events()
 
-    voice_bot = VoiceBot(bot, cambai, shuffler=shf)
+    voice_bot = VoiceBot(bot, cambai, aibot=aibot, shuffler=shf)
     voice_bot.init_events()
 
     @bot.listen("on_ready")
diff --git a/botbotbot/voice.py b/botbotbot/voice.py
index 83b3317..c3fdabe 100644
--- a/botbotbot/voice.py
+++ b/botbotbot/voice.py
@@ -3,6 +3,7 @@ import random
 
 import discord
 
+from botbotbot.ai import AIBot
 from botbotbot.shuffle import Shuffler
 from botbotbot.tts import CambAI
 
@@ -14,11 +15,13 @@ class VoiceBot:
         self,
         bot: discord.Bot,
         cambai: CambAI | None = None,
+        aibot: AIBot | None = None,
         shuffler: Shuffler | None = None,
     ) -> None:
         self.bot = bot
         self.cambai = cambai
         self.shf = shuffler
+        self.aibot = aibot
 
     def init_events(self) -> None:
         self.bot.add_listener(self.on_voice_state_update, "on_voice_state_update")
@@ -45,13 +48,17 @@ class VoiceBot:
             and random.random() < 5 / 100
         ):
             logger.info("Generating tts")
-            script = random.choice(
-                [
-                    "Salut la jeunesse !",
-                    f"Salut {member.display_name}, ça va bien ?",
-                    "Allo ? À l'huile !",
-                ]
-            )
+            script = None
+            if self.aibot is not None and random.random() < 20 / 100:
+                script = self.aibot.answer("Dis un truc aléatoire et original.")
+            if script is None:
+                script = random.choice(
+                    [
+                        "Salut la jeunesse !",
+                        f"Salut {member.display_name}, ça va bien ?",
+                        "Allo ? À l'huile !",
+                    ]
+                )
             source = await discord.FFmpegOpusAudio.from_probe(self.cambai.tts(script))
             vo: discord.VoiceClient = await after.channel.connect()