This commit is contained in:
Linrador 2026-04-07 12:16:26 +02:00
parent 144a8492d7
commit fbe9f306a3
3 changed files with 46 additions and 35 deletions

View File

@ -6,7 +6,6 @@ import (
"context"
"encoding/json"
"errors"
"fmt"
"net/http"
"os"
"path/filepath"
@ -335,10 +334,6 @@ func runRegenerateAssetsJob(job *regenerateAssetsJob) {
failJob := func(queue, phase, msg string) {
msg = strings.TrimSpace(msg)
if msg != "" {
fmt.Printf("❌ regenerate-assets error file=%s queue=%s phase=%s error=%s\n", file, queue, phase, msg)
}
if queue != "" && phase != "" {
publishFinishedPostworkPhase(file, id, queue, phase, "error", "Fehler", msg)
}

View File

@ -2102,7 +2102,7 @@ export default function App() {
if (alreadyRunning) return true
// ✅ Nur Auto-/Silent-Starts: Chaturbate ggf. in Warteschlange statt Sofortstart
if (silent && provider === 'chaturbate' && recSettingsRef.current.useChaturbateApi) {
if (provider === 'chaturbate' && recSettingsRef.current.useChaturbateApi) {
try {
const parsed = await apiJSON<ParsedModel>('/api/models/parse', {
method: 'POST',
@ -2712,10 +2712,7 @@ export default function App() {
}, [playerJob, modelsByKey])
async function onStart() {
const ok = enqueueStart({
url: sourceUrl,
silent: false,
})
const ok = await startUrl(sourceUrl, { silent: false })
if (ok) {
setSourceUrl('')

View File

@ -245,7 +245,13 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) {
assetsError.toLowerCase() === 'cancelled' ||
assetsError.toLowerCase() === 'canceled'
setAssetsTask((t) => ({
setAssetsTask((t) => {
// Wenn schon idle oder bereits am Ausfaden: nicht wieder "sichtbar reaktivieren"
if (cancelled && (t.status === 'idle' || t.fading)) {
return t
}
const next: TaskItem = {
...t,
status: cancelled ? 'cancelled' : 'error',
title: 'Assets generieren',
@ -254,8 +260,11 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) {
total: Number(assets.total ?? 0),
err: cancelled ? undefined : assetsError,
cancellable: false,
fading: false,
}))
fading: t.fading ?? false,
}
return next
})
} else if (assets?.text || assets?.finishedAt) {
setAssetsTask((t) => ({
...t,
@ -721,7 +730,17 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) {
assetsAbortRef.current = null
// UI sofort
setAssetsTask((t: TaskItem) => ({ ...t, status: 'cancelled', text: 'Abgebrochen.' }))
setAssetsTask((t: TaskItem) => ({
...t,
status: 'cancelled',
title: 'Assets generieren',
text: 'Abgebrochen.',
err: undefined,
cancellable: false,
fading: false,
}))
fadeOutTask(setAssetsTask)
if (ac) {
ac.abort()