|
|
@@ -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 |
|
|
|