アソブログのログをMovableTypeに流し込む

mt

アソブログが6月で運営終了になるわけですが、
4月頭のメンテでログの保存はできる様になりました。でも、コメント保存なしのcsv形式のみで、とっても不親切。
ログが保存できるようにしたのだけは認めますが、これでは、普通の人は移転先に結局1件1件ログを貼り付けていくしかないわけです。
せめてMT形式でログを吐き出してくれれば、大抵のところはインポートに対応していると思うのだけど。

で、
僕もこのブログにアソブログで書いたものの内アソブログがらみでないものをこっちにインポートしようと思いヘコヘコと変換スクリプトを書いてみました。
へ´Д`)へヘコヘコ

さて、スクリプトはperlで書いてありますのでご利用の環境にperlがインストールされている必要があります。
このスクリプトをご利用になる場合は、関連記事ActivePerlのインストールでActivePerlをインストールして下さい。
また、このスクリプトのご利用は自己責任でお願い致します。

▼アソブログのログをMT形式のログに変換するスクリプト
asoconv.zip – 2.0 KB

1.上記スクリプトをダウンロードして解凍すると下記の様にフォルダが作成されます。asoconv01

2.フォルダを開くとasoconv.plがあると思います。これが変換スクリプトです。asoconv02

3.asoconv.plをメモ帳などのテキストエディタで開くと上の方に下記の様な設定部分があります。
好みに応じて設定を変更して下さい。

$STATUS
は記事の公開・未公開を指定する事ができます。
とりあえず読み込む分には未公開で読み込んで大丈夫なら個々に公開していくというのが望ましいかなとおいらは思っております。
いきなり公開しちゃう場合はDraftをPublishに書き換えてください。

$AUTHOR
は記事の投稿者IDですとりあえずasoblogと設定してありますので、
そのままにするか好みや移行先の環境に合わせて書き換えてください。

@exclude
は除外カテゴリです。移行先に移行したくない記事をカテゴリ単位で指定できます。とりあえず僕の趣向にあわせて設定されています。
アソブログイベントとか、アソブログのゲーム系のカテゴリは移行先にはいらないと思われるのでこれらを除外カテゴリとしています。
好みに合わせて書き換えてください。何も除外しない場合は”(“から”)”の間を空にしてして下さい。

#—-設定ここから—————————-

#記事 公開:Publish 未公開(下書き):Draft
$STATUS = ‘Draft’;
#投稿者ID
$AUTHOR = ‘asoblog’;
#除外カテゴリ(変換後のログに含めたくない記事のカテゴリを指定)
@exclude = (
‘アソブログイベント’,
‘ルーレット’,
‘パチンコ’,
‘パズル’,
‘ミニゲームシゲコレ’,
‘オセロ’,
‘麻雀’,
‘アソブログ全般’,
‘7ならべ’,
‘つぶやき’,
);

#—-設定ここまで—————————–

設定の修正が完了したら、保存してください。
めんどくさい場合は設定はすっ飛ばしてとりあえず使ってみてもいいかと思います。

4.asoconv.plと同じ場所に、アソブログからダウンロードしたcsv形式のログをコピーします。asoconv03

5.そしたら、asoconv.plをダブルクリックするか、マウスの右ボタンのメニューで開くを選択して、スクリプトを実行します。
するとDOS窓が開いて処理中の様子が表示されますのでこの画面が閉じるまで少々お待ちください。ヽ(´ー`)ノ
asoconv04

6.DOS窓が閉じると完了です。見るとasoblog.txtができていると思います。これがMovable
Typeで読み込みできる形式のログです。asoconv05

7.あとは、Movable Typeのインポートログ形式で読み込んでください。下記はMovable
Typeでの読み込みの例です。

名称未設定-3

管理画面の読み込みで読み込み指定

名称未設定-1

 

読み込みを開始すると上記の様に読み込まれていきます。完了するとエントリーの画面で確認することができます。

苦労した点
んーCSV形式のファイルの読み込みが苦労しました。CSV読み込みのモジュールとかありそうですけど自分で組んでみました。
ちょっと手抜きな部分があるので他で利用する場合には手直しが必要かと思います。
“の有無とか””の間に”がある場合は””になるとかアソブログのログを処理することに限って言えば必要なさそうな処理もやってたりです。
あとアソブログのログだと改行コードがCRLFのところとLFだけのところがあったりではまりました。(´・ω・`)

あとは、文字コードですね。
ShiftJISで最初吐き出してましたけどShiftJISのままMTに読み込ませると特殊文字が必ず文字化けします。で、
MTはUTF8ベースで動いているようなのでShiftJis→UTF8に変換すればいいんじゃないかと思って変換したんですが変換時にやっぱり特殊文字が文字化けします。
回避する方法がないかなーと思っていろいろ調べたけど判りませんでした。w(え

で、色々試行錯誤した結果、
EUCに変換してからUTF8に変換することで文字化けなくログをUTF8で出力することができる様になりました。でも、今考えてみると、
EUC形式で吐き出してインポートすれば普通にいけたんじゃね?と思っております。(´・ω・`)

未熟なソースで恥ずかしいのでえらい人はあんありソース見ないで下さいね。(はーと

関連記事:
ActivePerlのインストール
アソブログの画像を自動でダウンロードする

タグ :