MastoAPI: Return reblogs, too.
authorRoger Braun <roger@rogerbraun.net>
Sun, 17 Sep 2017 12:20:54 +0000 (14:20 +0200)
committerRoger Braun <roger@rogerbraun.net>
Sun, 17 Sep 2017 12:20:54 +0000 (14:20 +0200)
lib/pleroma/web/activity_pub/activity_pub.ex
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex

index 0cfd22d7b0ca994cd968a48afdb594403b745090..31aa2c4f127798be671ffc9c4ba4ce204c2afdcb 100644 (file)
@@ -141,9 +141,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
   end
   defp restrict_actor(query, _), do: query
 
+  defp restrict_type(query, %{"type" => type}) when is_binary(type) do
+    restrict_type(query, %{"type" => [type]})
+  end
   defp restrict_type(query, %{"type" => type}) do
     from activity in query,
-      where: fragment("?->>'type' = ?", activity.data, ^type)
+      where: fragment("?->>'type' = ANY(?)", activity.data, ^type)
   end
   defp restrict_type(query, _), do: query
 
index dd104402400f06a770cde404591a5946f14f7a86..a01a199fb8a2f1d83c76f8c206ee618cf3127483 100644 (file)
@@ -77,7 +77,10 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
   end
 
   def home_timeline(%{assigns: %{user: user}} = conn, params) do
-    activities = ActivityPub.fetch_activities([user.ap_id | user.following], Map.put(params, "type", "Create"))
+    params = params
+    |> Map.put("type", ["Create", "Announce"])
+
+    activities = ActivityPub.fetch_activities([user.ap_id | user.following], params)
     |> Enum.reverse
 
     conn
@@ -87,7 +90,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
 
   def public_timeline(%{assigns: %{user: user}} = conn, params) do
     params = params
-    |> Map.put("type", "Create")
+    |> Map.put("type", ["Create", "Announce"])
     |> Map.put("local_only", !!params["local"])
 
     activities = ActivityPub.fetch_public_activities(params)
@@ -102,7 +105,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
   def user_statuses(%{assigns: %{user: user}} = conn, params) do
     with %User{ap_id: ap_id} <- Repo.get(User, params["id"]) do
       params = params
-      |> Map.put("type", "Create")
+      |> Map.put("type", ["Create", "Announce"])
       |> Map.put("actor_id", ap_id)
 
       activities = ActivityPub.fetch_activities([], params)