Add since_id for activitypub fetching.
This commit is contained in:
parent
d4cf273f28
commit
b9d0e34506
@ -7,9 +7,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|||||||
Repo.insert(%Activity{data: map})
|
Repo.insert(%Activity{data: map})
|
||||||
end
|
end
|
||||||
|
|
||||||
def fetch_public_activities do
|
def fetch_public_activities(opts \\ %{}) do
|
||||||
|
since_id = opts[:since_id] || 0
|
||||||
|
|
||||||
query = from activity in Activity,
|
query = from activity in Activity,
|
||||||
where: fragment(~s(? @> '{"to": ["https://www.w3.org/ns/activitystreams#Public"]}'), activity.data),
|
where: fragment(~s(? @> '{"to": ["https://www.w3.org/ns/activitystreams#Public"]}'), activity.data),
|
||||||
|
where: activity.id > ^since_id,
|
||||||
limit: 20,
|
limit: 20,
|
||||||
order_by: [desc: :inserted_at]
|
order_by: [desc: :inserted_at]
|
||||||
|
|
||||||
|
@ -34,5 +34,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
|||||||
assert length(activities) == 20
|
assert length(activities) == 20
|
||||||
assert last == last_expected
|
assert last == last_expected
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "retrieves ids starting from a since_id" do
|
||||||
|
activities = ActivityBuilder.insert_list(30)
|
||||||
|
later_activities = ActivityBuilder.insert_list(10)
|
||||||
|
since_id = List.last(activities).id
|
||||||
|
last_expected = List.last(later_activities)
|
||||||
|
|
||||||
|
activities = ActivityPub.fetch_public_activities(%{since_id: since_id})
|
||||||
|
last = List.last(activities)
|
||||||
|
|
||||||
|
assert length(activities) == 10
|
||||||
|
assert last == last_expected
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user