Evernote + Tombloo をでっち上げる件
いろいろでっちあげたもの連続ポストしようと思う。
Tomblooに良くお世話になっているのですが、EvernoteにPOSTするメニューが無かったぽいので
こちらと
http://d.hatena.ne.jp/Constellation/20080726/1217088917
tombloo 本家を参考に
http://wiki.github.com/to/tombloo
Evernote対応のスクリプトを作ってみますた。基本的にEvernoteのbookmarkletをベースに作ったので、regular, quote, link 位しかまともに動かないと思います。
完全に雰囲気だけで作ったので、へんな書き方になってると思いますがご容赦ください。ついカッとなってやった。反省はしてない。
下記スクリプトを「20_Evernote.js」というファイル名で、ローカルに保存して、Firefoxのプロファイルの,tombloo用の拡張スクリプトを置くフォルダに設置してFFを再起動すれば、tomblooのメニューにEvernoteが表示されると思います。
僕のWinXPマシンではこんな感じのフォルダです。
C:\Documents and Settings\[USERNAME]\Application Data\Mozilla\Firefox\Profiles\[PROFILENAME]\tombloo\script [USERNAME] => ユーザーアカウント名 が入ります [PROFILENAME] => ランダムな文字列っぽいプロファイル名が入ります。
実行スクリプトな。
if(typeof(models)=='undefined') this.models = models = new Repository(); models.register(update({ name : 'Evernote', ICON : 'http://www.evernote.com/about/media/img/favicon.ico', POST_URL : 'http://www.evernote.com/clip.action', check : function(ps){ return (/(regular|quote|link|conversation|video)/).test(ps.type) && !ps.file; }, post : function(ps){ var Evernote = this; return Evernote.getToken(ps).addCallback(function(token){ var content = { notebookGuid: token.notebookGuid, __fp: token.fp, _sourcePage: token.sourcePage, url: (ps.itemUrl) ? ps.itemUrl : 'no url', title: (ps.item) ? ps.item : 'no title', comment: ps.description, body: ps.body, tags: ps.tags ? ps.tags.join(',') : '', fullPage: ps.body ? 'true' : 'false', saveQuicknote: 'save', format: 'microclip' }; return request(Evernote.POST_URL, { redirectionLimit : 0, sendContent : content, }); }); }, getAuthCookie : function(){ return getCookieString('evernote.com', 'auth'); }, getToken : function(ps){ var Evernote = this; switch (this.updateSession()){ case 'none': throw new Error(getMessage('error.notLoggedin')); case 'same': case 'changed': var self = this; return request(Evernote.POST_URL, {sendContent: {format: 'microclip', quicknote: 'true'}}).addCallback(function(res){ //noteBookGuide if(res.responseText.match(/selected="selected" value="(.*)"/)){ self.noteBookGuide = RegExp.$1; }else{ throw new Error(getMessage('error.notLoggedin')); } //_sourcePage if(res.responseText.match(/"_sourcePage" value="(.*)"/)){ self.sourcePage = RegExp.$1; }else{ throw new Error(getMessage('error.notLoggedin')); } //__fp if(res.responseText.match(/"__fp" value="(.*)"/)){ self.fp = RegExp.$1; }else{ throw new Error(getMessage('error.notLoggedin')); } return self; }); } }, }, AbstractSessionService));
本当はGitHub経由で、本家に取り込んでもらえるようにするのが筋だと思うけど、まだgit含め使い方が良く分からんかったのですよ。。。しょぼくてすいません。
http://d.hatena.ne.jp/brazil/20080804/1217856808
追記:2010/01/10 下記id:bardiche-assaultさんより頂いたfaviconのURLを上記ソース上で変更いたしました。ご連絡ありがとうございます。