diff --git a/ttstoy/ttstoy.py b/ttstoy/ttstoy.py index dc88246..fe71047 100644 --- a/ttstoy/ttstoy.py +++ b/ttstoy/ttstoy.py @@ -3096,8 +3096,9 @@ class TtsToy(Cog): mode_override = payload.get("mode_override") # per-request mode from web UI voice_override = payload.get("voice_override") # per-request voice from web UI skip_vc = payload.get("skip_vc", False) + skip_post = payload.get("skip_post", False) guild_id_str = payload.get("guild_id", "") - log.info(f"[WebUI] speak_in_vc: user={user} job={job_id} guild={guild_id_str} mode_override={mode_override} voice_override={voice_override} skip_vc={skip_vc} text={text[:60]!r}") + log.info(f"[WebUI] speak_in_vc: user={user} job={job_id} guild={guild_id_str} mode_override={mode_override} voice_override={voice_override} skip_vc={skip_vc} skip_post={skip_post} text={text[:60]!r}") webui_url = self._get_webui_url() secret = self._get_internal_secret() @@ -3211,11 +3212,12 @@ class TtsToy(Cog): # Post transcript to Discord channel and mark job done # Resolve the best guild ID for posting: login guild > VC guild > empty post_guild_id = guild_id_str or (str(member_guild.id) if member_guild else "") - await self._handle_webui_post({ - "job_id": job_id, "path": audio_path, - "text": text, "user": discord_name, "engine": mode, - "guild_id": post_guild_id, - }) + if not skip_post: + await self._handle_webui_post({ + "job_id": job_id, "path": audio_path, + "text": text, "user": discord_name, "engine": mode, + "guild_id": post_guild_id, + }) await asyncio.to_thread(_update_job, "done", path=audio_path) async def _handle_webui_post(self, post: dict): diff --git a/ttstoy/webui/app.py b/ttstoy/webui/app.py index 098aefe..3ecfe26 100644 --- a/ttstoy/webui/app.py +++ b/ttstoy/webui/app.py @@ -442,6 +442,7 @@ def api_tts_generate(): "mode_override": mode, "voice_override": voice, "skip_vc": True, + "skip_post": not data.get("post_to_discord", True), "guild_id": _resolve_guild_id(), })