From ce212cb2d617cd79bd1b67c64276ca07ba31c572 Mon Sep 17 00:00:00 2001 From: spinline Date: Sat, 21 Feb 2026 16:33:10 +0300 Subject: [PATCH] feat: enhance torrent details general tab --- backend/src/sse.rs | 30 ++++++++++++ frontend/src/components/torrent/details.rs | 57 +++++++++++++++++++--- shared/src/lib.rs | 5 ++ 3 files changed, 85 insertions(+), 7 deletions(-) diff --git a/backend/src/sse.rs b/backend/src/sse.rs index 9dbf4be..47e1d8d 100644 --- a/backend/src/sse.rs +++ b/backend/src/sse.rs @@ -51,6 +51,21 @@ mod fields { pub const IDX_LABEL: usize = 12; pub const CMD_LABEL: &str = "d.custom1="; + + pub const IDX_RATIO: usize = 13; + pub const CMD_RATIO: &str = "d.ratio="; + + pub const IDX_UPLOADED: usize = 14; + pub const CMD_UPLOADED: &str = "d.up.total="; + + pub const IDX_WASTED: usize = 15; + pub const CMD_WASTED: &str = "d.skip.total="; + + pub const IDX_SAVE_PATH: usize = 16; + pub const CMD_SAVE_PATH: &str = "d.base_path="; + + pub const IDX_FREE_DISK: usize = 17; + pub const CMD_FREE_DISK: &str = "d.free_diskspace="; } use fields::*; @@ -72,6 +87,11 @@ const RTORRENT_FIELDS: &[&str] = &[ CMD_CREATION_DATE, CMD_HASHING, CMD_LABEL, + CMD_RATIO, + CMD_UPLOADED, + CMD_WASTED, + CMD_SAVE_PATH, + CMD_FREE_DISK, ]; fn parse_long(s: Option<&String>) -> i64 { @@ -98,6 +118,11 @@ fn from_rtorrent_row(row: Vec) -> Torrent { let added_date = parse_long(row.get(IDX_CREATION_DATE)); let is_hashing = parse_long(row.get(IDX_HASHING)); let label_raw = parse_string(row.get(IDX_LABEL)); + let ratio = parse_long(row.get(IDX_RATIO)) as f64 / 1000.0; + let uploaded = parse_long(row.get(IDX_UPLOADED)); + let wasted = parse_long(row.get(IDX_WASTED)); + let save_path = parse_string(row.get(IDX_SAVE_PATH)); + let free_disk_space = parse_long(row.get(IDX_FREE_DISK)); let label = if label_raw.is_empty() { None @@ -144,6 +169,11 @@ fn from_rtorrent_row(row: Vec) -> Torrent { error_message: message, added_date, label, + ratio, + uploaded, + wasted, + save_path, + free_disk_space, } } diff --git a/frontend/src/components/torrent/details.rs b/frontend/src/components/torrent/details.rs index 238de52..44ca654 100644 --- a/frontend/src/components/torrent/details.rs +++ b/frontend/src/components/torrent/details.rs @@ -89,16 +89,59 @@ pub fn TorrentDetailsSheet() -> impl IntoView { error_message: "".to_string(), added_date: 0, label: None, + ratio: 0.0, + uploaded: 0, + wasted: 0, + save_path: "Yükleniyor...".to_string(), + free_disk_space: 0, }); view! { -
- - - - - - +
+ // Aktarım +
+

"Aktarım"

+
+ + + + + + + + + + + + + + + + + +
+
+ + // İzleyici +
+

"İzleyici"

+
+ + +
+
+ + // Genel +
+

"Genel"

+
+ + + + + +
+
} }} diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 251542c..89fb188 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -42,6 +42,11 @@ pub struct Torrent { pub error_message: String, pub added_date: i64, pub label: Option, + pub ratio: f64, + pub uploaded: i64, + pub wasted: i64, + pub save_path: String, + pub free_disk_space: i64, } #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, ToSchema)]