summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkPherox <admin@mail.kr-kp.com>2023-02-01 20:24:58 +0000
committerkPherox <admin@mail.kr-kp.com>2023-02-18 17:57:41 +0900
commitd5d7648789847b943caf339732aeeed11cd2728d (patch)
tree24a5268e86981d095bc7fd5465a4e881cae89296 /lib
parent19933a06bf9759bd3ec3cbe63f064039a659c656 (diff)
downloadpleroma-d5d7648789847b943caf339732aeeed11cd2728d.tar.gz
pleroma-d5d7648789847b943caf339732aeeed11cd2728d.zip
feat: build rel me tags with profile fields
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/metadata/providers/rel_me.ex18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/pleroma/web/metadata/providers/rel_me.ex b/lib/pleroma/web/metadata/providers/rel_me.ex
index f0bee85c8..e1890a050 100644
--- a/lib/pleroma/web/metadata/providers/rel_me.ex
+++ b/lib/pleroma/web/metadata/providers/rel_me.ex
@@ -8,12 +8,24 @@ defmodule Pleroma.Web.Metadata.Providers.RelMe do
@impl Provider
def build_tags(%{user: user}) do
- bio_tree = Floki.parse_fragment!(user.bio)
+ profile_tree =
+ Floki.parse_fragment!(user.bio)
+ |> prepend_fields_tag(user.fields)
- (Floki.attribute(bio_tree, "link[rel~=me]", "href") ++
- Floki.attribute(bio_tree, "a[rel~=me]", "href"))
+ (Floki.attribute(profile_tree, "link[rel~=me]", "href") ++
+ Floki.attribute(profile_tree, "a[rel~=me]", "href"))
|> Enum.map(fn link ->
{:link, [rel: "me", href: link], []}
end)
end
+
+ defp prepend_fields_tag(bio_tree, fields) do
+ fields
+ |> Enum.reduce(bio_tree, fn %{"value" => v}, tree ->
+ case Floki.parse_fragment(v) do
+ {:ok, [a | _]} -> [a | tree]
+ _ -> tree
+ end
+ end)
+ end
end