Evernoteへの集約を自動化することを考える

なんでも「Evernote」に入れることを基本とした場合に、手動で入れているとかなり面倒です。

一番目どうなのはクライアントの都合で、「このクライアントだとボタン一つでEvernoteに送信できるけどこっちの環境だと出来ない」という自体になる事です。

Evernoteに入れて置くデータのうち自分で作成する物以外の資料的なもの(特にWebクリップ)に焦点を当てて考えてみました。実際に、データの入力の候補としては

  1. 通常にWebをブラウジングしていて
  2. RSSリーダ(具体的には、Google Reader)を見ていて
  3. Twitterを見ていて

が主な情報源です。それぞれ現状サービスとしては以下の機能でマーキングしています。

  1. Web → Deliciousへブックマーク
  2. RSSリーダ → コメント付きノート(別の経路でTweet)、スター、共有
  3. Twitter → ファボ(スター)

クライアントの機能によってはRSSリーダなどでDeliciousへ登録してくれるものもありますが対応はまちまちなのであっちに入れたり、こっちに入れたりとなっています。

クライアントに依存せず、各機能でスターなどを登録時に自動的にメール送信経路でEvernoteに登録する方法を考えます。まだ個人的に試している段階なので公開出来る段階ではないのですが

  1. Yahoo Pipe により (a) Delicious (b) Google Readerの共有/コメント (c) Twitterのスター 等の情報をRSSとして取り込みユニークな情報に加工
  2. 取り組んだデータを、自作のメール送信サイトにリクエストする(Instapaper経由で情報を取得してメールで特定のアドレス(m.evernote.com)に送信)モジュールを中に組み込む
  3. 上記までの処理を最終的にはRSSとして出力
  4. 出力されたRSSを定期的に実行するため、Google Readerで購読をしておく(一応Instapaper経由の情報をDescriptionに入れて内容を見れるようにする)

という流れで作成してみました。

これにより、各機能でコメントなりスターなりをつけると定期的(Google readerのクルーラーの間隔)でEvernote宛にメールが送られるという事になります。

2010.02.11 追記
”さくらインターネットのスタンダートプラン”なんですが上記の処理を動かすとYahoo Pipeから正常にデータが取得出来ません(何割かのデータが503エラーになってしまいます)パフォーマンス的に考えないと使いもになりませんね。いまのままではかなりデータが漏れてしまって逆に面倒な事に。

蛇足

関係ないですが、Google App Engineを利用して作ろうと思ったのですがメール送信機能は結構コストが高いようなのでやめておきました。またYahoo PipeからGoogle App Engineへは接続出来ないみたいです。結局このブログのサイトの中でしようと思っていますがそれも大丈夫なのか不安大丈夫じゃなさそうだ。

おまけで Google App Engine で実施する場合の (2)のソース。初めてpythonを触りましたが面白そうでした。使えなくて残念。

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
import urllib
targeturl = ""
to = ""

class MainHandler(webapp.RequestHandler):

  def get(self):
    global targeturl
    global to
    targeturl = self.request.get("u")
    to        = self.request.get("t")
    self.response.out.write('Web clip using Instapaer is sent with mail. ')

def main():
  global targeturl
  global to
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  util.run_wsgi_app(application)
  url="http://instapaper.com/m"
  params = urllib.urlencode({'u':targeturl})
  f = urllib.urlopen(url + '?' + params) 

  body = ""
  line = f.readline()
  while line:
    body = body + line
    line = f.readline()
  f.close

  start = body.find('title')
  end = body.find('/title')
  title = body[start+len('title'):end]

  message.subject = title
  message.to = to
  message.body = body
  message.html = body
  message.send()

if __name__ == '__main__':
  main()
上部へスクロール