From 2e46bacb36ac9d30a981978ea46747bad58898ef Mon Sep 17 00:00:00 2001 From: wisecolt Date: Sun, 4 Jan 2026 11:44:59 +0300 Subject: [PATCH] =?UTF-8?q?feat(torrents):=20torrent=20tablosunda=20upload?= =?UTF-8?q?=20h=C4=B1z=C4=B1n=C4=B1=20g=C3=B6ster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/server/src/qbit/qbit.types.ts | 1 + apps/web/src/components/torrents/TorrentTable.tsx | 4 +++- apps/web/src/store/useAppStore.ts | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server/src/qbit/qbit.types.ts b/apps/server/src/qbit/qbit.types.ts index c53edd2..82763b3 100644 --- a/apps/server/src/qbit/qbit.types.ts +++ b/apps/server/src/qbit/qbit.types.ts @@ -4,6 +4,7 @@ export interface QbitTorrentInfo { size: number; progress: number; dlspeed: number; + upspeed?: number; state: string; magnet_uri?: string; completed?: number; diff --git a/apps/web/src/components/torrents/TorrentTable.tsx b/apps/web/src/components/torrents/TorrentTable.tsx index b398108..b992a24 100644 --- a/apps/web/src/components/torrents/TorrentTable.tsx +++ b/apps/web/src/components/torrents/TorrentTable.tsx @@ -37,6 +37,8 @@ const formatSpeed = (bytesPerSec: number) => { return `${kb.toFixed(1)} KB/s`; }; +const isUploadState = (state: string) => /upload|stalledup|forcedup|up$/i.test(state); + export const TorrentTable = () => { const torrents = useAppStore((s) => s.torrents); const selected = useAppStore((s) => s.selectedHash); @@ -176,7 +178,7 @@ export const TorrentTable = () => { /> {Math.round(torrent.progress * 100)}% - {formatSpeed(torrent.dlspeed)} + {formatSpeed(isUploadState(torrent.state) ? (torrent.upspeed ?? 0) : torrent.dlspeed)} {renderState(torrent.state)} {getProfileName(torrent.hash) && ( diff --git a/apps/web/src/store/useAppStore.ts b/apps/web/src/store/useAppStore.ts index 2bc1a2a..05db578 100644 --- a/apps/web/src/store/useAppStore.ts +++ b/apps/web/src/store/useAppStore.ts @@ -6,6 +6,7 @@ export interface TorrentInfo { size: number; progress: number; dlspeed: number; + upspeed?: number; state: string; magnet_uri?: string; tracker?: string;