alias Phoenix.HTML
@providers Pleroma.Config.get([__MODULE__, :providers], [])
- def get_cached_tags(%{activity: activity, user: user} = params) do
- # We don't need to use the both activity and a user since the object can't change it's content
- key = "#{:erlang.term_to_binary(user)}#{activity.data["id"]}"
-
- Cachex.fetch!(:metadata_cache, key, fn _key ->
- {:commit, build_tags(params)}
- end)
- end
-
- def get_cached_tags(%{user: user} = params) do
- # I am unsure how well ETS works with big keys
- key = :erlang.term_to_binary(user)
-
- Cachex.fetch!(:metadata_cache, key, fn _key ->
- {:commit, build_tags(params)}
- end)
- end
-
- def get_cached_tags(params) do
- key = :erlang.term_to_binary(params)
-
- Cachex.fetch!(:metadata_cache, key, fn _key ->
- {:commit, build_tags(params)}
- end)
- end
def build_tags(params) do
Enum.reduce(@providers, "", fn parser, acc ->
def redirector_with_meta(conn, params) do
{:ok, index_content} = File.read(index_file_path())
- tags = Metadata.get_cached_tags(params)
+ tags = Metadata.build_tags(params)
response = String.replace(index_content, "<!--server-generated-meta-->", tags)
conn