projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pleroma.Object/1: take %Object{} as argument instead
[akkoma]
/
lib
/
pleroma
/
activity
/
ir
/
topics.ex
diff --git
a/lib/pleroma/activity/ir/topics.ex
b/lib/pleroma/activity/ir/topics.ex
index 9e65bedade120e9daecc35fa4bfc132fdabc2fbb..b7553c72857a70549ee61e910ddd4d1d33b3cea4 100644
(file)
--- a/
lib/pleroma/activity/ir/topics.ex
+++ b/
lib/pleroma/activity/ir/topics.ex
@@
-40,24
+40,33
@@
defmodule Pleroma.Activity.Ir.Topics do
end
defp item_creation_tags(tags, object, %{data: %{"type" => "Create"}} = activity) do
end
defp item_creation_tags(tags, object, %{data: %{"type" => "Create"}} = activity) do
- tags ++ hashtags_to_topics(object) ++ attachment_topics(object, activity)
+ tags ++
+ remote_topics(activity) ++ hashtags_to_topics(object) ++ attachment_topics(object, activity)
end
defp item_creation_tags(tags, _, _) do
tags
end
end
defp item_creation_tags(tags, _, _) do
tags
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
|> 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),
+ do: ["public:remote:" <> URI.parse(actor).host]
+
+ defp remote_topics(_), do: []
defp attachment_topics(%{data: %{"attachment" => []}}, _act), do: []
defp attachment_topics(_object, %{local: true}), do: ["public:media", "public:local:media"]
defp attachment_topics(%{data: %{"attachment" => []}}, _act), do: []
defp attachment_topics(_object, %{local: true}), do: ["public:media", "public:local:media"]
+ defp attachment_topics(_object, %{actor: actor}) when is_binary(actor),
+ do: ["public:media", "public:remote:media:" <> URI.parse(actor).host]
+
defp attachment_topics(_object, _act), do: ["public:media"]
end
defp attachment_topics(_object, _act), do: ["public:media"]
end