Bladeren bron

Merge branch 'bugfix/missing-announces' into 'develop'

fix up missing announcements with preloads

See merge request pleroma/pleroma!972
tags/v1.1.4
rinpatch 5 jaren geleden
bovenliggende
commit
b028b0f97d
2 gewijzigde bestanden met toevoegingen van 24 en 6 verwijderingen
  1. +10
    -6
      lib/pleroma/activity.ex
  2. +14
    -0
      test/web/activity_pub/activity_pub_test.exs

+ 10
- 6
lib/pleroma/activity.ex Bestand weergeven

@@ -41,8 +41,8 @@ defmodule Pleroma.Activity do
#
# ```
# |> join(:inner, [activity], o in Object,
# on: fragment("(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
# o.data, activity.data))
# on: fragment("(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')",
# o.data, activity.data, activity.data))
# |> preload([activity, object], [object: object])
# ```
#
@@ -61,8 +61,9 @@ defmodule Pleroma.Activity do
o in Object,
on:
fragment(
"(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
"(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
o.data,
activity.data,
activity.data
)
)
@@ -86,8 +87,9 @@ defmodule Pleroma.Activity do
left_join: o in Object,
on:
fragment(
"(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
"(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
o.data,
activity.data,
activity.data
),
preload: [object: o]
@@ -105,8 +107,9 @@ defmodule Pleroma.Activity do
inner_join: o in Object,
on:
fragment(
"(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
"(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
o.data,
activity.data,
activity.data
),
preload: [object: o]
@@ -182,8 +185,9 @@ defmodule Pleroma.Activity do
inner_join: o in Object,
on:
fragment(
"(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)",
"(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')",
o.data,
activity.data,
activity.data
),
preload: [object: o]


+ 14
- 0
test/web/activity_pub/activity_pub_test.exs Bestand weergeven

@@ -365,6 +365,20 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
assert Enum.member?(activities, activity_one)
end

test "does include announces on request" do
activity_three = insert(:note_activity)
user = insert(:user)
booster = insert(:user)

{:ok, user} = User.follow(user, booster)

{:ok, announce, _object} = CommonAPI.repeat(activity_three.id, booster)

[announce_activity] = ActivityPub.fetch_activities([user.ap_id | user.following])

assert announce_activity.id == announce.id
end

test "excludes reblogs on request" do
user = insert(:user)
{:ok, expected_activity} = ActivityBuilder.insert(%{"type" => "Create"}, %{:user => user})


Laden…
Annuleren
Opslaan