Firefox Add-on RSS Ticker用広告フィルタ

FirefoxのAdd-on、RSS Tickerを長らく愛用しています。RSSフィードの更新を素早くお知らせしてくれ、かつ邪魔にならない*1ので、とってもお勧めです。Sleipnirでもこういうのあったけどね。

さて、そうは言っても、このAdd-onで不満な点がひとつだけある。RSSフィードのフィルタリングがされないんです。大抵のRSSリーダはこうした機能が入っていますが、残念ながらRSS Tickerは対応していません。Add-on作者のサイトでも、フィルタリング機能追加の要望は挙がっているけど、応えてくれない様子。それなら自分で追加するしかねぇ!ってことで簡易なものではありますが、その方法をご紹介します。
念のためですが、無保証です。その前提で読み進めてください。動作確認したRSS Tickerのバージョンは3.0.3〜3.0.4です。

Add-onがある場所の特定

Add-onがあるフォルダを探してください。おそらくWindowsXPだと、デフォルトで

C:\Documents and Settings\<ユーザー名>\Application Data\Mozilla\Firefox\Profiles\<英数字>.default\extensions\

に、導入したAdd-onのフォルダがいくつかあると思います。そのどれかがRSS Tickerのフォルダなのですが、それはがんばって探してください。たぶんフォルダ名は環境によって違ってくると思うので。僕の場合↓こんな感じ。

chrome\content\ticker.object.jsを適当なテキストエディタで開いてください。これが本体です。

コードを追加

ticker.object.jsの750行あたりに、↓こんな記述があると思います。

var itemIsVisited = this.history.isVisitedURL(feedItems[j].uri, feedItems[j].id, 1);

if (itemIsVisited && this.hideVisited){
	continue;
}

このすぐ下に追加する形で、↓こんな感じに。

var itemIsVisited = this.history.isVisitedURL(feedItems[j].uri, feedItems[j].id, 1);

if (itemIsVisited && this.hideVisited){
	continue;
}
				
// Ad Filter
if (feedItems[j].label.match(/^((AD:\s)|(PR:\s)).*$/)){
	continue;
}

これで「AD: 」から始まるアイテム、「PR: 」から始まるアイテムを非表示にできます。ticker.object.jsを保存して、Firefoxを再起動し試してみてください。

ちなみに

僕はJavascriptは全然わからないのであれですが、このAdd-on本来の動作だと、既読アイテムはDBに保存して表示しないようにしているようです。ですが上記の方法ではDBに保存していません。が、特に問題は起こらないはずです。広告は普通のアイテムの間にランダムで入ってくるので、スタックすることもないでしょう。もし気になるなら、フィードを「Mark Feed as Read」してください。

*1:サイドバー表示のだとサイドバー開くの面倒!