Use floki's new APIs for parsing fragments
[akkoma] / lib / pleroma / web / metadata / rel_me.ex
index 03af899c4799a5f6fa1559d02b2f12ad49a2168c..86dcc1a3b6c7c102ed767d543692e7dbc91819da 100644 (file)
@@ -1,11 +1,17 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Web.Metadata.Providers.RelMe do
   alias Pleroma.Web.Metadata.Providers.Provider
   @behaviour Provider
 
   @impl Provider
   def build_tags(%{user: user}) do
-    (Floki.attribute(user.bio, "link[rel~=me]", "href") ++
-       Floki.attribute(user.bio, "a[rel~=me]", "href"))
+    bio_tree = Floki.parse_fragment!(user.bio)
+
+    (Floki.attribute(bio_tree, "link[rel~=me]", "href") ++
+       Floki.attribute(bio_tree, "a[rel~=me]", "href"))
     |> Enum.map(fn link ->
       {:link, [rel: "me", href: link], []}
     end)