diff options
author | William Pitcock <nenolod@dereferenced.org> | 2019-01-26 16:26:11 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2019-01-26 16:36:17 +0000 |
commit | 8f2f471e948160f96549ca9744cca56f940a8658 (patch) | |
tree | b2e08ee2c34b8865d95503c6b99963b3545c2776 /lib | |
parent | 155a88430027045fd9de79d7000bb083869f167f (diff) | |
download | pleroma-8f2f471e948160f96549ca9744cca56f940a8658.tar.gz |
rich media: gracefully handle fetching nil URIs
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/rich_media/parser.ex | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex index 6da83c6e4..947dc0c3c 100644 --- a/lib/pleroma/web/rich_media/parser.ex +++ b/lib/pleroma/web/rich_media/parser.ex @@ -5,11 +5,19 @@ defmodule Pleroma.Web.RichMedia.Parser do Pleroma.Web.RichMedia.Parsers.OEmbed ] + def parse(nil), do: {:error, "No URL provided"} + if Mix.env() == :test do def parse(url), do: parse_url(url) else - def parse(url), - do: Cachex.fetch!(:rich_media_cache, url, fn _ -> parse_url(url) end) + def parse(url) do + with {:ok, data} <- Cachex.fetch(:rich_media_cache, url, fn _ -> parse_url(url) end) do + data + else + _e -> + {:error, "Parsing error"} + end + end end defp parse_url(url) do |