From 565caff3f4f8b21b4bae9fb20732688389b4d829 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 16 Jan 2019 00:07:28 +0300 Subject: [PATCH] cache HTML in OGP --- lib/pleroma/web/metadata/opengraph.ex | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/metadata/opengraph.ex b/lib/pleroma/web/metadata/opengraph.ex index 1e3af947d..33ff075c6 100644 --- a/lib/pleroma/web/metadata/opengraph.ex +++ b/lib/pleroma/web/metadata/opengraph.ex @@ -7,7 +7,7 @@ defmodule Pleroma.Web.Metadata.Providers.OpenGraph do @impl Provider def build_tags(%{activity: activity, user: user}) do - with truncated_content = scrub_html_and_truncate(activity.data["object"]["content"]) do + with truncated_content = scrub_html_and_truncate(activity) do attachments = build_attachments(activity) [ @@ -71,6 +71,15 @@ defp build_attachments(activity) do end) end + defp scrub_html_and_truncate(%{data: %{ "object" => %{ "content" => content}}} = activity) do + content + # html content comes from DB already encoded, decode first and scrub after + |> HtmlEntities.decode() + |> String.replace(~r//, " ") + |> HTML.get_cached_stripped_html_for_object(activity, __MODULE__) + |> Formatter.truncate() + end + defp scrub_html_and_truncate(content) do content # html content comes from DB already encoded, decode first and scrub after @@ -79,7 +88,6 @@ defp scrub_html_and_truncate(content) do |> HTML.strip_tags() |> Formatter.truncate() end - defp attachment_url(url) do MediaProxy.url(url) end