FIX: always show the progress bars when skipping posts/users in importers

This commit is contained in:
Régis Hanol
2014-09-04 19:18:22 +02:00
parent a0569a22be
commit 7a7a38c78e

View File

@ -228,28 +228,28 @@ class ImportScripts::Base
results.each do |result| results.each do |result|
u = yield(result) u = yield(result)
# block returns nil to skip a post
if u.nil? if u.nil?
users_skipped += 1 users_skipped += 1
next # block returns nil to skip a post else
end import_id = u[:id]
import_id = u[:id] if user_id_from_imported_user_id(import_id)
users_skipped += 1
elsif u[:email].present?
new_user = create_user(u, import_id)
if user_id_from_imported_user_id(import_id) if new_user.valid?
users_skipped += 1 @existing_users[import_id.to_s] = new_user.id
elsif u[:email].present? users_created += 1
new_user = create_user(u, import_id) else
@failed_users << u
if new_user.valid? puts "Failed to create user id: #{import_id}, username: #{new_user.username}, email: #{new_user.email}: #{new_user.errors.full_messages}"
@existing_users[import_id.to_s] = new_user.id end
users_created += 1
else else
@failed_users << u @failed_users << u
puts "Failed to create user id: #{import_id}, username: #{new_user.username}, email: #{new_user.email}: #{new_user.errors.full_messages}" puts "Skipping user id #{import_id} because email is blank"
end end
else
@failed_users << u
puts "Skipping user id #{import_id} because email is blank"
end end
print_status users_created + users_skipped + @failed_users.length + (opts[:offset] || 0), total print_status users_created + users_skipped + @failed_users.length + (opts[:offset] || 0), total
@ -370,40 +370,40 @@ class ImportScripts::Base
results.each do |r| results.each do |r|
params = yield(r) params = yield(r)
# block returns nil to skip a post
if params.nil? if params.nil?
skipped += 1 skipped += 1
next # block returns nil to skip a post
end
import_id = params.delete(:id).to_s
if post_id_from_imported_post_id(import_id)
skipped += 1 # already imported this post
else else
begin import_id = params.delete(:id).to_s
new_post = create_post(params, import_id)
if new_post.is_a?(Post)
@existing_posts[import_id] = new_post.id
@topic_lookup[new_post.id] = {
post_number: new_post.post_number,
topic_id: new_post.topic_id,
url: new_post.url,
}
created += 1 if post_id_from_imported_post_id(import_id)
else skipped += 1 # already imported this post
else
begin
new_post = create_post(params, import_id)
if new_post.is_a?(Post)
@existing_posts[import_id] = new_post.id
@topic_lookup[new_post.id] = {
post_number: new_post.post_number,
topic_id: new_post.topic_id,
url: new_post.url,
}
created += 1
else
skipped += 1
puts "Error creating post #{import_id}. Skipping."
puts new_post.inspect
end
rescue Discourse::InvalidAccess => e
skipped += 1 skipped += 1
puts "Error creating post #{import_id}. Skipping." puts "InvalidAccess creating post #{import_id}. Topic is closed? #{e.message}"
puts new_post.inspect rescue => e
skipped += 1
puts "Exception while creating post #{import_id}. Skipping."
puts e.message
puts e.backtrace.join("\n")
end end
rescue Discourse::InvalidAccess => e
skipped += 1
puts "InvalidAccess creating post #{import_id}. Topic is closed? #{e.message}"
rescue => e
skipped += 1
puts "Exception while creating post #{import_id}. Skipping."
puts e.message
puts e.backtrace.join("\n")
end end
end end