diff --git a/crates/librqbit/src/upnp_server_adapter.rs b/crates/librqbit/src/upnp_server_adapter.rs index c9066de..7a2e278 100644 --- a/crates/librqbit/src/upnp_server_adapter.rs +++ b/crates/librqbit/src/upnp_server_adapter.rs @@ -62,7 +62,8 @@ impl TorrentFileTreeNode { let encoded_parent_id = self.parent_id.map(|p| encode_id(p, torrent.id())); match self.real_torrent_file_id { Some(fid) => { - let filename = &torrent.shared().file_infos[fid].relative_filename; + let fi = &torrent.shared().file_infos[fid]; + let filename = &fi.relative_filename; // Torrent path joined with "/" let last_url_bit = torrent .shared() @@ -91,6 +92,7 @@ impl TorrentFileTreeNode { fid, last_url_bit ), + size: fi.len, }) } None => ItemOrContainer::Container(Container { @@ -588,7 +590,8 @@ mod tests { parent_id: 0, title: "f1".into(), mime_type: None, - url: "http://127.0.0.1:9005/torrents/0/stream/0/f1".into() + url: "http://127.0.0.1:9005/torrents/0/stream/0/f1".into(), + size: 1, }), ItemOrContainer::Container(Container { id: encode_id(0, 1), @@ -606,7 +609,8 @@ mod tests { parent_id: 0, title: "f1".into(), mime_type: None, - url: "http://127.0.0.1:9005/torrents/0/stream/0/f1".into() + url: "http://127.0.0.1:9005/torrents/0/stream/0/f1".into(), + size: 1, })] ); @@ -648,6 +652,7 @@ mod tests { title: "f2".into(), mime_type: None, url: "http://127.0.0.1:9005/torrents/1/stream/0/d1/f2".into(), + size: 1, })] ); @@ -659,6 +664,7 @@ mod tests { title: "f2".into(), mime_type: None, url: "http://127.0.0.1:9005/torrents/1/stream/0/d1/f2".into(), + size: 1, })] ); } diff --git a/crates/upnp-serve/examples/upnp-stub-server.rs b/crates/upnp-serve/examples/upnp-stub-server.rs index 51a44a6..cc393dd 100644 --- a/crates/upnp-serve/examples/upnp-stub-server.rs +++ b/crates/upnp-serve/examples/upnp-stub-server.rs @@ -26,6 +26,7 @@ async fn main() -> anyhow::Result<()> { url: "http://192.168.0.165:3030/torrents/4/stream/0/file.mkv".to_owned(), id: 1, parent_id: 0, + size: 1, })]; const HTTP_PORT: u16 = 9005; diff --git a/crates/upnp-serve/src/resources/templates/content_directory/control/browse/item.tmpl.xml b/crates/upnp-serve/src/resources/templates/content_directory/control/browse/item.tmpl.xml index 1780249..1c2ab68 100644 --- a/crates/upnp-serve/src/resources/templates/content_directory/control/browse/item.tmpl.xml +++ b/crates/upnp-serve/src/resources/templates/content_directory/control/browse/item.tmpl.xml @@ -1,5 +1,5 @@ {title} {upnp_class} - {url} + {url} diff --git a/crates/upnp-serve/src/services/content_directory.rs b/crates/upnp-serve/src/services/content_directory.rs index 47854d6..303ecfb 100644 --- a/crates/upnp-serve/src/services/content_directory.rs +++ b/crates/upnp-serve/src/services/content_directory.rs @@ -76,6 +76,7 @@ pub mod browse { pub title: String, pub mime_type: Option, pub url: String, + pub size: u64, } #[derive(Debug, Clone, PartialEq, Eq)] @@ -103,7 +104,8 @@ pub mod browse { mime_type = mime, url = item.url, upnp_class = upnp_class, - title = item.title + title = item.title, + size = item.size )) }