Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

Asamasi ID Filter その後

以前晒した "Asamasi ID Filter" について、amazon の商品ページの URL がなんか変更されてるなーというのは知ってたけど、このスクリプトを自分で使ってる分には困る場面があんまりなかったので放置してたのですが、どうにかしろよ!といわれたので、激しくいまさらですが対応しました。

// ==UserScript==
// @name          Asamasi ID Filter
// @namespace     http://antipop.gs/ns/greasemonkey/asamasiidfilter
// @description   convert malicious things to something good
// @include       *
// @exclude       http://www.amazon.co.jp/exec/obidos/tg/browse/-/896244/*
// @exclude       http://www.amazon.co.jp/exec/obidos/tg/browse/-/10667101/*
// @exclude       http://www.amazon.co.jp/exec/obidos/tg/browse/-/927712/*
// ==/UserScript==

(function() {

    var ids = new Array(
        'foo-22',
        'bar-22',
        'baz-22',
//      'antipop-22',
    );

    var links   = document.links;
    var pattern = '^http://(?:www.amazon.co.jp/(?:exec/obidos/ASIN/|o/ASIN/|gp/product/)|d.hatena.ne.jp/asin/)([^/]+)/?.*';
    var regexp  = new RegExp(pattern, 'i');

    for (var i = 0, length = links.length; i < length; i++) {
        if (links[i].href.match(regexp)) {
            links[i].href = new Array(
                'http://www.amazon.co.jp/exec/obidos/ASIN/',
                RegExp.$1,
                '/ref=nosim/',
                ids[Math.floor(Math.random() * ids.length)]).join('');
        }
    }
})();