Xeebi

home categories feeds

Evernote web clipper で特定サイトからのクリップで特定 tag を付けたい

普段使いのブラウザは Firefox, evernote web clipper は大変便利に使っている. こいつには smart filling といって tag とか notebook を自動で埋めるという機能があるんだが,

smart filling

これの挙動が外から見えなくて若干気持ち悪いのと,学習してもらうんじゃなくて最初から自分である程度 configure したいという需要があった.例えば

で,ちょっと前から自分で拡張書く妄想とかしてたんだけど,今冷静に考えてみれば手許で動いている web clipper のコードにちょっと手を加えるのがどう考えても圧倒的に楽.

求めるコードはどこにあるかというと,多分システムにもよるが僕のでは ~/.mozilla/firefox/[profileの名前っぽいなんか].default/extensions/foobar/ あたり. foobar のところはパッと見ではわからない感じになっているので ag evernote とかして探すとよいでしょう.

でまあそこから tag とか smart とか色々で grep しながら眺めたり掘ったりしていくと, 例えば chrome/content/common/libs/evernote/FF/Popup/FFQuickNoteController.js に行き着いたりします. 全体の構造はまだ全然つかめてないのでなんとも言えんのですが,こんな感じのコードがあって

if ( smartFillingEnabled == Evernote.Options.SMART_FILLING_ENABLED_OPTIONS.ALL || smartFillingEnabled == Evernote.Options.SMART_FILLING_ENABLED_OPTIONS.TAGS ) {
    if ( data && data.tags && data.tags.list && data.tags.list.length > 0 ) {
      for ( i = 0; i < data.tags.list.length; ++i ) {
        this._tagControl.addTag( data.tags.list[i].name );
        anythingSelectedBySmartFilling = true;
      }
    }
  }

みたいな感じの処理をしているところがあって,まあおおよそこのあたりでは tag が足されたりしているわけだ.

というわけで,このあたりにちょっとこういうのを足してみる

var this_url = this._popup.getTabUrl();
var regex_stackoverflow = /https?:\/\/stackoverflow.com\/.*/;
if (regex_stackoverflow.test(this_url)){
  this._tagControl.addTag("stackoverflow");
}

ここに入れるのがどのくらい綺麗なのかはともかく,とりあえずこれで stackoverflow から clip するときには自動でタグがつくようになりました.良かったですね.