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 'pleroma/develop' into fix-object-deletion-timeout
[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..7a603a61524a46deb07ebb8f4b6a48036bc6eddc 100644
(file)
--- a/
lib/pleroma/activity/ir/topics.ex
+++ b/
lib/pleroma/activity/ir/topics.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Activity.Ir.Topics do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Activity.Ir.Topics do
@@
-8,7
+8,7
@@
defmodule Pleroma.Activity.Ir.Topics do
def get_activity_topics(activity) do
activity
def get_activity_topics(activity) do
activity
- |> Object.normalize()
+ |> Object.normalize(
fetch: false
)
|> generate_topics(activity)
|> List.flatten()
end
|> generate_topics(activity)
|> List.flatten()
end
@@
-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)
)
- |> 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