diff options
| author | lain <lain@soykaf.club> | 2018-05-20 16:15:18 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2018-05-20 16:15:18 +0200 | 
| commit | 434601a5c367bb2d41115e3060f5d5b70572da39 (patch) | |
| tree | 7b8b2dd2c1ddfddf9250ad74c038fcc2b6be4b35 /lib | |
| parent | bdfe0991d25cc38080d513835b9b16f785856e9a (diff) | |
| download | pleroma-434601a5c367bb2d41115e3060f5d5b70572da39.tar.gz pleroma-434601a5c367bb2d41115e3060f5d5b70572da39.zip | |
Return private / direct posts on user timelines, too.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 19 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 15 | ||||
| -rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 8 | 
3 files changed, 24 insertions, 18 deletions
| diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 4e97693a2..24b4f045a 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -260,6 +260,25 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do      |> Enum.reverse()    end +  def fetch_user_activities(user, reading_user, params \\ %{}) do +    params = +      params +      |> Map.put("type", ["Create", "Announce"]) +      |> Map.put("actor_id", user.ap_id) +      |> Map.put("whole_db", true) + +    recipients = +      if reading_user do +        ["https://www.w3.org/ns/activitystreams#Public"] ++ +          [reading_user.ap_id | reading_user.following] +      else +        ["https://www.w3.org/ns/activitystreams#Public"] +      end + +    fetch_activities(recipients, params) +    |> Enum.reverse() +  end +    defp restrict_since(query, %{"since_id" => since_id}) do      from(activity in query, where: activity.id > ^since_id)    end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index b218c269d..85f9c5b7b 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -204,21 +204,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do      |> render(StatusView, "index.json", %{activities: activities, for: user, as: :activity})    end -  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", "Announce"]) -        |> Map.put("actor_id", ap_id) -        |> Map.put("whole_db", true) - +  def user_statuses(%{assigns: %{user: reading_user}} = conn, params) do +    with %User{} = user <- Repo.get(User, params["id"]) do +      # Since Pleroma has no "pinned" posts feature, we'll just set an empty list here        activities =          if params["pinned"] == "true" do -          # Since Pleroma has no "pinned" posts feature, we'll just set an empty list here            []          else -          ActivityPub.fetch_public_activities(params) -          |> Enum.reverse() +          ActivityPub.fetch_user_activities(user, reading_user, params)          end        conn diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index a99487738..dd1dc241d 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -96,13 +96,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do    def user_timeline(%{assigns: %{user: user}} = conn, params) do      case TwitterAPI.get_user(user, params) do        {:ok, target_user} -> -        params = -          params -          |> Map.put("type", ["Create", "Announce"]) -          |> Map.put("actor_id", target_user.ap_id) -          |> Map.put("whole_db", true) - -        activities = ActivityPub.fetch_public_activities(params) +        activities = ActivityPub.fetch_user_activities(target_user, user, params)          conn          |> render(ActivityView, "index.json", %{activities: activities, for: user}) | 
