updated
This commit is contained in:
parent
144a8492d7
commit
fbe9f306a3
@ -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)
|
||||
}
|
||||
|
||||
@ -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('')
|
||||
|
||||
@ -245,17 +245,26 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) {
|
||||
assetsError.toLowerCase() === 'cancelled' ||
|
||||
assetsError.toLowerCase() === 'canceled'
|
||||
|
||||
setAssetsTask((t) => ({
|
||||
...t,
|
||||
status: cancelled ? 'cancelled' : 'error',
|
||||
title: 'Assets generieren',
|
||||
text: shortTaskFilename(String(assets.currentFile || assets.text || '')),
|
||||
done: Number(assets.done ?? 0),
|
||||
total: Number(assets.total ?? 0),
|
||||
err: cancelled ? undefined : assetsError,
|
||||
cancellable: false,
|
||||
fading: false,
|
||||
}))
|
||||
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',
|
||||
text: shortTaskFilename(String(assets.currentFile || assets.text || '')),
|
||||
done: Number(assets.done ?? 0),
|
||||
total: Number(assets.total ?? 0),
|
||||
err: cancelled ? undefined : assetsError,
|
||||
cancellable: false,
|
||||
fading: t.fading ?? false,
|
||||
}
|
||||
|
||||
return next
|
||||
})
|
||||
} else if (assets?.text || assets?.finishedAt) {
|
||||
setAssetsTask((t) => ({
|
||||
...t,
|
||||
@ -717,25 +726,35 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) {
|
||||
}
|
||||
|
||||
async function cancelAssetsTask() {
|
||||
const ac = assetsAbortRef.current
|
||||
assetsAbortRef.current = null
|
||||
const ac = assetsAbortRef.current
|
||||
assetsAbortRef.current = null
|
||||
|
||||
// UI sofort
|
||||
setAssetsTask((t: TaskItem) => ({ ...t, status: 'cancelled', text: 'Abgebrochen.' }))
|
||||
// UI sofort
|
||||
setAssetsTask((t: TaskItem) => ({
|
||||
...t,
|
||||
status: 'cancelled',
|
||||
title: 'Assets generieren',
|
||||
text: 'Abgebrochen.',
|
||||
err: undefined,
|
||||
cancellable: false,
|
||||
fading: false,
|
||||
}))
|
||||
|
||||
if (ac) {
|
||||
ac.abort()
|
||||
return
|
||||
}
|
||||
fadeOutTask(setAssetsTask)
|
||||
|
||||
// Fallback (z.B. nach Reload, wenn kein Controller existiert):
|
||||
try {
|
||||
await fetch('/api/tasks/generate-assets', { method: 'DELETE', cache: 'no-store' as any })
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
if (ac) {
|
||||
ac.abort()
|
||||
return
|
||||
}
|
||||
|
||||
// Fallback (z.B. nach Reload, wenn kein Controller existiert):
|
||||
try {
|
||||
await fetch('/api/tasks/generate-assets', { method: 'DELETE', cache: 'no-store' as any })
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
async function cancelRegenerateAssetsTask(file: string) {
|
||||
const cleanFile = String(file || '').trim()
|
||||
if (!cleanFile) return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user