diff --git a/backend/data/pending-autostart/__global__.json b/backend/data/pending-autostart/__global__.json index 03328a2..b157675 100644 --- a/backend/data/pending-autostart/__global__.json +++ b/backend/data/pending-autostart/__global__.json @@ -1,35 +1,67 @@ { "items": [ { - "modelKey": "sw33t_g1rl", - "url": "https://www.myfreecams.com/#sw33t_g1rl", + "modelKey": "jam_cream", + "url": "https://www.myfreecams.com/#jam_cream", "mode": "probe_retry", - "nextProbeAtMs": 1775732773528, + "nextProbeAtMs": 1775738855792, "currentShow": "offline", "source": "watched" }, { - "modelKey": "sunshinegirlx", - "url": "https://chaturbate.com/sunshinegirlx/", + "modelKey": "tashinadoncaster", + "url": "https://chaturbate.com/tashinadoncaster/", "mode": "wait_public", "currentShow": "private", - "imageUrl": "https://thumb.live.mmcdn.com/ri/sunshinegirlx.jpg", + "imageUrl": "https://thumb.live.mmcdn.com/ri/tashinadoncaster.jpg", "source": "watched" }, { - "modelKey": "yourhanna", - "url": "https://chaturbate.com/yourhanna/", + "modelKey": "_jesslei_", + "url": "https://chaturbate.com/_jesslei_/", "mode": "wait_public", - "currentShow": "hidden", - "imageUrl": "https://thumb.live.mmcdn.com/ri/yourhanna.jpg", + "currentShow": "private", + "imageUrl": "https://thumb.live.mmcdn.com/ri/_jesslei_.jpg", "source": "watched" }, { - "modelKey": "nataliecroft", - "url": "https://chaturbate.com/nataliecroft/", + "modelKey": "mary_meys", + "url": "https://chaturbate.com/mary_meys/", + "mode": "wait_public", + "currentShow": "private", + "imageUrl": "https://thumb.live.mmcdn.com/ri/mary_meys.jpg", + "source": "watched" + }, + { + "modelKey": "jodeesolarz", + "url": "https://chaturbate.com/jodeesolarz/", + "mode": "wait_public", + "currentShow": "away", + "imageUrl": "https://thumb.live.mmcdn.com/ri/jodeesolarz.jpg", + "source": "watched" + }, + { + "modelKey": "di_n_alex", + "url": "https://chaturbate.com/di_n_alex/", + "mode": "wait_public", + "currentShow": "private", + "imageUrl": "https://thumb.live.mmcdn.com/ri/di_n_alex.jpg", + "source": "watched" + }, + { + "modelKey": "lora_lifelover", + "url": "https://chaturbate.com/lora_lifelover/", "mode": "wait_public", "currentShow": "hidden", - "imageUrl": "https://thumb.live.mmcdn.com/ri/nataliecroft.jpg", + "imageUrl": "https://thumb.live.mmcdn.com/ri/lora_lifelover.jpg", + "source": "watched" + }, + { + "modelKey": "chaesoffel", + "url": "https://chaturbate.com/chaesoffel/", + "mode": "wait_public", + "currentShow": "hidden", + "imageUrl": "https://thumb.live.mmcdn.com/ri/chaesoffel.jpg", "source": "watched" }, { @@ -41,42 +73,26 @@ "source": "watched" }, { - "modelKey": "love_vibe", - "url": "https://chaturbate.com/love_vibe/", + "modelKey": "shirleendurrah", + "url": "https://chaturbate.com/shirleendurrah/", "mode": "wait_public", "currentShow": "private", - "imageUrl": "https://thumb.live.mmcdn.com/ri/love_vibe.jpg", + "imageUrl": "https://thumb.live.mmcdn.com/ri/shirleendurrah.jpg", "source": "watched" }, { - "modelKey": "georgiannahearn", - "url": "https://chaturbate.com/georgiannahearn/", - "mode": "wait_public", - "currentShow": "private", - "imageUrl": "https://thumb.live.mmcdn.com/ri/georgiannahearn.jpg", - "source": "watched" - }, - { - "modelKey": "libbyshepard", - "url": "https://chaturbate.com/libbyshepard/", + "modelKey": "palmiratownzen", + "url": "https://chaturbate.com/palmiratownzen/", "mode": "wait_public", "currentShow": "away", - "imageUrl": "https://thumb.live.mmcdn.com/ri/libbyshepard.jpg", + "imageUrl": "https://thumb.live.mmcdn.com/ri/palmiratownzen.jpg", "source": "watched" }, { - "modelKey": "minions_", - "url": "https://chaturbate.com/minions_/", - "mode": "wait_public", - "currentShow": "hidden", - "imageUrl": "https://thumb.live.mmcdn.com/ri/minions_.jpg", - "source": "watched" - }, - { - "modelKey": "amanda_sayhey", - "url": "https://chaturbate.com/amanda_sayhey/", + "modelKey": "rafaelaloghry", + "url": "https://chaturbate.com/rafaelaloghry/", "mode": "probe_retry", - "nextProbeAtMs": 1775734021567, + "nextProbeAtMs": 1775738868799, "currentShow": "unknown", "source": "watched" } diff --git a/backend/data/pending-autostart/admin.json b/backend/data/pending-autostart/admin.json deleted file mode 100644 index fc69ce2..0000000 --- a/backend/data/pending-autostart/admin.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "items": [] -} \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index bed0424..5c2c67b 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -3581,10 +3581,10 @@ export default function App() { } const headerInfoPanelClass = - 'rounded-lg border border-gray-200/70 bg-white/45 px-2.5 py-1.5 shadow-sm backdrop-blur dark:border-white/10 dark:bg-white/5 sm:rounded-xl sm:px-3 sm:py-2' + 'rounded-lg border border-gray-200/70 bg-white/45 px-2.5 py-1.5 shadow-sm backdrop-blur dark:border-white/10 dark:bg-white/5 sm:flex sm:h-[47px] sm:items-center sm:rounded-xl sm:px-3 sm:py-0' const headerStatBadgeClass = - 'inline-flex h-7 items-center gap-1 rounded-full border border-gray-200/70 bg-white/70 px-2 text-[10px] font-semibold text-gray-900 shadow-sm backdrop-blur dark:border-white/10 dark:bg-white/10 dark:text-gray-100 sm:h-8 sm:gap-1.5 sm:px-2.5 sm:text-[11px]' + 'inline-flex h-6 items-center gap-1 rounded-full border border-gray-200/70 bg-white/70 px-2 text-[10px] font-semibold text-gray-900 shadow-sm backdrop-blur dark:border-white/10 dark:bg-white/10 dark:text-gray-100 sm:h-7 sm:gap-1.5 sm:px-2.5 sm:text-[11px]' return (
@@ -3599,9 +3599,9 @@ export default function App() {
{/* Desktop */} -
-
-
+
+
+

Recorder

diff --git a/frontend/src/components/ui/PerformanceMonitor.tsx b/frontend/src/components/ui/PerformanceMonitor.tsx index 05affcf..590b452 100644 --- a/frontend/src/components/ui/PerformanceMonitor.tsx +++ b/frontend/src/components/ui/PerformanceMonitor.tsx @@ -232,7 +232,7 @@ export default function PerformanceMonitor({ ? ` w-full min-w-0 rounded-lg border border-gray-200/70 bg-white/70 px-1.5 py-1 shadow-sm backdrop-blur dark:border-white/10 dark:bg-white/5 - sm:rounded-xl sm:px-2 sm:py-1.5 + sm:flex sm:h-[47px] sm:items-center sm:rounded-xl sm:px-2 sm:py-0 ` : ` rounded-lg border border-gray-200/70 bg-white/70 px-2.5 py-1.5 shadow-sm backdrop-blur @@ -280,7 +280,7 @@ export default function PerformanceMonitor({ return (
-
+
{metrics.map((item) => (
{ + const q = String(p?.queue || '').toLowerCase() + const ph = String(p?.phase || '').toLowerCase() + return ( + (q === 'postwork' && ['meta', 'thumb', 'teaser', 'sprites'].includes(ph)) || + (q === 'enrich' && ph === 'analyze') + ) + }) + + const total = relevantPhases.length || 5 + const done = relevantPhases.filter((p: any) => String(p?.state || '').toLowerCase() === 'done').length const text = status === 'running' @@ -361,6 +372,8 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) { status, title: regenerateTaskTitle(file), text, + done: status === 'done' ? total : done, + total, err: status === 'error' ? error || 'Fehler beim Regenerieren.' : undefined, cancellable: status === 'running', fading: false, @@ -750,7 +763,7 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) { ...t, status: 'cancelled', title: 'Assets generieren', - text: 'Abgebrochen.', + text: '', err: undefined, cancellable: false, fading: false, @@ -931,7 +944,7 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) { ...t, status: 'cancelled', title: 'Assets generieren', - text: 'Abgebrochen.', + text: '', })) fadeOutTask(setAssetsTask) }}