Pleroma.Object/1: take %Object{} as argument instead
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Mon, 28 Dec 2020 09:33:28 +0000 (10:33 +0100)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Mon, 28 Dec 2020 10:05:24 +0000 (11:05 +0100)
lib/pleroma/activity/ir/topics.ex
lib/pleroma/object.ex
lib/pleroma/web/activity_pub/mrf/simple_policy.ex
lib/pleroma/web/activity_pub/transmogrifier.ex
lib/pleroma/web/feed/feed_view.ex
lib/pleroma/web/mastodon_api/views/status_view.ex
lib/pleroma/web/templates/feed/feed/_activity.atom.eex
lib/pleroma/web/templates/feed/feed/_activity.rss.eex
lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex

index 2cdecf1e4c67e667be717d0e5d28cae6ad810efa..b7553c72857a70549ee61e910ddd4d1d33b3cea4 100644 (file)
@@ -48,18 +48,12 @@ defmodule Pleroma.Activity.Ir.Topics do
     tags
   end
 
-  defp hashtags_to_topics(%{data: %{"hashtags" => tags}}) do
-    Enum.map(tags, fn tag -> "hashtag:" <> tag end)
-  end
-
-  defp hashtags_to_topics(%{data: %{"tag" => tags}}) do
-    tags
-    |> Enum.filter(&is_bitstring(&1))
+  defp hashtags_to_topics(object) do
+    object
+    |> Object.hashtags()
     |> Enum.map(fn tag -> "hashtag:" <> tag end)
   end
 
-  defp hashtags_to_topics(_), do: []
-
   defp remote_topics(%{local: true}), do: []
 
   defp remote_topics(%{actor: actor}) when is_binary(actor),
index 00d561d1b9cd75a3497e0644afea58c65bfe0b0b..9cbc1c6a66673e425e56854c4f32f8499babded2 100644 (file)
@@ -345,7 +345,7 @@ defmodule Pleroma.Object do
   def self_replies(object, opts \\ []),
     do: replies(object, Keyword.put(opts, :self_only, true))
 
-  def hashtags(%{"hashtags" => hashtags}), do: hashtags || []
-  def hashtags(%{"tag" => tags}), do: Enum.filter(tags, &is_bitstring(&1))
+  def hashtags(%Object{data: %{"hashtags" => hashtags}}), do: hashtags || []
+  def hashtags(%Object{data: %{"tag" => tags}}), do: Enum.filter(tags, &is_bitstring(&1))
   def hashtags(_), do: []
 end
index 8e0514dc830c20b8840ee7bdb7ccd84858b9977a..94933ce99f6bb982f96ab7c988f7c6a5c0ef33d6 100644 (file)
@@ -77,7 +77,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
       if MRF.subdomain_match?(media_nsfw, actor_host) do
         child_object =
           child_object
-          |> Map.put("hashtags", Object.hashtags(child_object) ++ ["nsfw"])
+          |> Map.put("hashtags", Object.hashtags(%Object{data: child_object}) ++ ["nsfw"])
           |> Map.put("sensitive", true)
 
         Map.put(object, "object", child_object)
index 36ef6a454e54a0cc8ca38c0844532f3a68836a43..109f03641815c301bb2a32c5532aac27d5b26d06 100644 (file)
@@ -864,7 +864,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
 
   def add_hashtags(object) do
     hashtags =
-      object
+      %Object{data: object}
       |> Object.hashtags()
       |> Enum.map(fn tag ->
         %{
index 30e0a2a55b69228b470ed0a35a8111ff80c6149e..1155c6a398e6db0ce183a7dcf07ee95588cf48db 100644 (file)
@@ -32,6 +32,7 @@ defmodule Pleroma.Web.Feed.FeedView do
 
     %{
       activity: activity,
+      object: object,
       data: Map.get(object, :data),
       actor: actor
     }
index b39f05d13c736b94bf2860191d75222cd9e2c622..3ba453d1fe05ecffce614300b565228b4ded1c3e 100644 (file)
@@ -347,7 +347,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       media_attachments: attachments,
       poll: render(PollView, "show.json", object: object, for: opts[:for]),
       mentions: mentions,
-      tags: build_tags(Object.hashtags(object.data)),
+      tags: build_tags(Object.hashtags(object)),
       application: %{
         name: "Web",
         website: nil
index cb18abb5db9958658ec1d8f7e232480545a72ee9..4a1a3e9938d0359883953ec6481f8b8db8d05efe 100644 (file)
@@ -22,7 +22,7 @@
     <link type="text/html" href='<%= @data["external_url"] %>' rel="alternate"/>
   <% end %>
 
-  <%= for hashtag <- Object.hashtags(@data) do %>
+  <%= for hashtag <- Object.hashtags(@object) do %>
     <category term="<%= hashtag %>"></category>
   <% end %>
 
index 6ef24d0ef595dee79dce09b18616a7bf1fbdde78..9ebaa3300d78f74357144db83f909d5f4ec673f4 100644 (file)
@@ -21,7 +21,7 @@
     <link><%= @data["external_url"] %></link>
   <% end %>
 
-  <%= for hashtag <- Object.hashtags(@data) do %>
+  <%= for hashtag <- Object.hashtags(@object) do %>
     <category term="<%= hashtag %>"></category>
   <% end %>
 
index 098e2820558515bdd6248260bb8a10db517f8ea0..8d78520cf56b52d1f653cee6dddd2e4ae8e7da9f 100644 (file)
@@ -41,7 +41,7 @@
       <% end %>
     <% end %>
 
-    <%= for hashtag <- Object.hashtags(@data) do %>
+    <%= for hashtag <- Object.hashtags(@object) do %>
       <category term="<%= hashtag %>"></category>
     <% end %>