1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Web.Metadata do
8 def build_tags(params) do
10 Pleroma.Web.Metadata.Providers.Feed,
11 Pleroma.Web.Metadata.Providers.RelMe,
12 Pleroma.Web.Metadata.Providers.RestrictIndexing
13 | activated_providers()
16 Enum.reduce(providers, "", fn parser, acc ->
19 |> parser.build_tags()
20 |> Enum.map(&to_tag/1)
21 |> Enum.map(&HTML.safe_to_string/1)
29 with {name, attrs, _content = []} <- data do
30 HTML.Tag.tag(name, attrs)
32 {name, attrs, content} ->
33 HTML.Tag.content_tag(name, content, attrs)
36 raise ArgumentError, message: "make_tag invalid args"
40 def activity_nsfw?(%{data: %{"sensitive" => sensitive}}) do
41 Pleroma.Config.get([__MODULE__, :unfurl_nsfw], false) == false and sensitive
44 def activity_nsfw?(_) do
48 defp activated_providers do
49 if Pleroma.Config.get!([:instance, :public]) do
50 Pleroma.Config.get([__MODULE__, :providers], [])