|
|
@@ -49,31 +49,6 @@ defmodule Pleroma.HTML do |
|
|
|
def filter_tags(html), do: filter_tags(html, nil) |
|
|
|
def strip_tags(html), do: filter_tags(html, FastSanitize.Sanitizer.StripTags) |
|
|
|
|
|
|
|
def get_cached_scrubbed_html_for_activity( |
|
|
|
content, |
|
|
|
scrubbers, |
|
|
|
activity, |
|
|
|
key \\ "", |
|
|
|
callback \\ fn x -> x end |
|
|
|
) do |
|
|
|
key = "#{key}#{generate_scrubber_signature(scrubbers)}|#{activity.id}" |
|
|
|
|
|
|
|
@cachex.fetch!(:scrubber_cache, key, fn _key -> |
|
|
|
object = Pleroma.Object.normalize(activity, fetch: false) |
|
|
|
ensure_scrubbed_html(content, scrubbers, object.data["fake"] || false, callback) |
|
|
|
end) |
|
|
|
end |
|
|
|
|
|
|
|
def get_cached_stripped_html_for_activity(content, activity, key) do |
|
|
|
get_cached_scrubbed_html_for_activity( |
|
|
|
content, |
|
|
|
FastSanitize.Sanitizer.StripTags, |
|
|
|
activity, |
|
|
|
key, |
|
|
|
&HtmlEntities.decode/1 |
|
|
|
) |
|
|
|
end |
|
|
|
|
|
|
|
def ensure_scrubbed_html( |
|
|
|
content, |
|
|
|
scrubbers, |
|
|
@@ -92,16 +67,6 @@ defmodule Pleroma.HTML do |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
defp generate_scrubber_signature(scrubber) when is_atom(scrubber) do |
|
|
|
generate_scrubber_signature([scrubber]) |
|
|
|
end |
|
|
|
|
|
|
|
defp generate_scrubber_signature(scrubbers) do |
|
|
|
Enum.reduce(scrubbers, "", fn scrubber, signature -> |
|
|
|
"#{signature}#{to_string(scrubber)}" |
|
|
|
end) |
|
|
|
end |
|
|
|
|
|
|
|
def extract_first_external_url_from_object(%{data: %{"content" => content}} = object) |
|
|
|
when is_binary(content) do |
|
|
|
unless object.data["fake"] do |
|
|
|