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() != []
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)
|> 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
require Pleroma.Constants
+ import Mock
+
describe "poll answer" do
test "produce no topics" do
activity = %Activity{object: %Object{data: %{"type" => "Answer"}}}
refute Enum.member?(topics, "public:local:media")
end
- test "converts tags to hash tags", %{activity: %{object: %{data: data} = object} = activity} do
- tagged_data = Map.put(data, "tag", ["foo", "bar"])
- activity = %{activity | object: %{object | data: tagged_data}}
-
- topics = Topics.get_activity_topics(activity)
+ test "converts tags to hash tags", %{activity: activity} do
+ with_mock(Object, [:passthrough], hashtags: fn _ -> ["foo", "bar"] end) do
+ topics = Topics.get_activity_topics(activity)
- assert Enum.member?(topics, "hashtag:foo")
- assert Enum.member?(topics, "hashtag:bar")
+ assert Enum.member?(topics, "hashtag:foo")
+ assert Enum.member?(topics, "hashtag:bar")
+ end
end
test "only converts strings to hash tags", %{