Updating with more rake tweaks and some post customizations
This commit is contained in:
@@ -13,9 +13,9 @@ namespace :wordpress do
|
||||
end
|
||||
|
||||
desc "import blog data from a WordPressImport XML dump"
|
||||
task :import_blog, :file_name do |task, params|
|
||||
task :import_blog, :file_name, :blog_slug do |task, params|
|
||||
Rake::Task["environment"].invoke
|
||||
p "Loading XML from #{params[:file_name]} ..."
|
||||
p "Loading XML from #{params[:file_name]} (using blog #{params[:blog_slug]}) ..."
|
||||
dump = WordPressImport::Dump.new(params[:file_name])
|
||||
|
||||
p "Importing #{dump.authors.count} authors ..."
|
||||
@@ -31,14 +31,14 @@ namespace :wordpress do
|
||||
p "(export ONLY_PUBLISHED=true to import only published posts)"
|
||||
end
|
||||
|
||||
dump.posts(only_published).each(&:to_rails)
|
||||
dump.posts(only_published).each{|p| p.to_rails(params[:blog_slug]) }
|
||||
end
|
||||
|
||||
desc "reset blog tables and then import blog data from a WordPressImport XML dump"
|
||||
task :reset_and_import_blog, :file_name do |task, params|
|
||||
task :reset_and_import_blog, :file_name, :blog_slug do |task, params|
|
||||
Rake::Task["environment"].invoke
|
||||
Rake::Task["wordpress:reset_blog"].invoke
|
||||
Rake::Task["wordpress:import_blog"].invoke(params[:file_name])
|
||||
Rake::Task["wordpress:import_blog"].invoke(params[:file_name], params[:blog_slug])
|
||||
end
|
||||
|
||||
|
||||
@@ -129,19 +129,12 @@ namespace :wordpress do
|
||||
end
|
||||
|
||||
desc "reset and import all data (see the other tasks)"
|
||||
task :full_import, :file_name do |task, params|
|
||||
task :full_import, :file_name, :blog_slug do |task, params|
|
||||
Rake::Task["environment"].invoke
|
||||
Rake::Task["wordpress:reset_and_import_blog"].invoke(params[:file_name])
|
||||
Rake::Task["wordpress:reset_and_import_blog"].invoke(params[:file_name],params[:blog_slug])
|
||||
#Rake::Task["wordpress:reset_and_import_pages"].invoke(params[:file_name])
|
||||
#Rake::Task["wordpress:reset_import_and_replace_media"].invoke(params[:file_name])
|
||||
Rake::Task["wordpress:import_and_replace_media"].invoke(params[:file_name])
|
||||
end
|
||||
|
||||
|
||||
desc "Local First master import (no resets)"
|
||||
task :lfa_import, :file_name do |task, params|
|
||||
Rake::Task["environment"].invoke
|
||||
Rake::Task["wordpress:import_blog"].invoke(params[:file_name])
|
||||
Rake::Task["wordpress:import_and_replace_media"].invoke(params[:file_name])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -38,6 +38,9 @@ module WordPressImport
|
||||
user.password_confirmation = 'password'
|
||||
end
|
||||
user.save
|
||||
|
||||
puts "User #{login} imported."
|
||||
|
||||
user
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,6 +13,10 @@ module WordPressImport
|
||||
"WordPress::Page(#{post_id}): #{title}"
|
||||
end
|
||||
|
||||
def link
|
||||
node.xpath("link").text
|
||||
end
|
||||
|
||||
def title
|
||||
node.xpath("title").text
|
||||
end
|
||||
|
||||
@@ -29,7 +29,8 @@ module WordPressImport
|
||||
end
|
||||
end
|
||||
|
||||
def to_rails
|
||||
# blog_slug is used to identify which blog this import is from
|
||||
def to_rails(blog_slug)
|
||||
|
||||
user = ::User.find_by_wp_username(creator)
|
||||
|
||||
@@ -37,34 +38,24 @@ module WordPressImport
|
||||
raise "User with wp_username #{creator} not found"
|
||||
end
|
||||
|
||||
post = ::Post.find_or_initialize_by(:id => post_id, :slug => post_name)
|
||||
|
||||
post.assign_attributes(
|
||||
post = ::Post.create({
|
||||
:wp_post_id => post_id, :slug => post_name,
|
||||
:user_id => user.id, :title => title,
|
||||
:created_at => post_date,
|
||||
:published_at => publish_date)
|
||||
# :body => content_formatted taken care of by translation below
|
||||
|
||||
if post.translations.blank?
|
||||
translation = post.translations.build
|
||||
else
|
||||
translation = post.translations.first
|
||||
end
|
||||
|
||||
translation.locale = "en"
|
||||
translation.title = title
|
||||
translation.body = content_formatted
|
||||
|
||||
# merge the translation's category list with the wordpress post's
|
||||
translation.category_list |= categories.collect(&:name)
|
||||
# and tags
|
||||
translation.category_list |= tags.collect(&:name)
|
||||
|
||||
translation.save
|
||||
|
||||
post.save
|
||||
:published_at => publish_date,
|
||||
:wp_link => link,
|
||||
:wp_blog => blog_slug,
|
||||
:translations_attributes => { "0" => {
|
||||
:locale => "en",
|
||||
:title => title,
|
||||
:body => content_formatted,
|
||||
# merge the translation's category list with the wordpress post's
|
||||
:category_list => categories.collect(&:name) | tags.collect(&:name)
|
||||
}}
|
||||
})
|
||||
|
||||
if post.errors.blank?
|
||||
puts "Post #{post_name} imported."
|
||||
return post.reload
|
||||
else
|
||||
puts post.inspect
|
||||
|
||||
Reference in New Issue
Block a user