mixiをブログに丸写し、引越ししてみる。
コメントも一緒に行っちゃってるが。不都合ありそうなのは省いてるはず…だけどもまあなにかあったら言ってくれれば消すですよ


こうぽんと書いて終わりならばクールな去り際でカッコいいのだけど、現実はそう甘くなく、むちゃくちゃ要らぬ手順をずんどこ踏みまくった
その迷走の歴史をちょっと記しておく
まずはmixiというもの、ブログと違って日記エクスポート機能がありません。
なので手作業に頼るほかないのですが、このようなツールが開発されておりました。

backup_mixi
http://milk-tea.que.jp/milk-cake/soft/

こちら、日記を一つ一つhtml保存する力技なRubyアプリ
mixiコミュにもフォーラムがあり、日々開発が続けられています
フォトストレージのまるごとバックアップもおk

機能の一つとして「Movabletype形式でのエクスポート」があり、これを用いることでmixi日記を効果的にエクスポートすることが可能になるのです。
てきとーに選んだLivedoor BlogですがMTインポートに対応しているのはありがたい。これで一挙解決

と、は言うものの

いざMTエクスポートを使ってみると、画像が反映されない
いやそれどころか写真を貼った日記では、写真から下の部分が全部消えてしまう。
いみがわからん。なぜだ、なぜ

コミュにはそれらしき情報が大昔にはあるけど、内容は無し
手詰まりである


しかしこちらはRubyで書かれソース公開もされているアプリ
出力されているMT形式のファイルは、覗く限り単純明快もいいところの内容
おそらくは単純な内容の置き換え整形、あるいは内部を読み取って抽出してMTファイルを作っているだけのはず
なら中身を覗いてちょこっと変えれば、せめて文章喪失は免れまいか


うわさのRubyなるものに手を出す日が来ようとは
とりあえずプログラム系にありがちな初心者ユーザーアンフレンドリーっぽさ丸出しの解説サイトを読みふけって環境を揃え、インスコして件のBack_mixiソースファイルを読んでみる

コメントが豊富に振られているのが幸いし、C言語ですらあやうい私のゴミレベルなプログラミング力でもなんとかHTML→MT形式変換のソースっぽい部分を見つけ出すことができた
すなわち、HTMLの該当部分のデータを読み取ってテキストファイルに順次ばっこんばっこん出力し続けるだけのお仕事のよう
文章が喪失する理由は完全にはわからないが、画像貼付けタグの変換部分が機能しそうにない記述なのはわかった
実際のHTMLとだいぶ差があるし多分ここで引っかかってんじゃないかね


とりあえず分からないなりに画像タグ部分をちょろちょろ変えてみて、レッツ起動


syntax error, unexpected kEND, expecting $end


記述を変えただけでシンタックスさんがこんにちわ
どこの文法をミスったのだ。いやいやいや俺のプログラム力のなさたるや

しかし一つ一つ検証しながら実行しても、いつまでも
syntax error, unexpected kEND, expecting $end
が出続ける。しかも指定された行をすっぱり消してみると違う行に現れる
おやこれは字面どおりの構文エラーではなさそうだ
グーグル先生お願いします


Windows環境での開発時の文字コードの云々
http://mywiki.jp/hiroooo000/RoR%81%40%94%F5%96Y%98%5E/Windows%8A%C2%8B%AB%82%C5%82%CC%8AJ%94%AD%8E%9E%82%CC%95%B6%8E%9A%83R%81%5B%83h%82%CC%89%5D%81X/

こんなん出ました
曰く文字コードのエラーだとのこと

こころなしかファッ○ン○ャップと叫ぶのが妥当そうな内容ではあります
国産言語とはかくなるものか

仕方なくTerapadなんかを落としてきてコードを変更し、当該部を書き直す
年、月、日あたりが盛大に化けていました。コメント以外で唯一日本語だしなあ

完了していざ再起動


syntax error, unexpected kEND, expecting $end



コピペ、再変換もだめ
1から書きなおすかと決意してとりあえず書いた、単に「Hello workへ行け」と表示するだけのプログラムでさえ同じものがでる
何度も設定を見直した。文字コードも確認した。ダメだった
なんだそれ。しねばいいのに。まじしねばいいのに。しにたい。しにたい


Rubyは僕を拒んでいるようです。なら仕方ない。こんなこともあるのだきっと



Rubyを繰る資格もないむしかくしゃに落ちぶれたぼく
しかしここで諦めるわけには行かぬ


どのみちRubyソースも使えそうにない丸裸の状態。別にプログラム自作に頼ることもあるまいと、Backup_mixiによって保存されたHTMlをすべて直接文字置換してMTファイル化する手段を模索することに

とりあえずテキストソースの複数ファイルをひとまとめにするフリーソフトは山ほどあるので使用させていただく。


複数テキスト結合
http://www.vector.co.jp/soft/winnt/util/se319087.html


いくらゴミ以下のプログラム力でもHTMLのなんたるか程度は読めるので、あとはひとまとめにされたファイルのタグを全消去なりなんなりしてMT形式に整形すればいいはず
前述の通り、MTエクスポートファイルは
TITLE:
DATE:
-----
BODY:
みたいなクソ単純な構文なのでたぶん行けるはず


まあ結果は予想つくと思うけど、普通の置き換えでやろうったって書き直した方が早いレベルの時間がかかるのは明白。
ちょっと高度なこととして正規表現を用いてみることに

正規表現てのはすなわちアレ、h.*eと検索するとholeでもhereでもhokutoujouhagannkennte-retteでも検索出来るアレ
ていうのは前からちょっと知ってたんだけど、今回は「後方参照」「グループ化」という正規表現基礎の中でも最高位に位置するらしいテクを使う
普通のエディタでは扱えないという中二っぽさも魅力だ。何がだ


つまり
iPhone
iPad
iPod

という文字列に対し、
i(.*)
と検索するとアップルな製品群がすべて引っ掛かるわけだけども、さらにそれを置換する際
Windows\1XP
と指定してやるだけで
WindowsPadXP
WindowsPhoneXP
WindowsPodXP

みたいな林檎信者大激怒な結果にできるというすぐれもの
検索して引っかかった結果を保存して使いまわせると言うことですね

こっちの詳細は知らなかったので勉強してみたら、K2Editorではperl5互換の正規表現が使え、マクロも組めるらしいのでこれを用いることに。
今度はPerlかよ
まあ結局こういうことになるわけだ

とこういう四苦八苦すったもんだの挙句、ようやくここ一年分のMixi記事をエクスポート可能となった次第
なんというかかんというか、勉強は大事ですね
このK2Editor用のマクロファイル、一応とっておくことにしよう

詳説 正規表現 第3版
詳説 正規表現 第3版
クチコミを見る