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のクライアント経由でアップロードしてみたよ。