Add 'Post to Discord' checkbox for Generate Only mode
This commit is contained in:
@@ -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(),
|
||||
})
|
||||
|
||||
|
||||
@@ -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') {
|
||||
|
||||
Reference in New Issue
Block a user