Improve the base importer
- FEATURE: Print the time it took for the import to finish - FEATURE: Allow importing of unactivated users - FIX: Remove unused variables - FIX: Accessing an undefined variable is not a good idea
This commit is contained in:
parent
256519dddf
commit
72755970c6
|
@ -22,7 +22,7 @@ class ImportScripts::Base
|
|||
include ActionView::Helpers::NumberHelper
|
||||
|
||||
def initialize
|
||||
require File.expand_path(File.dirname(__FILE__) + "/../../config/environment")
|
||||
require_relative '../../config/environment'
|
||||
preload_i18n
|
||||
|
||||
@bbcode_to_md = true if ARGV.include?('bbcode-to-md')
|
||||
|
@ -34,6 +34,7 @@ class ImportScripts::Base
|
|||
@existing_posts = {}
|
||||
@topic_lookup = {}
|
||||
@old_site_settings = {}
|
||||
@start_time = Time.now
|
||||
|
||||
puts "loading existing groups..."
|
||||
GroupCustomField.where(name: 'import_id').pluck(:group_id, :value).each do |group_id, import_id|
|
||||
|
@ -85,7 +86,8 @@ class ImportScripts::Base
|
|||
update_topic_count_replies
|
||||
reset_topic_counters
|
||||
|
||||
puts "", "Done"
|
||||
elapsed = Time.now - @start_time
|
||||
puts '', "Done (#{elapsed.to_s} seconds)"
|
||||
|
||||
ensure
|
||||
reset_site_settings
|
||||
|
@ -226,10 +228,8 @@ class ImportScripts::Base
|
|||
# user in the original datasource. The given id will not be used to
|
||||
# create the Discourse user record.
|
||||
def create_users(results, opts={})
|
||||
num_users_before = User.count
|
||||
users_created = 0
|
||||
users_skipped = 0
|
||||
progress = 0
|
||||
total = opts[:total] || results.size
|
||||
|
||||
results.each do |result|
|
||||
|
@ -280,16 +280,16 @@ class ImportScripts::Base
|
|||
|
||||
opts[:name] = User.suggest_name(opts[:email]) unless opts[:name]
|
||||
if opts[:username].blank? ||
|
||||
opts[:username].length < User.username_length.begin ||
|
||||
opts[:username].length > User.username_length.end ||
|
||||
opts[:username] =~ /[^A-Za-z0-9_]/ ||
|
||||
opts[:username][0] =~ /[^A-Za-z0-9]/ ||
|
||||
!User.username_available?(opts[:username])
|
||||
opts[:username].length < User.username_length.begin ||
|
||||
opts[:username].length > User.username_length.end ||
|
||||
opts[:username] =~ /[^A-Za-z0-9_]/ ||
|
||||
opts[:username][0] =~ /[^A-Za-z0-9]/ ||
|
||||
!User.username_available?(opts[:username])
|
||||
opts[:username] = UserNameSuggester.suggest(opts[:username] || opts[:name] || opts[:email])
|
||||
end
|
||||
opts[:email] = opts[:email].downcase
|
||||
opts[:trust_level] = TrustLevel[1] unless opts[:trust_level]
|
||||
opts[:active] = true
|
||||
opts[:active] = opts.fetch(:active, true)
|
||||
opts[:import_mode] = true
|
||||
|
||||
u = User.new(opts)
|
||||
|
@ -470,8 +470,8 @@ class ImportScripts::Base
|
|||
end
|
||||
|
||||
def close_inactive_topics(opts={})
|
||||
puts "", "Closing topics that have been inactive for more than #{num_days} days."
|
||||
num_days = opts[:days] || 30
|
||||
puts '', "Closing topics that have been inactive for more than #{num_days} days."
|
||||
|
||||
query = Topic.where('last_posted_at < ?', num_days.days.ago).where(closed: false)
|
||||
total_count = query.count
|
||||
|
@ -523,7 +523,7 @@ class ImportScripts::Base
|
|||
end
|
||||
|
||||
def reset_topic_counters
|
||||
puts "", "reseting topic counters"
|
||||
puts "", "resetting topic counters"
|
||||
|
||||
total_count = Topic.count
|
||||
progress_count = 0
|
||||
|
|
Loading…
Reference in New Issue