2008-01-17

iPhoneのメモ帳アプリにテキストファイルをインポート/エクスポートするスクリプトを書いた


iPhoneについてるメモ帳(ノート)アプリにテキストファイルからメモを追加したり,メモ内容をテキストファイルに出力するRubyスクリプトを書きました。上の写真は青空文庫からドグラ・マグラのテキストファイルをダウンロードして入れてみたもの。

ソースは以下のMercurialのリポジトリにおいてあります。
使ってみたい人は完全自己責任でやってみてください。

iPhone Note App File Sync: shortlog


私はiPod TouchをJailbreakしてiPhone用実行ファイルを入れてメモ帳を使ってるんですが,これがかなり出来が良い。一覧を最終更新日時でソートしてくれたり,削除するときのアニメーションが超かっこよかったり。

ということで,このメモ帳アプリをどしどし使って行きたいのだけれど,不安なのがデータをエクスポートできないこと。なのでこのスクリプトを作りました。

以下でちょっとだけWindowsでの使い方について書いてみます。

プログラミングが分かる人だけやってください! 上の”Mercurial”って言葉もわかんない人は使っちゃダメよ!

【用意するもの】
・JailbreakしたiPod touch(俺のはファームウェアVer1.1.1)
 無線LANで繋がっててSSH出来るようになってるやつ。
・WinSCP(メモ帳のDBファイルをダウンロードするため)
・Ruby(ワンクリックインストーラ)
・SQLite3(ダウンロードページ

【準備】
・SQLite3を圧縮展開してパスに追加する。
  俺はsqlite-3_5_4とsqlitedll-3_5_4を使った。
・Rubyをインストールする。
・RubyのGemってやつでSQLite3のライブラリをインストールする
  gem install sqlite3-rubyって感じで。
  途中でなんか聞かれるけど,"1. sqlite3-ruby 1.2.1 (mswin32)"ってやつを選んどいた。
・準備はこれでおっけー。

【スクリプト】
・インポート用とエクスポート用があります。
・エクスポート(iphone_note_export.rb
 まずWinSCPでiPod Touchの/var/root/Library/Notes/notes.dbをローカルに落とす。
 スクリプトファイルと同じ場所にnotes.dbを置いて実行。
 タイトルをファイル名としたテキストファイルがばりばり作られます。
・インポート( iphone_note_import.rb
 同じようにnotes.dbをダウンロードして用意しておく。
 スクリプト同じ場所において以下のように実行
 
ruby iphone_note_import.rb テキストファイル.txt

 "テキストファイル"をタイトルとしたメモが作られます。
 あとはWinSCPでiPod Touchのファイルを上書きします。
 メモ帳の日時はテキストファイルの最終更新日時を設定します。



という感じ。まぁMercurialだし,使ってみたい人はhg cloneしていろいろ弄ってみれば良いんじゃないの?
ちなみに初めて書いたRubyスクリプトだから変なところあるかもです。教えてくれたらうれしいかも。

最後に。
写真のドグラ・マグラを一覧から選択して表示させようとしたら,メモ帳君が固まりかけました。つーか「表示させたままにしてホームボタンを押す,他のアプリを起動したあとにメモ帳表示」ってやったら固まりました。iPod touchの電源を入れなおして何とかなったけど。1メモにつき,これぐらいのデータ量が限界みたいなので,ドグラ・マグラは入れないほうが良いですよー。


追記(1月18日):このスクリプトのせいかどうか判然としませんが,これを使い出してからiPod touchをiTunesと同期させると日付時刻が大幅にずれるようになりました。ただしもともとiPod touchにはそういう不具合は報告されてました。そういうことなので,使うかたはよろしく。

追記(3月12日):日付時刻がずれる状況を特定した人のブログを見つけました(via Going My Way
ただのにっき(2007-10-17)

0 件のコメント: