projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags...
[akkoma]
/
lib
/
pleroma
/
activity
/
ir
/
topics.ex
diff --git
a/lib/pleroma/activity/ir/topics.ex
b/lib/pleroma/activity/ir/topics.ex
index 4acc1a3e004eb744b59e73e7cc6c642d6d51e401..2c74ac2bf9459912dd660b9a6531db66aa69e5d7 100644
(file)
--- a/
lib/pleroma/activity/ir/topics.ex
+++ b/
lib/pleroma/activity/ir/topics.ex
@@
-39,25
+39,34
@@
defmodule Pleroma.Activity.Ir.Topics do
end
end
end
end
- defp item_creation_tags(tags, %{data: %{"type" => "Create"}} = object, activity) do
- tags ++ hashtags_to_topics(object) ++ attachment_topics(object, activity)
+ defp item_creation_tags(tags, object, %{data: %{"type" => "Create"}} = activity) do
+ 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)
)
- |> Enum.map(fn
tag -> "hashtag:" <>
tag end)
+ defp hashtags_to_topics(
object
) do
+ object
+ |>
Object.hashtags(
)
+ |> Enum.map(fn
hashtag -> "hashtag:" <> hash
tag end)
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