about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/chewy/statuses_index.rb5
-rw-r--r--app/models/status.rb2
2 files changed, 7 insertions, 0 deletions
diff --git a/app/chewy/statuses_index.rb b/app/chewy/statuses_index.rb
index 8ce413f8a..971f03428 100644
--- a/app/chewy/statuses_index.rb
+++ b/app/chewy/statuses_index.rb
@@ -47,6 +47,11 @@ class StatusesIndex < Chewy::Index
       data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
     end
 
+    crutch :bookmarks do |collection|
+      data = ::Bookmark.where(status_id: collection.map(&:id)).pluck(:status_id, :account_id)
+      data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
+    end
+
     root date_detection: false do
       field :id, type: 'long'
       field :account_id, type: 'long'
diff --git a/app/models/status.rb b/app/models/status.rb
index 6f3ba4cc3..7a3b4da36 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -141,10 +141,12 @@ class Status < ApplicationRecord
     if preloaded.nil?
       ids += mentions.pluck(:account_id)
       ids += favourites.pluck(:account_id)
+      ids += bookmarks.pluck(:account_id)
       ids += reblogs.pluck(:account_id)
     else
       ids += preloaded.mentions[id] || []
       ids += preloaded.favourites[id] || []
+      ids += preloaded.bookmarks[id] || []
       ids += preloaded.reblogs[id] || []
     end