aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/mastodon_api/mastodon_api_controller.ex2
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex11
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index 859cf9524..f5067e17e 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -280,7 +280,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|> ActivityPub.contain_timeline(user)
|> Enum.reverse()
- user = Repo.preload(user, :bookmarks)
+ user = Repo.preload(user, bookmarks: :activity)
conn
|> add_link_headers(:home_timeline, activities)
diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex
index b2ed023dc..57cb9fdcc 100644
--- a/lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/status_view.ex
@@ -85,7 +85,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
activity_object = Object.normalize(activity)
favorited = opts[:for] && opts[:for].ap_id in (activity_object.data["likes"] || [])
- bookmarked = opts[:for] && activity_object.data["id"] in opts[:for].bookmarks
+
+ bookmarked =
+ opts[:for] && Ecto.assoc_loaded?(opts[:for].bookmarks) &&
+ Enum.any?(opts[:for].bookmarks, fn b ->
+ b.activity_id == activity.id or b.activity.data["object"]["id"] == object
+ end)
mentions =
activity.recipients
@@ -150,7 +155,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
bookmarked =
opts[:for] && Ecto.assoc_loaded?(opts[:for].bookmarks) &&
- Enum.any?(opts[:for].bookmarks, fn b -> b.activity_id == activity.id end)
+ Enum.any?(opts[:for].bookmarks, fn b ->
+ b.activity_id == activity.id
+ end)
attachment_data = object.data["attachment"] || []
attachments = render_many(attachment_data, StatusView, "attachment.json", as: :attachment)