aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/media_proxy/media_proxy_controller.ex14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/pleroma/web/media_proxy/media_proxy_controller.ex b/lib/pleroma/web/media_proxy/media_proxy_controller.ex
index ff7fd2409..08d62a51a 100644
--- a/lib/pleroma/web/media_proxy/media_proxy_controller.ex
+++ b/lib/pleroma/web/media_proxy/media_proxy_controller.ex
@@ -91,8 +91,8 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
handle_video_preview(conn, media_proxy_url)
end
- defp handle_preview(content_type, conn, _media_proxy_url) do
- send_resp(conn, :unprocessable_entity, "Unsupported content type: #{content_type}.")
+ defp handle_preview(_unsupported_content_type, conn, media_proxy_url) do
+ fallback_on_preview_error(conn, media_proxy_url)
end
defp handle_png_preview(conn, media_proxy_url) do
@@ -114,7 +114,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
|> send_resp(200, thumbnail_binary)
else
_ ->
- send_resp(conn, :failed_dependency, "Can't handle preview.")
+ fallback_on_preview_error(conn, media_proxy_url)
end
end
@@ -132,7 +132,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
|> send_resp(200, thumbnail_binary)
else
_ ->
- send_resp(conn, :failed_dependency, "Can't handle preview.")
+ fallback_on_preview_error(conn, media_proxy_url)
end
end
@@ -144,10 +144,14 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
|> send_resp(200, thumbnail_binary)
else
_ ->
- send_resp(conn, :failed_dependency, "Can't handle preview.")
+ fallback_on_preview_error(conn, media_proxy_url)
end
end
+ defp fallback_on_preview_error(conn, media_proxy_url) do
+ redirect(conn, external: media_proxy_url)
+ end
+
defp put_preview_response_headers(
conn,
[content_type, filename] = _content_info \\ ["image/jpeg", "preview.jpg"]