|
|
|
@ -199,15 +199,20 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|
|
|
|
defp add_link_headers(conn, method, activities, param \\ nil, params \\ %{}) do
|
|
|
|
|
params =
|
|
|
|
|
conn.params
|
|
|
|
|
|> Map.drop(["since_id", "max_id"])
|
|
|
|
|
|> Map.drop(["since_id", "max_id", "min_id"])
|
|
|
|
|
|> Map.merge(params)
|
|
|
|
|
|
|
|
|
|
last = List.last(activities)
|
|
|
|
|
first = List.first(activities)
|
|
|
|
|
|
|
|
|
|
if last do
|
|
|
|
|
min = last.id
|
|
|
|
|
max = first.id
|
|
|
|
|
max_id = last.id
|
|
|
|
|
|
|
|
|
|
limit =
|
|
|
|
|
params
|
|
|
|
|
|> Map.get("limit", "20")
|
|
|
|
|
|> String.to_integer()
|
|
|
|
|
|
|
|
|
|
min_id = Enum.at(activities, limit * -1)
|
|
|
|
|
|
|
|
|
|
{next_url, prev_url} =
|
|
|
|
|
if param do
|
|
|
|
@ -216,13 +221,13 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|
|
|
|
Pleroma.Web.Endpoint,
|
|
|
|
|
method,
|
|
|
|
|
param,
|
|
|
|
|
Map.merge(params, %{max_id: min})
|
|
|
|
|
Map.merge(params, %{max_id: max_id})
|
|
|
|
|
),
|
|
|
|
|
mastodon_api_url(
|
|
|
|
|
Pleroma.Web.Endpoint,
|
|
|
|
|
method,
|
|
|
|
|
param,
|
|
|
|
|
Map.merge(params, %{since_id: max})
|
|
|
|
|
Map.merge(params, %{min_id: min_id})
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -230,12 +235,12 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|
|
|
|
mastodon_api_url(
|
|
|
|
|
Pleroma.Web.Endpoint,
|
|
|
|
|
method,
|
|
|
|
|
Map.merge(params, %{max_id: min})
|
|
|
|
|
Map.merge(params, %{max_id: max_id})
|
|
|
|
|
),
|
|
|
|
|
mastodon_api_url(
|
|
|
|
|
Pleroma.Web.Endpoint,
|
|
|
|
|
method,
|
|
|
|
|
Map.merge(params, %{since_id: max})
|
|
|
|
|
Map.merge(params, %{min_id: min_id})
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|