Amazonの商品ページからブックオフオンラインの中古価格を確認するGreasemonkeyスクリプト

表示形式は図書館蔵書検索にあわせてみた。色だけブックオフ風で…。

ソース

// ==UserScript==
// @name           Amazon2BOOKOFFOnline
// @namespace      http://d.hatena.ne.jp/hetappi/
// @description    BOOKOFF Online Lookup from Amazon book listings.
// @include        http://www.amazon.co.jp/*
// ==/UserScript==

(function () {
  if (!document.body.parentNode.innerHTML.match(/<li><b>ISBN\-13:<\/b>\s(\d{3})\-(\d{9}[\dX])<\/li>/))
    return;
  var isbn13 = RegExp.$1 + RegExp.$2;

  var block = document.evaluate(
    "//div[@id='priceBlock']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  if (!block)
    return;

  GM_xmlhttpRequest({
    method : 'GET',
    url : 'http://www.bookoffonline.co.jp/feed/search,st=u,q=' + isbn13,
    onload : function(resp) {
      var link = document.createElement('a');
      link.setAttribute('target', '_blank');
      link.setAttribute('href', 'http://www.bookoffonline.co.jp/display/L001,st=u,q=' + isbn13);
      link.setAttribute('title', 'To BOOKOFF Online');
      link.innerHTML =
        '<br />' +
        '<span style=\"font-size:14px; color:#000099; background-color:#ffff66;\">' +
        '&raquo; [<b>' +
        (resp.responseText.match(/\u4e2d\u53e4\u8ca9\u58f2\u4fa1\u683c\uff1a(\uffe5[\d,]+)/)
          ? '\u2605\u5728\u5eab\u3042\u308a ' + RegExp.$1 + '\u2605' : '\u5728\u5eab\u306a\u3057...') +
        '</b>] ' +
        '\u30d6\u30c3\u30af\u30aa\u30d5\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u4e2d\u53e4\u691c\u7d22' +
        '</span>';

      block.parentNode.insertBefore(link, block.nextSibling);
    }
  });
})();