aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/config.ex2
-rw-r--r--lib/pleroma/object.ex14
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex12
3 files changed, 21 insertions, 7 deletions
diff --git a/lib/pleroma/config.ex b/lib/pleroma/config.ex
index 86d4f6b72..ee0167f4e 100644
--- a/lib/pleroma/config.ex
+++ b/lib/pleroma/config.ex
@@ -96,6 +96,8 @@ defmodule Pleroma.Config do
end
end
+ def object_embedded_hashtags?, do: !get([:instance, :improved_hashtag_timeline])
+
def oauth_consumer_strategies, do: get([:auth, :oauth_consumer_strategies], [])
def oauth_consumer_enabled?, do: oauth_consumer_strategies() != []
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex
index 1d756bcd1..08114d4f2 100644
--- a/lib/pleroma/object.ex
+++ b/lib/pleroma/object.ex
@@ -384,7 +384,19 @@ defmodule Pleroma.Object do
def tags(_), do: []
- def hashtags(object), do: embedded_hashtags(object)
+ def hashtags(%Object{} = object) do
+ cond do
+ Config.object_embedded_hashtags?() ->
+ embedded_hashtags(object)
+
+ object.id == "pleroma:fake_object_id" ->
+ []
+
+ true ->
+ hashtag_records = Repo.preload(object, :hashtags).hashtags
+ Enum.map(hashtag_records, & &1.name)
+ end
+ end
defp embedded_hashtags(%Object{data: data}) do
object_data_hashtags(data)
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 54d1a2350..626cad336 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -1199,16 +1199,16 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> exclude_invisible_actors(opts)
|> exclude_visibility(opts)
- if Config.get([:instance, :improved_hashtag_timeline]) do
- query
- |> restrict_hashtag_any(opts)
- |> restrict_hashtag_all(opts)
- |> restrict_hashtag_reject_any(opts)
- else
+ if Config.object_embedded_hashtags?() do
query
|> restrict_tag(opts)
|> restrict_tag_reject(opts)
|> restrict_tag_all(opts)
+ else
+ query
+ |> restrict_hashtag_any(opts)
+ |> restrict_hashtag_all(opts)
+ |> restrict_hashtag_reject_any(opts)
end
end