summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/ostatus/ostatus_controller.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/ostatus/ostatus_controller.ex')
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
index e5f99c66c..4388217d1 100644
--- a/lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -19,7 +19,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do
end
end
- def feed(conn, %{"nickname" => nickname}) do
+ def feed(conn, %{"nickname" => nickname} = params) do
user = User.get_cached_by_nickname(nickname)
query = from activity in Activity,
where: fragment("?->>'actor' = ?", activity.data, ^user.ap_id),
@@ -27,6 +27,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do
order_by: [desc: :id]
activities = query
+ |> restrict_max(params)
|> Repo.all
response = user
@@ -56,6 +57,11 @@ defmodule Pleroma.Web.OStatus.OStatusController do
end
end
+ 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
+
def salmon_incoming(conn, _) do
{:ok, body, _conn} = read_body(conn)
{:ok, doc} = decode_or_retry(body)