Better plaintext detection
This commit is contained in:
parent
247a5ad6f6
commit
2b6fc073fb
2 changed files with 10 additions and 6 deletions
3
test/text.pgp
Normal file
3
test/text.pgp
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
|
|
@ -141,17 +141,17 @@ impl<T: AsRef<[u8]>> ContentTypeExt for T {
|
||||||
|
|
||||||
fn content_type(&self) -> ContentType {
|
fn content_type(&self) -> ContentType {
|
||||||
let mime_type = self.mime_type();
|
let mime_type = self.mime_type();
|
||||||
if mime_type.starts_with("text/") || mime_type == "application/mbox" {
|
if mime_type.starts_with("image/") // check image first because svg is image
|
||||||
|
// application/x-riff is WebP
|
||||||
|
|| mime_type == "application/x-riff"
|
||||||
|
{
|
||||||
|
ContentType::Image
|
||||||
|
} else if tree_magic_mini::match_u8("text/plain", self.as_ref()) {
|
||||||
if std::str::from_utf8(self.as_ref()).is_ok() {
|
if std::str::from_utf8(self.as_ref()).is_ok() {
|
||||||
ContentType::Text
|
ContentType::Text
|
||||||
} else {
|
} else {
|
||||||
ContentType::Unknown
|
ContentType::Unknown
|
||||||
}
|
}
|
||||||
} else if mime_type.starts_with("image/")
|
|
||||||
// application/x-riff is WebP
|
|
||||||
|| mime_type == "application/x-riff"
|
|
||||||
{
|
|
||||||
ContentType::Image
|
|
||||||
} else if mime_type.starts_with("audio/") {
|
} else if mime_type.starts_with("audio/") {
|
||||||
ContentType::Audio
|
ContentType::Audio
|
||||||
} else if mime_type.starts_with("video/")
|
} else if mime_type.starts_with("video/")
|
||||||
|
@ -197,4 +197,5 @@ mod content_type {
|
||||||
test_content_type!(zip_is_zip, "archive.zip", ContentType::ZipArchive);
|
test_content_type!(zip_is_zip, "archive.zip", ContentType::ZipArchive);
|
||||||
test_content_type!(gzip_is_gzip, "image.png.gz", ContentType::GzipArchive);
|
test_content_type!(gzip_is_gzip, "image.png.gz", ContentType::GzipArchive);
|
||||||
test_content_type!(binary_is_unknown, "omegaupload", ContentType::Unknown);
|
test_content_type!(binary_is_unknown, "omegaupload", ContentType::Unknown);
|
||||||
|
test_content_type!(pgp_is_text, "text.pgp", ContentType::Text);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue