From 97475d9a5daa20c8d6004776d793c36d3969ae19 Mon Sep 17 00:00:00 2001 From: Kingston-SCYD Date: Fri, 5 Jun 2026 16:58:53 -0500 Subject: [PATCH] Add 'Post to Discord' checkbox for Generate Only mode --- ttstoy/ttstoy.py | 16 +++++++++------- ttstoy/webui/app.py | 2 ++ ttstoy/webui/templates/dashboard.html | 8 ++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ttstoy/ttstoy.py b/ttstoy/ttstoy.py index 6deffd2..d0e14ac 100644 --- a/ttstoy/ttstoy.py +++ b/ttstoy/ttstoy.py @@ -2972,8 +2972,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() @@ -3085,13 +3086,14 @@ class TtsToy(Cog): log.exception(f"[WebUI] VC playback failed for job {job_id}: {e}") # Post transcript to Discord channel and mark job done - # Resolve the best guild ID for posting: login guild > VC guild > empty + # Post transcript to Discord channel (unless skip_post) 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 f17a93b..f5006f6 100644 --- a/ttstoy/webui/app.py +++ b/ttstoy/webui/app.py @@ -401,6 +401,7 @@ def api_tts_generate(): mode = data.get("mode") or user_mode_overrides.get(str(user_id), global_mode) voice = data.get("voice") or None + post_to_discord = data.get("post_to_discord", True) job_id = str(uuid.uuid4()) _tts_jobs[job_id] = {"status": "pending", "text": text, "user": discord_name, "engine": mode} @@ -411,6 +412,7 @@ def api_tts_generate(): "mode_override": mode, "voice_override": voice, "skip_vc": True, + "skip_post": not post_to_discord, "guild_id": _resolve_guild_id(), }) diff --git a/ttstoy/webui/templates/dashboard.html b/ttstoy/webui/templates/dashboard.html index f5fe264..0e3f412 100644 --- a/ttstoy/webui/templates/dashboard.html +++ b/ttstoy/webui/templates/dashboard.html @@ -117,6 +117,9 @@ +