«前の日記(2011-04-30 (土)) 最新 次の日記(2011-05-12 (木))»  

まちゅダイアリー


2011-05-07 (土)

Evernote経由で日記を更新

先日の日記に書いたとおり、Evernoteクライアントから日記を更新するRailsアプリを書いた。 このアプリは、Evernote上のノートブックから特定のタグが付いているノートを取得し、その内容をtDiaryの日記へ反映するというもの。

Evernoteをクライアントにするメリット

下書きを自動保存してくれる、端末を選ばない、など。 どこからでも日記を書けるようになるのは嬉しい。

今後の課題

今は日記の追記のみに対応しているので、日記を更新できるようにしたい。 特に1日の日記に複数セクションが含まれる時の扱いが、ちょっと面倒そう。  それに、Webブラウザ上で編集してしまうと、Evernote側に反映されないのでアウト。   また、Evernoteに添付した画像を展開できるようにしたい。  基本的にスマートフォンからの更新目的なので、複雑なWiki記法への変換までは不要かな。

Herokuの無料プランだとcronをdailyでしか動かせないので、更新までのタイムラグも課題。

仕組み

Evernoteからのノートの取得にはEvernote APIとOAuthを使っている。 Evernoteのノートデータは専用のXML形式なので、XSLTを使ってWiki形式(というかplain text)に変換している。Masatomo Nakano Blogが参考になった。 tDiaryへの更新はposttdiary.rbを参考にして、Net::HTTPを使って更新用のフォームへPOSTしている。 なので、Basic認証用のIDとパスワードをRailsアプリ側に記憶させないといけない。

Railsアプリは heroku + MongoHQ の環境で動かしている。 フレームワークはRails3, ユーザ認証はdevise + omniauth, テンプレートエンジンはhaml, データベースはmongoid と、どれも初めて使ったので最初は時間かかった。 でも、慣れればちょっとしたアプリなら手早くアプリを作れそう。

この日記もEvernoteのクライアント経由でアップロードしてみたよ。