Add option to overwrite imported data (#9962)
* Add option to overwrite imported data Fix #7465 * Add import for domain blocks
This commit is contained in:
parent
c5071f2d78
commit
d14c276e58
12 changed files with 148 additions and 43 deletions
|
@ -13,11 +13,17 @@ class Import::RelationshipWorker
|
|||
|
||||
case relationship
|
||||
when 'follow'
|
||||
FollowService.new.call(from_account, target_account.acct)
|
||||
FollowService.new.call(from_account, target_account)
|
||||
when 'unfollow'
|
||||
UnfollowService.new.call(from_account, target_account)
|
||||
when 'block'
|
||||
BlockService.new.call(from_account, target_account)
|
||||
when 'unblock'
|
||||
UnblockService.new.call(from_account, target_account)
|
||||
when 'mute'
|
||||
MuteService.new.call(from_account, target_account)
|
||||
when 'unmute'
|
||||
UnmuteService.new.call(from_account, target_account)
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
true
|
||||
|
|
|
@ -1,44 +1,14 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'csv'
|
||||
|
||||
class ImportWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options queue: 'pull', retry: false
|
||||
|
||||
attr_reader :import
|
||||
|
||||
def perform(import_id)
|
||||
@import = Import.find(import_id)
|
||||
|
||||
Import::RelationshipWorker.push_bulk(import_rows) do |row|
|
||||
[@import.account_id, row.first, relationship_type]
|
||||
end
|
||||
|
||||
@import.destroy
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def import_contents
|
||||
Paperclip.io_adapters.for(@import.data).read
|
||||
end
|
||||
|
||||
def relationship_type
|
||||
case @import.type
|
||||
when 'following'
|
||||
'follow'
|
||||
when 'blocking'
|
||||
'block'
|
||||
when 'muting'
|
||||
'mute'
|
||||
end
|
||||
end
|
||||
|
||||
def import_rows
|
||||
rows = CSV.new(import_contents).reject(&:blank?)
|
||||
rows = rows.take(FollowLimitValidator.limit_for_account(@import.account)) if @import.type == 'following'
|
||||
rows
|
||||
import = Import.find(import_id)
|
||||
ImportService.new.call(import)
|
||||
ensure
|
||||
import&.destroy
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue