summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2020-09-12 10:33:42 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2020-09-12 10:33:42 +0300
commit32831f371ff426ac0c6f5d6c1381313f5f92af42 (patch)
tree099916eebeb9b0cf38b00ae9bb5991ddd65d4798
parent0bda85857e8f320ee7b91d8203fd621e1e2d5180 (diff)
[#2497] Media preview proxy: redirecting to media proxy url in case of preview error or unsupported content type.
-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"]