From 3fa3d45dbecafb06fb7eb4f0260f610d4225e0a7 Mon Sep 17 00:00:00 2001
From: Ivan Tashkinov <ivantashkinov@gmail.com>
Date: Wed, 25 Mar 2020 13:05:00 +0300
Subject: [PATCH] [#1364] Minor improvements / comments. Further fixes of
 incorrect usage of "relations" as a short form of "relationships".

---
 lib/pleroma/activity.ex     |  1 +
 lib/pleroma/notification.ex | 12 +++++++-----
 lib/pleroma/thread_mute.ex  |  7 ++++---
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex
index bbaa561a7..5a8329e69 100644
--- a/lib/pleroma/activity.ex
+++ b/lib/pleroma/activity.ex
@@ -95,6 +95,7 @@ defmodule Pleroma.Activity do
     |> preload([activity, object: object], object: object)
   end
 
+  # Note: applies to fake activities (ActivityPub.Utils.get_notified_from_object/1 etc.)
   def user_actor(%Activity{actor: nil}), do: nil
 
   def user_actor(%Activity{} = activity) do
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index 63e3e9be9..04ee510b9 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -322,6 +322,8 @@ defmodule Pleroma.Notification do
   @doc """
   Returns a tuple with 2 elements:
     {enabled notification receivers, currently disabled receivers (blocking / [thread] muting)}
+
+  NOTE: might be called for FAKE Activities, see ActivityPub.Utils.get_notified_from_object/1
   """
   def get_notified_from_activity(activity, local_only \\ true)
 
@@ -338,7 +340,7 @@ defmodule Pleroma.Notification do
     # Since even subscribers and followers can mute / thread-mute, filtering all above AP IDs
     notification_enabled_ap_ids =
       potential_receiver_ap_ids
-      |> exclude_relation_restricting_ap_ids(activity)
+      |> exclude_relationship_restricted_ap_ids(activity)
       |> exclude_thread_muter_ap_ids(activity)
 
     potential_receivers =
@@ -355,10 +357,10 @@ defmodule Pleroma.Notification do
   def get_notified_from_activity(_, _local_only), do: {[], []}
 
   @doc "Filters out AP IDs of users basing on their relationships with activity actor user"
-  def exclude_relation_restricting_ap_ids([], _activity), do: []
+  def exclude_relationship_restricted_ap_ids([], _activity), do: []
 
-  def exclude_relation_restricting_ap_ids(ap_ids, %Activity{} = activity) do
-    relation_restricted_ap_ids =
+  def exclude_relationship_restricted_ap_ids(ap_ids, %Activity{} = activity) do
+    relationship_restricted_ap_ids =
       activity
       |> Activity.user_actor()
       |> User.incoming_relationships_ungrouped_ap_ids([
@@ -366,7 +368,7 @@ defmodule Pleroma.Notification do
         :notification_mute
       ])
 
-    Enum.uniq(ap_ids) -- relation_restricted_ap_ids
+    Enum.uniq(ap_ids) -- relationship_restricted_ap_ids
   end
 
   @doc "Filters out AP IDs of users who mute activity thread"
diff --git a/lib/pleroma/thread_mute.ex b/lib/pleroma/thread_mute.ex
index 2b4cf02cf..a7ea13891 100644
--- a/lib/pleroma/thread_mute.ex
+++ b/lib/pleroma/thread_mute.ex
@@ -41,15 +41,16 @@ defmodule Pleroma.ThreadMute do
 
   def muter_ap_ids(context, ap_ids \\ nil)
 
-  def muter_ap_ids(context, ap_ids) when context not in [nil, ""] do
+  # Note: applies to fake activities (ActivityPub.Utils.get_notified_from_object/1 etc.)
+  def muter_ap_ids(context, _ap_ids) when is_nil(context), do: []
+
+  def muter_ap_ids(context, ap_ids) do
     context
     |> muters_query()
     |> maybe_filter_on_ap_id(ap_ids)
     |> Repo.all()
   end
 
-  def muter_ap_ids(_context, _ap_ids), do: []
-
   defp maybe_filter_on_ap_id(query, ap_ids) when is_list(ap_ids) do
     where(query, [tm, u], u.ap_id in ^ap_ids)
   end
-- 
2.49.0