summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex')
-rw-r--r--lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex46
1 files changed, 0 insertions, 46 deletions
diff --git a/lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex b/lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex
deleted file mode 100644
index c5aaea2d4..000000000
--- a/lib/pleroma/web/rich_media/parsers/ttl/aws_signed_url.ex
+++ /dev/null
@@ -1,46 +0,0 @@
-defmodule Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl do
- @behaviour Pleroma.Web.RichMedia.Parser.TTL
-
- @impl Pleroma.Web.RichMedia.Parser.TTL
- def ttl(data, _url) do
- image = Map.get(data, :image)
-
- if is_aws_signed_url(image) do
- image
- |> parse_query_params()
- |> format_query_params()
- |> get_expiration_timestamp()
- else
- {:error, "Not aws signed url #{inspect(image)}"}
- end
- end
-
- defp is_aws_signed_url(image) when is_binary(image) and image != "" do
- %URI{host: host, query: query} = URI.parse(image)
-
- String.contains?(host, "amazonaws.com") and String.contains?(query, "X-Amz-Expires")
- end
-
- defp is_aws_signed_url(_), do: nil
-
- defp parse_query_params(image) do
- %URI{query: query} = URI.parse(image)
- query
- end
-
- defp format_query_params(query) do
- query
- |> String.split(~r/&|=/)
- |> Enum.chunk_every(2)
- |> Map.new(fn [k, v] -> {k, v} end)
- end
-
- defp get_expiration_timestamp(params) when is_map(params) do
- {:ok, date} =
- params
- |> Map.get("X-Amz-Date")
- |> Timex.parse("{ISO:Basic:Z}")
-
- {:ok, Timex.to_unix(date) + String.to_integer(Map.get(params, "X-Amz-Expires"))}
- end
-end