diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/healthcheck.ex | 2 | ||||
| -rw-r--r-- | lib/pleroma/notification.ex | 29 | 
2 files changed, 23 insertions, 8 deletions
| diff --git a/lib/pleroma/healthcheck.ex b/lib/pleroma/healthcheck.ex index 8f7f43ec2..92ce83cb7 100644 --- a/lib/pleroma/healthcheck.ex +++ b/lib/pleroma/healthcheck.ex @@ -29,7 +29,7 @@ defmodule Pleroma.Healthcheck do    @spec system_info() :: t()    def system_info do      %Healthcheck{ -      memory_used: Float.round(:erlang.memory(:total) / 1024 / 1024, 2) +      memory_used: Float.round(:recon_alloc.memory(:allocated) / 1024 / 1024, 2)      }      |> assign_db_info()      |> assign_job_queue_stats() diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 5df3927bd..80d3188b0 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -368,13 +368,7 @@ defmodule Pleroma.Notification do    def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only)        when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReact"] do -    potential_receiver_ap_ids = -      [] -      |> Utils.maybe_notify_to_recipients(activity) -      |> Utils.maybe_notify_mentioned_recipients(activity) -      |> Utils.maybe_notify_subscribers(activity) -      |> Utils.maybe_notify_followers(activity) -      |> Enum.uniq() +    potential_receiver_ap_ids = get_potential_receiver_ap_ids(activity)      potential_receivers = User.get_users_from_set(potential_receiver_ap_ids, local_only) @@ -392,6 +386,27 @@ defmodule Pleroma.Notification do    def get_notified_from_activity(_, _local_only), do: {[], []} +  # For some activities, only notify the author of the object +  def get_potential_receiver_ap_ids(%{data: %{"type" => type, "object" => object_id}}) +      when type in ~w{Like Announce EmojiReact} do +    case Object.get_cached_by_ap_id(object_id) do +      %Object{data: %{"actor" => actor}} -> +        [actor] + +      _ -> +        [] +    end +  end + +  def get_potential_receiver_ap_ids(activity) do +    [] +    |> Utils.maybe_notify_to_recipients(activity) +    |> Utils.maybe_notify_mentioned_recipients(activity) +    |> Utils.maybe_notify_subscribers(activity) +    |> Utils.maybe_notify_followers(activity) +    |> Enum.uniq() +  end +    @doc "Filters out AP IDs domain-blocking and not following the activity's actor"    def exclude_domain_blocker_ap_ids(ap_ids, activity, preloaded_users \\ []) | 
