だいぶ書いていなかったな。
mediamarkerが終了するということで、遅れながらブクログに移行してみた。
Excel等で編集して移行している人がいたのだが、面倒なので以下スクリプト使ってみた。
メディアマーカーの CSV をブクログ形式にするやつ · GitHub
たぶんこのままだとうまくいかない部分があったので、少し修正して以下のスクリプトを実行した。
mediamarkerから全項目をexport→スクリプトを実行→sjisに文字コード変更→ブクログにimportするという流れ
# -*- coding: utf-8 -*- # # メディアマーカーの CSV をブクログ形式にするやつ # 使い方 # ruby mm2bl.rb /path/to/MediaMarkerExport.csv > output.csv # 参考 # http://d.hatena.ne.jp/Unicellular/20120507/1336411135 require 'csv' path = ARGV.shift raise SystemExit.new 1 unless File.exists? path lines = CSV.read(path) lines.shift lines = lines.map do |l| # 今のmediamarkerの全出力は項目が多くなっているので修正。 # また購入日を登録日に入れていたので、登録日を利用するように修正 _, _, _, _, category, _, _, _, _, isbn, _, _, asin, register_date, _, tag, comment, assess, _, _, _, _, _, state, read_date, _, _ = *l servece_id = 1 state = case state when '未読' then '積読' when '読中' then 'いま読んでる' when '読了' then '読み終わった' else '読みたい' end memo = '' # タグはmediamarkerでは改行だが、ブクログではカンマ tag = tag.split(/[\r\n]+/).join(",") # タグが空だと自動的に何らかの日時がタグに入ってしまうようだ。空の場合はタグにして、管理画面から削除する tag = "タグ" if tag.empty? # read_dateは年-月-日形式だったので統一した。不要だったかも。 register_date = register_date.gsub(%r|^(\d{4})/(\d{2})/(\d{2}).*$|, '\1-\2-\3') [servece_id, asin, isbn, category, assess, state, comment, tag, memo, register_date, read_date] end # 文字コード変換は実施せずに、nkf等で実施する puts lines.map { |l| '"' + l.map { |w| w.to_s.gsub(/"/, '\"') }.join('","') + '"' }.join("\n")