aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs18
1 files changed, 16 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index e43da1350..37074eddc 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -200,11 +200,25 @@ namespace MediaBrowser.Providers.Manager
// TODO: Isolate this hack into the tvh plugin
if (string.IsNullOrEmpty(contentType))
{
+ // First, check for imagecache special case
if (url.Contains("/imagecache/", StringComparison.OrdinalIgnoreCase))
{
- contentType = MediaTypeNames.Image.Png;
+ contentType = "image/png";
+ return;
}
- else
+
+ // Deduce content type from file extension
+ var fileExtension = Path.GetExtension(url)?.ToLowerInvariant();
+ contentType = fileExtension switch
+ {
+ ".jpg" or ".jpeg" => "image/jpeg",
+ ".png" => "image/png",
+ ".gif" => "image/gif",
+ ".webp" => "image/webp",
+ _ => null
+ };
+
+ if (string.IsNullOrEmpty(contentType))
{
throw new HttpRequestException("Invalid image received: contentType not set.", null, response.StatusCode);
}