-
-
Save djmaze/4735150 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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