summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2024-11-12 10:49:36 +0000
committerlain <lain@soykaf.club>2024-11-12 10:49:36 +0000
commit4626a9280aec1225e822bb2388903065ccebfd50 (patch)
tree1d83beb760109793a4a16d783c91ea8a58db197b /lib
parent8b31316d2d29e3be96137ebb79bf36a5d993d09b (diff)
parent5b3e4cf49bfc80579c6349dd9f81001142a7d3d0 (diff)
downloadpleroma-4626a9280aec1225e822bb2388903065ccebfd50.tar.gz
pleroma-4626a9280aec1225e822bb2388903065ccebfd50.zip
Merge branch 'activity-pub-metadata' into 'develop'
Add metadata provider for ActivityPub alternate links See merge request pleroma/pleroma!4286
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/metadata.ex1
-rw-r--r--lib/pleroma/web/metadata/providers/activity_pub.ex22
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/pleroma/web/metadata.ex b/lib/pleroma/web/metadata.ex
index 59d018730..4ee7c41ec 100644
--- a/lib/pleroma/web/metadata.ex
+++ b/lib/pleroma/web/metadata.ex
@@ -7,6 +7,7 @@ defmodule Pleroma.Web.Metadata do
def build_tags(params) do
providers = [
+ Pleroma.Web.Metadata.Providers.ActivityPub,
Pleroma.Web.Metadata.Providers.RelMe,
Pleroma.Web.Metadata.Providers.RestrictIndexing
| activated_providers()
diff --git a/lib/pleroma/web/metadata/providers/activity_pub.ex b/lib/pleroma/web/metadata/providers/activity_pub.ex
new file mode 100644
index 000000000..bd9f92332
--- /dev/null
+++ b/lib/pleroma/web/metadata/providers/activity_pub.ex
@@ -0,0 +1,22 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.Metadata.Providers.ActivityPub do
+ alias Pleroma.Web.Metadata.Providers.Provider
+
+ @behaviour Provider
+
+ @impl Provider
+ def build_tags(%{object: %{data: %{"id" => object_id}}}) do
+ [{:link, [rel: "alternate", type: "application/activity+json", href: object_id], []}]
+ end
+
+ @impl Provider
+ def build_tags(%{user: user}) do
+ [{:link, [rel: "alternate", type: "application/activity+json", href: user.ap_id], []}]
+ end
+
+ @impl Provider
+ def build_tags(_), do: []
+end