Merge pull request 'metrics' (#375) from stats into develop
[akkoma] / lib / pleroma / web / metadata.ex
index 0f0b56321dfbac5c37ef787a2f81c712b0170f34..48801b5884da2761885e996221589bec7cfe5b3d 100644 (file)
@@ -1,14 +1,32 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Metadata do
   alias Phoenix.HTML
 
+  def build_static_tags(params) do
+    providers = [
+      Pleroma.Web.Metadata.Providers.Theme
+    ]
+
+    Enum.reduce(providers, "", fn parser, acc ->
+      rendered_html =
+        params
+        |> parser.build_tags()
+        |> Enum.map(&to_tag/1)
+        |> Enum.map(&HTML.safe_to_string/1)
+        |> Enum.join()
+
+      acc <> rendered_html
+    end)
+  end
+
   def build_tags(params) do
     providers = [
+      Pleroma.Web.Metadata.Providers.RelMe,
       Pleroma.Web.Metadata.Providers.RestrictIndexing,
-      Pleroma.Web.Metadata.Providers.RelMe
+      Pleroma.Web.Metadata.Providers.Theme
       | activated_providers()
     ]
 
@@ -45,8 +63,8 @@ defmodule Pleroma.Web.Metadata do
   end
 
   defp activated_providers do
-    if Pleroma.Config.get!([:instance, :public]) do
-      Pleroma.Config.get([__MODULE__, :providers], [])
+    unless Pleroma.Config.restrict_unauthenticated_access?(:activities, :local) do
+      [Pleroma.Web.Metadata.Providers.Feed | Pleroma.Config.get([__MODULE__, :providers], [])]
     else
       []
     end