diff --git a/web/src/pages/TaskRuntimeTables.tsx b/web/src/pages/TaskRuntimeTables.tsx new file mode 100644 index 0000000..31ee618 --- /dev/null +++ b/web/src/pages/TaskRuntimeTables.tsx @@ -0,0 +1,85 @@ +import type { ActiveTranscode } from '../api/tasks' +import type { QBitTorrent } from '../types' + +function fmtBytes(n: number): string { + if (!n || n <= 0) return '0 B' + const u = ['B', 'KB', 'MB', 'GB', 'TB'] + let v = n + let i = 0 + while (v >= 1024 && i < u.length - 1) { + v /= 1024 + i++ + } + return `${v.toFixed(2)} ${u[i]}` +} + +export function TranscodeTaskTable({ transcodes }: { transcodes: ActiveTranscode[] }) { + if (transcodes.length === 0) return
暂无运行中转码。
+ return ( +| 媒体 ID | +编码器 | +开始时间 | +就绪 | +
|---|---|---|---|
| {t.media_id} | +{t.encoder || 'libx264'} | +{new Date(t.started_at).toLocaleTimeString()} | ++ {t.playlist_ok ? ( + + ready + + ) : ( + + starting + + )} + | +
暂无运行中下载。
+ return ( +| 名称 | +状态 | +进度 | +体积 | +
|---|---|---|---|
| + {t.name} + | +{t.state} | +
+
+
+
+
+
+ {(t.progress * 100).toFixed(1)}%
+ |
+ {fmtBytes(t.size)} | +
暂无运行中转码。
} - {snap.transcodes.length > 0 && ( -| 媒体 ID | -编码器 | -开始时间 | -就绪 | -
|---|---|---|---|
| {t.media_id} | -{t.encoder || 'libx264'} | -{new Date(t.started_at).toLocaleTimeString()} | -- {t.playlist_ok ? ( - - ready - - ) : ( - - starting - - )} - | -
暂无运行中下载。
} - {torrents.length > 0 && ( -| 名称 | -状态 | -进度 | -体积 | -
|---|---|---|---|
| - {t.name} - | -{t.state} | -
-
-
-
-
-
- {(t.progress * 100).toFixed(1)}%
- |
- {fmtBytes(t.size)} | -