Add 'Post to Discord' checkbox for Generate Only mode

This commit is contained in:
2026-06-05 16:58:53 -05:00
parent d262115dab
commit 97475d9a5d
3 changed files with 17 additions and 9 deletions
+2
View File
@@ -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(),
})
+6 -2
View File
@@ -117,6 +117,9 @@
<button class="btn btn-secondary" id="gen-only-btn" onclick="generateOnly()" style="display:none;">
<span id="gen-spinner" class="spin" style="display:none;"></span> Generate Only
</button>
<label style="display:inline-flex;align-items:center;gap:0.3rem;margin-left:0.75rem;cursor:pointer;">
<input type="checkbox" id="post-to-discord" checked> <span class="muted" style="font-size:0.85rem;">Post to Discord</span>
</label>
<span id="tts-status" class="muted"></span>
</div>
<div id="tts-result" style="margin-top:0.75rem;display:none;">
@@ -315,13 +318,14 @@ async function generateOnly() {
if (!text) return;
const mode = document.getElementById('tts-mode-select').value;
const voice = document.getElementById('tts-voice-select').value || null;
const post_to_discord = document.getElementById('post-to-discord').checked;
const spinner = document.getElementById('gen-spinner');
const status = document.getElementById('tts-status');
const result = document.getElementById('tts-result');
spinner.style.display = 'inline-block';
status.textContent = 'Generating audio...';
result.style.display = 'none';
const r = await apiFetch('/api/tts/generate', {method:'POST', body: JSON.stringify({text, mode, voice})});
const r = await apiFetch('/api/tts/generate', {method:'POST', body: JSON.stringify({text, mode, voice, post_to_discord})});
const {job_id, error} = await r.json();
if (error) { spinner.style.display='none'; status.textContent = 'Error: ' + error; return; }
const poll = setInterval(async () => {
@@ -330,7 +334,7 @@ async function generateOnly() {
if (job.status === 'done') {
clearInterval(poll);
spinner.style.display = 'none';
status.textContent = 'Audio ready — posted to Discord channel.';
status.textContent = post_to_discord ? 'Audio ready — posted to Discord channel.' : 'Audio ready.';
document.getElementById('tts-audio').src = `/api/tts/${job_id}/audio`;
result.style.display = 'block';
} else if (job.status === 'error') {