mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-06 18:01:05 +00:00
Import seems to work!
This commit is contained in:
parent
dbdf20b373
commit
d8725ea554
|
@ -57,6 +57,8 @@ class Settings::ImportsController < Settings::BaseController
|
||||||
csv << [row.data['uri']]
|
csv << [row.data['uri']]
|
||||||
when :lists
|
when :lists
|
||||||
csv << [row.data['list_name'], row.data['acct']]
|
csv << [row.data['list_name'], row.data['acct']]
|
||||||
|
when :filters
|
||||||
|
csv << [row.data['title'], row.data['context'], row.data['keywords'], row.data['action'], row.data['expires_at']]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,6 +33,13 @@ class Form::Import
|
||||||
'#domain' => 'domain',
|
'#domain' => 'domain',
|
||||||
'#uri' => 'uri',
|
'#uri' => 'uri',
|
||||||
'List name' => 'list_name',
|
'List name' => 'list_name',
|
||||||
|
|
||||||
|
# Filters
|
||||||
|
'Title' => 'title',
|
||||||
|
'Context' => 'context',
|
||||||
|
'Keywords' => 'keywords',
|
||||||
|
'Action' => 'action',
|
||||||
|
'Expire after' => 'expires_at',
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
class EmptyFileError < StandardError; end
|
class EmptyFileError < StandardError; end
|
||||||
|
@ -114,10 +121,11 @@ class Form::Import
|
||||||
return @csv_data if defined?(@csv_data)
|
return @csv_data if defined?(@csv_data)
|
||||||
|
|
||||||
csv_converter = lambda do |field, field_info|
|
csv_converter = lambda do |field, field_info|
|
||||||
if :type == :filters
|
case type.to_sym
|
||||||
|
when :filters
|
||||||
case field_info.header
|
case field_info.header
|
||||||
when 'Context', 'Keywords'
|
when 'Context', 'Keywords'
|
||||||
field&.split(',')&.map(&:strip)&.presence
|
Oj.load(field)
|
||||||
when 'Expire after'
|
when 'Expire after'
|
||||||
field.blank? ? nil : Time.zone.parse(field)
|
field.blank? ? nil : Time.zone.parse(field)
|
||||||
else
|
else
|
||||||
|
|
|
@ -39,6 +39,13 @@ class BulkImportRowService
|
||||||
FollowService.new.call(@account, @target_account) unless @account.id == @target_account.id
|
FollowService.new.call(@account, @target_account) unless @account.id == @target_account.id
|
||||||
|
|
||||||
list.accounts << @target_account
|
list.accounts << @target_account
|
||||||
|
when :filters
|
||||||
|
filter = @account.custom_filters.find_or_initialize_by(title: @data['title'])
|
||||||
|
filter.context = @data['context']
|
||||||
|
filter.keywords = @data['keywords'].map { |keyword| CustomFilterKeyword.new(keyword: keyword) }
|
||||||
|
filter.action = @data['action'].to_sym
|
||||||
|
filter.expires_at = @data['expires_at']
|
||||||
|
filter.save!
|
||||||
end
|
end
|
||||||
|
|
||||||
true
|
true
|
||||||
|
|
Loading…
Reference in New Issue
Block a user