diff options
author | pluralcafe-docker <git@plural.cafe> | 2018-09-03 23:46:14 +0000 |
---|---|---|
committer | pluralcafe-docker <git@plural.cafe> | 2018-09-03 23:46:14 +0000 |
commit | 1e6f96168146b89df9940d2b77963a7a30ba84cb (patch) | |
tree | 06e1a473f10ff6f1c3743e1ff729f95be6d134e5 /app/services | |
parent | cc7437e25597e24b9a5f06f7991861506d9abe5c (diff) | |
parent | 40d04a3209871b9803b27d01f935ab401bf3539f (diff) |
Merge branch 'glitch'
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/backup_service.rb | 21 | ||||
-rw-r--r-- | app/services/report_service.rb | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index 4cfa22ab8..5fcc98057 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -45,6 +45,7 @@ class BackupService < BaseService dump_media_attachments!(tar) dump_outbox!(tar) dump_likes!(tar) + dump_bookmarks!(tar) dump_actor!(tar) end end @@ -85,6 +86,7 @@ class BackupService < BaseService actor[:image][:url] = 'header' + File.extname(actor[:image][:url]) if actor[:image] actor[:outbox] = 'outbox.json' actor[:likes] = 'likes.json' + actor[:bookmarks] = 'bookmarks.json' download_to_tar(tar, account.avatar, 'avatar' + File.extname(account.avatar.path)) if account.avatar.exists? download_to_tar(tar, account.header, 'header' + File.extname(account.header.path)) if account.header.exists? @@ -115,6 +117,25 @@ class BackupService < BaseService end end + def dump_bookmarks!(tar) + collection = serialize(ActivityPub::CollectionPresenter.new(id: 'bookmarks.json', type: :ordered, size: 0, items: []), ActivityPub::CollectionSerializer) + + Status.reorder(nil).joins(:bookmarks).includes(:account).merge(account.bookmarks).find_in_batches do |statuses| + statuses.each do |status| + collection[:totalItems] += 1 + collection[:orderedItems] << ActivityPub::TagManager.instance.uri_for(status) + end + + GC.start + end + + json = Oj.dump(collection) + + tar.add_file_simple('bookmarks.json', 0o444, json.bytesize) do |io| + io.write(json) + end + end + def collection_presenter ActivityPub::CollectionPresenter.new( id: 'outbox.json', diff --git a/app/services/report_service.rb b/app/services/report_service.rb index c06488a6d..057d05ab9 100644 --- a/app/services/report_service.rb +++ b/app/services/report_service.rb @@ -26,7 +26,10 @@ class ReportService < BaseService end def notify_staff! + return if @report.unresolved_siblings? + User.staff.includes(:account).each do |u| + next unless u.allows_report_emails? AdminMailer.new_report(u.account, @report).deliver_later end end |