Skip to content

Instantly share code, notes, and snippets.

@djmaze
Forked from hechien/export_wp.rb
Last active December 12, 2015 07:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save djmaze/4735150 to your computer and use it in GitHub Desktop.
Save djmaze/4735150 to your computer and use it in GitHub Desktop.
# RAILS_ENV=production bundle exec rails runner ./script/wp_export.rb >! blog.wxr
# Require nokogiri in Gemfile here
site_link = "http://tersesystems.com/"
site_name = "Terse Systems"
builder = Nokogiri::XML::Builder.new do |xml|
xml.rss('version' => "2.0",
'xmlns:content' => "http://purl.org/rss/1.0/modules/content/",
'xmlns:wfw' => "http://wellformedweb.org/CommentAPI/",
'xmlns:dsq' => "http://www.disqus.com/",
'xmlns:dc' => "http://purl.org/dc/elements/1.1/",
'xmlns:wp' => "http://wordpress.org/export/1.0/") do |xml|
xml.channel do |xml|
xml.title site_name
xml.link site_link
xml.language "en-us"
xml.ttl "40"
xml.description ""
articles = Article.find(:all)
articles.each do |a|
xml.item do |xml|
xml.title a.title
xml.content("Hello world")
xml.pubDate a.published_at.rfc2822
xml.link "#{site_link}blog/#{a.published_at.strftime("%Y/%m/%d")}/#{a.permalink}"
xml.guid "urn:uuid:#{a.guid}", "isPermaLink" => "false"
author = a.user.name rescue a.author
xml.author author
xml['dc'].creator author
for category in a.categories
xml.category category.name
end
for tag in a.tags
xml.category tag.display_name
end
xml['wp'].post_id a.id
xml['wp'].post_date a.published_at.strftime("%Y-%m-%d %H:%M:%S")
xml['wp'].comment_status 'closed'
xml['wp'].ping_status 'closed'
xml['wp'].post_name a.permalink
xml['wp'].status 'publish'
xml['wp'].post_parent '0'
xml['wp'].post_type 'post'
for comment in a.comments
xml['wp'].comment do |xml|
xml['wp'].comment_id comment.id
xml['wp'].comment_author comment.author
xml['wp'].comment_author_email comment.email
xml['wp'].comment_author_url comment.url
xml['wp'].comment_author_IP comment.ip
xml['wp'].comment_date comment.published_at.strftime("%Y-%m-%d %H:%M:%S")
xml['wp'].comment_content comment.body
xml['wp'].comment_approved '1'
xml['wp'].comment_parent '0'
end
end
end
end
end
end
end
puts builder.to_xml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment