diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 30 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 3 | 
2 files changed, 7 insertions, 26 deletions
| diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 6e1ed7ec9..531158338 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do    alias Pleroma.Instances    alias Pleroma.Notification    alias Pleroma.Object +  alias Pleroma.Pagination    alias Pleroma.Repo    alias Pleroma.Upload    alias Pleroma.User @@ -474,7 +475,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do      q      |> restrict_unlisted() -    |> Repo.all() +    |> Pagination.fetch_paginated(opts)      |> Enum.reverse()    end @@ -617,26 +618,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do      )    end -  defp restrict_limit(query, %{"limit" => limit}) do -    from(activity in query, limit: ^limit) -  end - -  defp restrict_limit(query, _), do: query -    defp restrict_local(query, %{"local_only" => true}) do      from(activity in query, where: activity.local == true)    end    defp restrict_local(query, _), do: query -  defp restrict_max(query, %{"max_id" => ""}), do: query - -  defp restrict_max(query, %{"max_id" => max_id}) do -    from(activity in query, where: activity.id < ^max_id) -  end - -  defp restrict_max(query, _), do: query -    defp restrict_actor(query, %{"actor_id" => actor_id}) do      from(activity in query, where: activity.actor == ^actor_id)    end @@ -757,12 +744,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do    end    def fetch_activities_query(recipients, opts \\ %{}) do -    base_query = -      from( -        activity in Activity, -        limit: 20, -        order_by: [fragment("? desc nulls last", activity.id)] -      ) +    base_query = from(activity in Activity)      base_query      |> maybe_preload_objects(opts) @@ -772,8 +754,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do      |> restrict_tag_all(opts)      |> restrict_since(opts)      |> restrict_local(opts) -    |> restrict_limit(opts) -    |> restrict_max(opts)      |> restrict_actor(opts)      |> restrict_type(opts)      |> restrict_favorited_by(opts) @@ -789,14 +769,14 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do    def fetch_activities(recipients, opts \\ %{}) do      fetch_activities_query(recipients, opts) -    |> Repo.all() +    |> Pagination.fetch_paginated(opts)      |> Enum.reverse()    end    def fetch_activities_bounded(recipients_to, recipients_cc, opts \\ %{}) do      fetch_activities_query([], opts)      |> restrict_to_cc(recipients_to, recipients_cc) -    |> Repo.all() +    |> Pagination.fetch_paginated(opts)      |> Enum.reverse()    end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index eee4e7678..4d0caecf4 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do    alias Pleroma.Filter    alias Pleroma.Notification    alias Pleroma.Object +  alias Pleroma.Pagination    alias Pleroma.Repo    alias Pleroma.Stats    alias Pleroma.User @@ -310,7 +311,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do      activities =        [user.ap_id]        |> ActivityPub.fetch_activities_query(params) -      |> Repo.all() +      |> Pagination.fetch_paginated(params)      conn      |> add_link_headers(:dm_timeline, activities) | 
