Use likes and shares totalItems on status creations and updates (#32620)

This commit is contained in:
Jonny Saunders 2024-10-27 21:55:18 -07:00 committed by GitHub
parent 77cd16f4ee
commit 9074c1fac9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 326 additions and 14 deletions

View file

@ -43,6 +43,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
update_poll!
update_immediate_attributes!
update_metadata!
update_counts!
create_edits!
end
@ -62,6 +63,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
with_redis_lock("create:#{@uri}") do
update_poll!(allow_significant_changes: false)
queue_poll_notifications!
update_counts!
end
end
@ -239,6 +241,19 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
end
end
def update_counts!
likes = @status_parser.favourites_count
shares = @status_parser.reblogs_count
return if likes.nil? && shares.nil?
@status.status_stat.tap do |status_stat|
status_stat.untrusted_reblogs_count = shares unless shares.nil?
status_stat.untrusted_favourites_count = likes unless likes.nil?
status_stat.save if status_stat.changed?
end
end
def expected_type?
equals_or_includes_any?(@json['type'], %w(Note Question))
end