projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'feature/incoming-remote-unfollow' into 'develop'
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
utils.ex
diff --git
a/lib/pleroma/web/activity_pub/utils.ex
b/lib/pleroma/web/activity_pub/utils.ex
index 050413d51040f7f60d69aec7cd9c795aaf98a575..831e13b7edf0b50e9fae3ff3c0afbdaabefd3b78 100644
(file)
--- a/
lib/pleroma/web/activity_pub/utils.ex
+++ b/
lib/pleroma/web/activity_pub/utils.ex
@@
-242,8
+242,9
@@
defmodule Pleroma.Web.ActivityPub.Utils do
fragment(
"? @> ?",
activity.data,
fragment(
"? @> ?",
activity.data,
- ^%{type: "Follow",
actor: follower_id,
object: followed_id}
+ ^%{type: "Follow", object: followed_id}
),
),
+ where: activity.actor == ^follower_id,
order_by: [desc: :id],
limit: 1
)
order_by: [desc: :id],
limit: 1
)
@@
-260,7
+261,7
@@
defmodule Pleroma.Web.ActivityPub.Utils do
query =
from(
activity in Activity,
query =
from(
activity in Activity,
- where:
fragment("(?)->>'actor' = ?", activity.data, ^actor)
,
+ where:
activity.actor == ^actor
,
# this is to use the index
where:
fragment(
# this is to use the index
where:
fragment(
@@
-346,13
+347,15
@@
defmodule Pleroma.Web.ActivityPub.Utils do
#### Unfollow-related helpers
#### Unfollow-related helpers
- def make_unfollow_data(follower, followed, follow_activity) do
- %{
+ def make_unfollow_data(follower, followed, follow_activity
, activity_id
) do
+
data =
%{
"type" => "Undo",
"actor" => follower.ap_id,
"to" => [followed.ap_id],
"type" => "Undo",
"actor" => follower.ap_id,
"to" => [followed.ap_id],
- "object" => follow_activity.data
["id"]
+ "object" => follow_activity.data
}
}
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
end
#### Block-related helpers
end
#### Block-related helpers
@@
-364,8
+367,9
@@
defmodule Pleroma.Web.ActivityPub.Utils do
fragment(
"? @> ?",
activity.data,
fragment(
"? @> ?",
activity.data,
- ^%{type: "Block",
actor: blocker_id,
object: blocked_id}
+ ^%{type: "Block", object: blocked_id}
),
),
+ where: activity.actor == ^blocker_id,
order_by: [desc: :id],
limit: 1
)
order_by: [desc: :id],
limit: 1
)
@@
-373,22
+377,26
@@
defmodule Pleroma.Web.ActivityPub.Utils do
Repo.one(query)
end
Repo.one(query)
end
- def make_block_data(blocker, blocked) do
- %{
+ def make_block_data(blocker, blocked
, activity_id
) do
+
data =
%{
"type" => "Block",
"actor" => blocker.ap_id,
"to" => [blocked.ap_id],
"object" => blocked.ap_id
}
"type" => "Block",
"actor" => blocker.ap_id,
"to" => [blocked.ap_id],
"object" => blocked.ap_id
}
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
end
end
- def make_unblock_data(blocker, blocked, block_activity) do
- %{
+ def make_unblock_data(blocker, blocked, block_activity
, activity_id
) do
+
data =
%{
"type" => "Undo",
"actor" => blocker.ap_id,
"to" => [blocked.ap_id],
"object" => block_activity.data
}
"type" => "Undo",
"actor" => blocker.ap_id,
"to" => [blocked.ap_id],
"object" => block_activity.data
}
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
end
#### Create-related helpers
end
#### Create-related helpers