forked from AkkomaGang/akkoma
Friendship ended with Postgresql now Cachex is my best friend
This commit is contained in:
parent
535fddd286
commit
c119ea3a57
2 changed files with 9 additions and 8 deletions
|
@ -73,10 +73,10 @@ def delete(%Object{data: %{"id" => id}} = object) do
|
|||
{:ok, object}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def get_cached_scrubbed_html(content, scrubbers, object) do
|
||||
key = "#{generate_scrubber_signature(scrubbers)}|#{object.id}"
|
||||
Cachex.fetch!(:scrubber_cache, key, fn(_key) -> ensure_scrubbed_html(content, scrubbers) end )
|
||||
Cachex.fetch!(:scrubber_cache, key, fn _key -> ensure_scrubbed_html(content, scrubbers) end)
|
||||
end
|
||||
|
||||
def get_cached_stripped_html(content, object) do
|
||||
|
@ -87,22 +87,24 @@ def ensure_scrubbed_html(
|
|||
content,
|
||||
scrubbers
|
||||
) do
|
||||
{:commit, HTML.filter_tags(content, scrubbers)}
|
||||
{:commit, HTML.filter_tags(content, scrubbers)}
|
||||
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 ->
|
||||
# If a scrubber does not have a version(e.g HtmlSanitizeEx.Scrubber) it is assumed it is always 0)
|
||||
version = if Kernel.function_exported?(scrubber, :version, 0) do
|
||||
# If a scrubber does not have a version(e.g HtmlSanitizeEx.Scrubber) it is assumed it is always 0)
|
||||
version =
|
||||
if Kernel.function_exported?(scrubber, :version, 0) do
|
||||
scrubber.version
|
||||
else
|
||||
0
|
||||
end
|
||||
"#{signature}#{to_string(scrubber)}#{version}"
|
||||
|
||||
"#{signature}#{to_string(scrubber)}#{version}"
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -261,5 +261,4 @@ def emoji_from_profile(%{info: _info} = user) do
|
|||
}
|
||||
end)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue