From 143085991da7d31668af40d8657132d34c4fd20c Mon Sep 17 00:00:00 2001 From: jb-alvarado Date: Sun, 22 Jan 2023 15:51:53 +0100 Subject: [PATCH] option for list folders only --- ffplayout-api/src/utils/files.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ffplayout-api/src/utils/files.rs b/ffplayout-api/src/utils/files.rs index e6112e0a..91c87375 100644 --- a/ffplayout-api/src/utils/files.rs +++ b/ffplayout-api/src/utils/files.rs @@ -20,6 +20,8 @@ pub struct PathObject { parent: Option, folders: Option>, files: Option>, + #[serde(default)] + pub folders_only: bool, } impl PathObject { @@ -29,6 +31,7 @@ impl PathObject { parent, folders: Some(vec![]), files: Some(vec![]), + folders_only: false, } } } @@ -105,6 +108,7 @@ pub async fn browser( let (path, parent, path_component) = norm_abs_path(&config.storage.path, &path_obj.source); let mut obj = PathObject::new(path_component, Some(parent)); + obj.folders_only = path_obj.folders_only; let mut paths: Vec = match fs::read_dir(path) { Ok(p) => p.filter_map(|r| r.ok()).map(|p| p.path()).collect(), @@ -126,7 +130,7 @@ pub async fn browser( if path.is_dir() { folders.push(path.file_name().unwrap().to_string_lossy().to_string()); - } else if path.is_file() { + } else if path.is_file() && !path_obj.folders_only { if let Some(ext) = file_extension(&path) { if extensions.contains(&ext.to_string().to_lowercase()) { let media = MediaProbe::new(&path.display().to_string());