From f3ee4444a3a1c8212234c061e794e6465344ebac Mon Sep 17 00:00:00 2001 From: boasting-squirrel Date: Sat, 2 Feb 2019 12:41:09 +0100 Subject: Fancy HTML listing --- src/main.rs | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 79 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index d20e5c9..b392856 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ use actix_web::http::header; use actix_web::middleware::{Middleware, Response}; use actix_web::{fs, middleware, server, App, HttpMessage, HttpRequest, HttpResponse, Result}; +use bytesize::ByteSize; use clap::{crate_authors, crate_description, crate_name, crate_version}; use htmlescape::encode_minimal as escape_html_entity; use percent_encoding::{utf8_percent_encode, DEFAULT_ENCODE_SET}; @@ -387,10 +388,22 @@ fn directory_listing( if skip_symlinks && metadata.file_type().is_symlink() { continue; } + if metadata.is_dir() { - let _ = write!(body, "
  • {}/
  • ", file_url, file_name); + let _ = write!( + body, + "{}/", + "directory", file_url, file_name + ); } else { - let _ = write!(body, "
  • {}
  • ", file_url, file_name); + let _ = write!( + body, + "{}{}", + "file", + file_url, + file_name, + ByteSize::b(metadata.len()) + ); } } else { continue; @@ -400,11 +413,72 @@ fn directory_listing( let html = format!( "\ - {}\ + \ + {}\ + \ + \

    {}

    \ -
      \ + \ + \ + \ {}\ - \n", +
      NameSize
      \n", index_of, index_of, body ); Ok(HttpResponse::Ok() -- cgit v1.2.3