alias Pleroma.Activity
alias Pleroma.Activity.Queries
- alias Pleroma.ActivityExpiration
alias Pleroma.Bookmark
alias Pleroma.Notification
alias Pleroma.Object
import Ecto.Changeset
import Ecto.Query
+ require Pleroma.Constants
+
@type t :: %__MODULE__{}
@type actor :: String.t()
# typical case.
has_one(:object, Object, on_delete: :nothing, foreign_key: :id)
- has_one(:expiration, ActivityExpiration, on_delete: :delete_all)
-
timestamps()
end
|> Repo.all()
end
- def follow_requests_for_actor(%Pleroma.User{ap_id: ap_id}) do
+ def follow_requests_for_actor(%User{ap_id: ap_id}) do
ap_id
|> Queries.by_object_id()
|> Queries.by_type("Follow")
|> where([a], fragment("? ->> 'state' = 'pending'", a.data))
end
- def following_requests_for_actor(%Pleroma.User{ap_id: ap_id}) do
+ def following_requests_for_actor(%User{ap_id: ap_id}) do
Queries.by_type("Follow")
|> where([a], fragment("?->>'state' = 'pending'", a.data))
|> where([a], a.actor == ^ap_id)
actor = user_actor(activity)
activity.id in actor.pinned_activities
end
+
+ def local_only?(activity) do
+ recipients = Enum.concat(activity.data["to"], Map.get(activity.data, "cc", []))
+ public = Pleroma.Constants.as_public()
+ local = Pleroma.Constants.as_local_public()
+
+ Enum.member?(recipients, local) and not Enum.member?(recipients, public)
+ end
end