summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-09-05 22:00:51 +0300
committerrinpatch <rinpatch@sdf.org>2020-09-05 22:05:35 +0300
commit170599c390e7c82bdff0d4180d04b2f0f3906f35 (patch)
treebd07bcd17e959bb764d4a5af77df1f96b00ad7e8
parent047a60c46e11b68abfe710a895f4a9c134b951e8 (diff)
RichMedia: do not log webpages missing metadata as errors
Also fixes the return value of Parser.parse on errors, previously was just `:ok` due to the logger call in the end
-rw-r--r--lib/pleroma/web/rich_media/parser.ex11
-rw-r--r--test/web/rich_media/parser_test.exs4
2 files changed, 9 insertions, 6 deletions
diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex
index e98c743ca..5727fda18 100644
--- a/lib/pleroma/web/rich_media/parser.ex
+++ b/lib/pleroma/web/rich_media/parser.ex
@@ -21,8 +21,13 @@ defmodule Pleroma.Web.RichMedia.Parser do
{:ok, _} <- set_ttl_based_on_image(data, url) do
{:ok, data}
else
+ {:error, {:invalid_metadata, data}} = e ->
+ Logger.debug(fn -> "Incomplete or invalid metadata for #{url}: #{inspect(data)}" end)
+ e
+
error ->
- Logger.error(fn -> "Rich media error: #{inspect(error)}" end)
+ Logger.error(fn -> "Rich media error for #{url}: #{inspect(error)}" end)
+ error
end
end
@@ -90,7 +95,7 @@ defmodule Pleroma.Web.RichMedia.Parser do
end)
end
- defp parse_url(url) do
+ def parse_url(url) do
with {:ok, %Tesla.Env{body: html}} <- Pleroma.Web.RichMedia.Helpers.rich_media_get(url),
{:ok, html} <- Floki.parse_document(html) do
html
@@ -116,7 +121,7 @@ defmodule Pleroma.Web.RichMedia.Parser do
end
defp check_parsed_data(data) do
- {:error, "Found metadata was invalid or incomplete: #{inspect(data)}"}
+ {:error, {:invalid_metadata, data}}
end
defp clean_parsed_data(data) do
diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs
index 1e09cbf84..21ae35f8b 100644
--- a/test/web/rich_media/parser_test.exs
+++ b/test/web/rich_media/parser_test.exs
@@ -66,9 +66,7 @@ defmodule Pleroma.Web.RichMedia.ParserTest do
end
test "doesn't just add a title" do
- assert Parser.parse("http://example.com/non-ogp") ==
- {:error,
- "Found metadata was invalid or incomplete: %{\"url\" => \"http://example.com/non-ogp\"}"}
+ assert {:error, {:invalid_metadata, _}} = Parser.parse("http://example.com/non-ogp")
end
test "parses ogp" do