Use with_index iterator in backup service (#38264)

This commit is contained in:
Matt Jankowski
2026-03-18 05:11:14 -04:00
committed by GitHub
parent 36400681cf
commit e839a94b93
2 changed files with 26 additions and 25 deletions

View File

@@ -25,13 +25,11 @@ class BackupService < BaseService
skeleton[:orderedItems] = ['!PLACEHOLDER!']
skeleton = JSON.generate(skeleton)
prepend, append = skeleton.split('"!PLACEHOLDER!"')
add_comma = false
file.write(prepend)
account.statuses.with_includes.reorder(nil).find_in_batches do |statuses|
file.write(',') if add_comma
add_comma = true
account.statuses.with_includes.reorder(nil).find_in_batches.with_index do |statuses, batch|
file.write(',') unless batch.zero?
file.write(statuses.map do |status|
serializer = status.reblog? ? ActivityPub::AnnounceNoteSerializer : ActivityPub::CreateNoteSerializer
@@ -124,11 +122,8 @@ class BackupService < BaseService
zipfile.get_output_stream('likes.json') do |io|
io.write(prepend)
add_comma = false
Status.reorder(nil).joins(:favourites).includes(:account).merge(account.favourites).find_in_batches do |statuses|
io.write(',') if add_comma
add_comma = true
Status.reorder(nil).joins(:favourites).includes(:account).merge(account.favourites).find_in_batches.with_index do |statuses, batch|
io.write(',') unless batch.zero?
io.write(statuses.map do |status|
JSON.generate(ActivityPub::TagManager.instance.uri_for(status))
@@ -151,10 +146,8 @@ class BackupService < BaseService
zipfile.get_output_stream('bookmarks.json') do |io|
io.write(prepend)
add_comma = false
Status.reorder(nil).joins(:bookmarks).includes(:account).merge(account.bookmarks).find_in_batches do |statuses|
io.write(',') if add_comma
add_comma = true
Status.reorder(nil).joins(:bookmarks).includes(:account).merge(account.bookmarks).find_in_batches.with_index do |statuses, batch|
io.write(',') unless batch.zero?
io.write(statuses.map do |status|
JSON.generate(ActivityPub::TagManager.instance.uri_for(status))