index : static-web-server.git

ascending towards madness

author Jose Quintana <1700322+joseluisq@users.noreply.github.com> 2023-10-11 21:10:49.0 +00:00:00
committer GitHub <noreply@github.com> 2023-10-11 21:10:49.0 +00:00:00
commit
7c5df010c9f32a299edba98153d4e6e9a5ba8c4b [patch]
tree
6f26581027ade8526d35443b370643ca8b2841d4
parent
89d70d054d1ce94d523b17db96c24a41bd1f2e4d
download
7c5df010c9f32a299edba98153d4e6e9a5ba8c4b.tar.gz

fix: json dir listing wrong `directory` type for empty files (#271)

fixes #270

Diff

 src/directory_listing.rs |  9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/directory_listing.rs b/src/directory_listing.rs
index d6b81bf..9d0a235 100644
--- a/src/directory_listing.rs
+++ b/src/directory_listing.rs
@@ -131,6 +131,7 @@ struct FileEntry {
    name_encoded: String,
    modified: Option<DateTime<Local>>,
    filesize: u64,
    is_dir: bool,
    uri: Option<String>,
}

@@ -286,11 +287,14 @@ async fn read_dir_entries(
                None
            }
        };
        let is_dir = meta.is_dir();

        file_entries.push(FileEntry {
            name,
            name_encoded,
            modified,
            filesize,
            is_dir,
            uri,
        });
    }
@@ -364,8 +368,7 @@ fn json_auto_index(entries: &mut [FileEntry], order_code: u8) -> Result<String> 
    for entry in entries {
        let file_size = &entry.filesize;
        let file_name = &entry.name;
        let is_empty = *file_size == 0_u64;
        let file_type = if is_empty { "directory" } else { "file" };
        let file_type = if entry.is_dir { "directory" } else { "file" };
        let file_modified = &entry.modified;

        json.push('{');
@@ -380,7 +383,7 @@ fn json_auto_index(entries: &mut [FileEntry], order_code: u8) -> Result<String> 
        });
        json.push_str(format!("\"mtime\":\"{file_modified_str}\"").as_str());

        if !is_empty {
        if !entry.is_dir {
            json.push_str(format!(",\"size\":{file_size}").as_str());
        }
        json.push_str("},");