Add `with_muted` param.
authorlain <lain@soykaf.club>
Wed, 27 Feb 2019 15:37:42 +0000 (16:37 +0100)
committerlain <lain@soykaf.club>
Wed, 27 Feb 2019 15:37:42 +0000 (16:37 +0100)
docs/Differences-in-MastodonAPI-Responses.md
lib/pleroma/web/activity_pub/activity_pub.ex
test/web/activity_pub/activity_pub_test.exs

index f6a5b6461b8d86486508774dfa02c5edd9880872..3026e11738dfb68a9932785f7260c567cc70e3bd 100644 (file)
@@ -9,3 +9,7 @@ Pleroma uses 128-bit ids as opposed to Mastodon's 64 bits. However just like Mas
 ## Attachment cap
 
 Some apps operate under the assumption that no more than 4 attachments can be returned or uploaded. Pleroma however does not enforce any limits on attachment count neither when returning the status object nor when posting.
+
+## Timelines
+
+Adding the parameter `with_muted=true` to the timeline queries will also return activities by muted (not by blocked!) users.
index cc255cc9e1a7257e7ebe6855625f2f9f1549fba2..52404c7e5804eaa30564085a7fc2633f4660bc9e 100644 (file)
@@ -602,6 +602,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
 
   defp restrict_reblogs(query, _), do: query
 
+  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
     mutes = info.mutes
 
index 11262c5237d4da84bddea54dc41eae9c13657e46..ac3a565deb65a194a374d3f648985f1ed6142804 100644 (file)
@@ -291,6 +291,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
     assert Enum.member?(activities, activity_three)
     refute Enum.member?(activities, activity_one)
 
+    # Calling with 'with_muted' will deliver muted activities, too.
+    activities = ActivityPub.fetch_activities([], %{"muting_user" => user, "with_muted" => true})
+
+    assert Enum.member?(activities, activity_two)
+    assert Enum.member?(activities, activity_three)
+    assert Enum.member?(activities, activity_one)
+
     {:ok, user} = User.unmute(user, %User{ap_id: activity_one.data["actor"]})
 
     activities = ActivityPub.fetch_activities([], %{"muting_user" => user})