Do not display padding files in UI
This commit is contained in:
parent
ecc094a444
commit
c3c413c14b
4 changed files with 27 additions and 15 deletions
|
|
@ -4,7 +4,7 @@ use anyhow::Context;
|
|||
use buffers::ByteBufOwned;
|
||||
use dht::{DhtStats, Id20};
|
||||
use http::StatusCode;
|
||||
use librqbit_core::torrent_metainfo::TorrentMetaV1Info;
|
||||
use librqbit_core::torrent_metainfo::{FileDetailsAttrs, TorrentMetaV1Info};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::sync::mpsc::UnboundedSender;
|
||||
use tracing::warn;
|
||||
|
|
@ -498,6 +498,7 @@ pub struct TorrentDetailsResponseFile {
|
|||
pub components: Vec<String>,
|
||||
pub length: u64,
|
||||
pub included: bool,
|
||||
pub attributes: FileDetailsAttrs,
|
||||
}
|
||||
|
||||
#[derive(Default, Serialize)]
|
||||
|
|
@ -551,6 +552,7 @@ fn make_torrent_details(
|
|||
components,
|
||||
length: d.len,
|
||||
included,
|
||||
attributes: d.attrs(),
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
|
|
|
|||
|
|
@ -9,6 +9,14 @@ export interface TorrentFile {
|
|||
components: string[];
|
||||
length: number;
|
||||
included: boolean;
|
||||
attributes: TorrentFileAttributes;
|
||||
}
|
||||
|
||||
export interface TorrentFileAttributes {
|
||||
symlink: boolean;
|
||||
hidden: boolean;
|
||||
padding: boolean;
|
||||
executable: boolean;
|
||||
}
|
||||
|
||||
// Interface for the Torrent Details API response
|
||||
|
|
|
|||
|
|
@ -73,15 +73,20 @@ const newFileTree = (
|
|||
return newFileTreeInner(
|
||||
"",
|
||||
"filetree-root",
|
||||
torrentDetails.files.map((file, id) => {
|
||||
return {
|
||||
id,
|
||||
filename: file.components[file.components.length - 1],
|
||||
pathComponents: file.components,
|
||||
length: file.length,
|
||||
have_bytes: stats ? stats.file_progress[id] ?? 0 : 0,
|
||||
};
|
||||
}),
|
||||
torrentDetails.files
|
||||
.map((file, id) => {
|
||||
if (file.attributes.padding) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
id,
|
||||
filename: file.components[file.components.length - 1],
|
||||
pathComponents: file.components,
|
||||
length: file.length,
|
||||
have_bytes: stats ? (stats.file_progress[id] ?? 0) : 0,
|
||||
};
|
||||
})
|
||||
.filter((f) => f !== null),
|
||||
0,
|
||||
);
|
||||
};
|
||||
|
|
@ -156,10 +161,7 @@ const FileTreeComponent: React.FC<{
|
|||
};
|
||||
|
||||
const fileLink = (file: TorrentFileForCheckbox) => {
|
||||
if (
|
||||
allowStream &&
|
||||
torrentId != null
|
||||
) {
|
||||
if (allowStream && torrentId != null) {
|
||||
return API.getTorrentStreamUrl(torrentId, file.id, file.filename);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Default, Debug, Clone, Copy)]
|
||||
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy)]
|
||||
pub struct FileDetailsAttrs {
|
||||
pub symlink: bool,
|
||||
pub hidden: bool,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue