X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Factivity.ex;h=07982331257d5c27ae22b324a6af9d9b07342812;hb=e369b1306b2f8b9732c21333b9957f7e4e408f90;hp=648cfb623a0291a092d813ddc20fb60b17d5c49f;hpb=c7bcbfbc1d5d34463634e44979a77a2c47e35dbc;p=akkoma diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 648cfb623..079823312 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -19,8 +19,6 @@ defmodule Pleroma.Activity do import Ecto.Changeset import Ecto.Query - require Pleroma.Constants - @type t :: %__MODULE__{} @type actor :: String.t() @@ -196,6 +194,19 @@ defmodule Pleroma.Activity do end end + def get_by_id_with_user_actor(id) do + case FlakeId.flake_id?(id) do + true -> + Activity + |> where([a], a.id == ^id) + |> with_preloaded_user_actor() + |> Repo.one() + + _ -> + nil + end + end + def get_by_id_with_object(id) do Activity |> where(id: ^id) @@ -359,11 +370,14 @@ defmodule Pleroma.Activity do 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) + @spec get_by_object_ap_id_with_object(String.t()) :: t() | nil + def get_by_object_ap_id_with_object(ap_id) when is_binary(ap_id) do + ap_id + |> Queries.by_object_id() + |> with_preloaded_object() + |> first() + |> Repo.one() end + + def get_by_object_ap_id_with_object(_), do: nil end