|
|
|
@ -791,14 +791,20 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
|
|
|
|
|
defp restrict_muted(query, %{"with_muted" => val}) when val in [true, "true", "1"], do: query
|
|
|
|
|
|
|
|
|
|
defp restrict_muted(query, %{"muting_user" => %User{info: info}}) do
|
|
|
|
|
defp restrict_muted(query, %{"muting_user" => %User{info: info}} = opts) do
|
|
|
|
|
mutes = info.mutes
|
|
|
|
|
|
|
|
|
|
from(
|
|
|
|
|
activity in query,
|
|
|
|
|
where: fragment("not (? = ANY(?))", activity.actor, ^mutes),
|
|
|
|
|
where: fragment("not (?->'to' \\?| ?)", activity.data, ^mutes)
|
|
|
|
|
)
|
|
|
|
|
query =
|
|
|
|
|
from([activity] in query,
|
|
|
|
|
where: fragment("not (? = ANY(?))", activity.actor, ^mutes),
|
|
|
|
|
where: fragment("not (?->'to' \\?| ?)", activity.data, ^mutes)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
unless opts["skip_preload"] do
|
|
|
|
|
from([thread_mute: tm] in query, where: is_nil(tm))
|
|
|
|
|
else
|
|
|
|
|
query
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
defp restrict_muted(query, _), do: query
|
|
|
|
@ -899,7 +905,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
|
|
|
|
|
defp maybe_set_thread_muted_field(query, opts) do
|
|
|
|
|
query
|
|
|
|
|
|> Activity.with_set_thread_muted_field(opts["user"])
|
|
|
|
|
|> Activity.with_set_thread_muted_field(opts["muting_user"] || opts["user"])
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
defp maybe_order(query, %{order: :desc}) do
|
|
|
|
|