From 6a41fce339369694fc10786f5c3484688e481c76 Mon Sep 17 00:00:00 2001 From: flamingos-cant Date: Thu, 21 Nov 2024 06:49:08 +0000 Subject: [PATCH] Revert "Guess image mime type from file extension (fixes #5196) (#5212)" This reverts commit 63ea99d38ade254bd428b5d031be0feec123315f. --- Cargo.lock | 19 +------------------ crates/api_common/Cargo.toml | 1 - crates/api_common/src/request.rs | 20 ++++++-------------- 3 files changed, 7 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1b1f3673f..e0c19410cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 4 +version = 3 [[package]] name = "accept-language" @@ -2515,7 +2515,6 @@ dependencies = [ "lemmy_db_views_moderator", "lemmy_utils", "mime", - "mime_guess", "moka", "pretty_assertions", "regex", @@ -3147,16 +3146,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -5310,12 +5299,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "unicase" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" - [[package]] name = "unicode-bidi" version = "0.3.15" diff --git a/crates/api_common/Cargo.toml b/crates/api_common/Cargo.toml index 76f531ddb6..7b987cbb73 100644 --- a/crates/api_common/Cargo.toml +++ b/crates/api_common/Cargo.toml @@ -64,7 +64,6 @@ actix-web = { workspace = true, optional = true } enum-map = { workspace = true } urlencoding = { workspace = true } mime = { version = "0.3.17", optional = true } -mime_guess = "2.0.5" webpage = { version = "2.0", default-features = false, features = [ "serde", ], optional = true } diff --git a/crates/api_common/src/request.rs b/crates/api_common/src/request.rs index cc506b896d..36010f760b 100644 --- a/crates/api_common/src/request.rs +++ b/crates/api_common/src/request.rs @@ -23,6 +23,7 @@ use lemmy_utils::{ REQWEST_TIMEOUT, VERSION, }; +use mime::Mime; use reqwest::{ header::{CONTENT_TYPE, RANGE}, Client, @@ -63,20 +64,11 @@ pub async fn fetch_link_metadata(url: &Url, context: &LemmyContext) -> LemmyResu .await? .error_for_status()?; - // In some cases servers send a wrong mime type for images, which prevents thumbnail - // generation. To avoid this we also try to guess the mime type from file extension. - let content_type = mime_guess::from_path(url.path()) - .first() - // If you can guess that its an image type, then return that first. - .filter(|guess| guess.type_() == mime::IMAGE) - // Otherwise, get the content type from the headers - .or( - response - .headers() - .get(CONTENT_TYPE) - .and_then(|h| h.to_str().ok()) - .and_then(|h| h.parse().ok()), - ); + let content_type: Option = response + .headers() + .get(CONTENT_TYPE) + .and_then(|h| h.to_str().ok()) + .and_then(|h| h.parse().ok()); let opengraph_data = { // if the content type is not text/html, we don't need to parse it