def self.process(options)
dbname = options.fetch("dbname")
user = options.fetch("user")
pass = options.fetch("password", "")
host = options.fetch("host", "127.0.0.1")
section = options.fetch("section", "1")
table_prefix = options.fetch("prefix", "jos_")
db = Sequel.mysql2(dbname, :user => user, :password => pass, :host => host, :encoding => "utf8")
FileUtils.mkdir_p("_posts")
query = "
select
ep.`title`, `permalink` as alias, concat(`intro`, `content`) as content, ep.`created`, ep.`id`, ec.`title` as category, tags
from
#{table_prefix}easyblog_post ep
left join #{table_prefix}easyblog_category ec on (ep.category_id = ec.id)
left join (
select
ept.post_id,
group_concat(et.alias order by alias separator ' ') as tags
from
#{table_prefix}easyblog_post_tag ept
join #{table_prefix}easyblog_tag et on (ept.tag_id = et.id)
group by
ept.post_id) x on (ep.id = x.post_id);
"
db[query].each do |post|
title = post[:title]
slug = post[:alias]
date = post[:created]
content = post[:content]
category = post[:category]
tags = post[:tags]
name = format("%02d-%02d-%02d-%s.markdown", date.year, date.month, date.day, slug)
data = {
"layout" => "post",
"title" => title.to_s,
"joomla_id" => post[:id],
"joomla_url" => post[:alias],
"category" => post[:category],
"tags" => post[:tags],
"date" => date,
}.delete_if { |_k, v| v.nil? || v == "" }.to_yaml
File.open("_posts/#{name}", "w") do |f|
f.puts data
f.puts "---"
f.puts content
end
end
end