fuji70の日記 このページをアンテナに追加 RSSフィード

2008-05-13

Amazonのページで大田区立図書館の蔵書がわかるGreaseMonkey

はじめて日記開設したらものの15分ではじめてのTBをつけてもらえた。すごいですね、ネットのスピード感。

本は買う派?借りる派?

ずっと買う派だった私です。ですが、この4月より東京都大田区の図書館がネット予約できるようになったので利用してみたところ、便利便利!!

近くの図書館で受け取れるし、準備ができるとメールが届くし。すでにネット予約で図書館を利用できていた地域のみなさんはこんな利便性を教授していたのですか!くやしい気持ちが湧き上がってきますが、今は私たちの地域もその一員です。やったー!

でも、でも、いちいち検索するのはめんどくさい。。。

というわけで、Amazonの商品ページに図書館へのリンクをつけるGreaseMonkeyを書きました。しかも、蔵書があるかないかも商品ページ内のリンク表示でわかっちゃいます。

配布の方法がよくわからなかったのと、初めてのTBで後押ししていただいたので、下記に貼り付けて晒しちゃいますね。あまり長くは無いので、ご容赦を。

※追記2008-07-19:公開場所を以下に変更しました。それに伴い、以下の記述を修正しています。また、以下で晒しているスクリプトは、本エントリー時点のものです。追記時点では最新版と同じですが、今後は変更の可能性がありますのでご注意を。

 ※リンク切れがあったときは、(fuji70fuji70)から辿ってください。

※追記2008-05-14 : SkyDriveで公開してみました。不具合あれば教えてください。

※追記2008-06-30 : こちらで公開しなおしました。こちらでもうまくインストールできない場合は連絡いただけると幸いです。

うまくインストールできない場合は、下記のソースを、amazon2ohtalib.user.js とでも名前をつけて、GreaseMonkey導入済みのFirefoxにドラッグ&ドロップしてインストールしてください。

// ==UserScript==
// @name           Amazon2OhtaLibrary
// @version        0.3
// @namespace      http://d.hatena.ne.jp/fuji70/
// @description    Ohta Library Lookup from Amazon book listings.
// @include        http://www.amazon.co.jp/*
// ==/UserScript==

(function () {
  var isbn13 = getISBN13();
  var block = getBlock();
  if (!isbn13 || !block)
    return;
  
  // --->> local rules
  ltitle  = '\u5927\u7530\u533a\u7acb\u56f3\u66f8\u9928';
  llinkname = ltitle + '\u304b\u3089\u691c\u7d22'
  geturl  = 'http://www.lib.city.ota.tokyo.jp/clis/search?ISBN=' + isbn13;
  //          None,       Exist
  colors  = ["#000099", "#000099"];
  backs   = ["#ccccff", "#ffcccc"];
  coments = ['\u306a\u3057 ', '\u8535\u66f8\u3042\u308a '];
  function checkExist(resp) { // 0:None, 1:Exist
    var isExist = resp.responseText.match(/MSGBOLDL/) ? 0 : 1;
    return isExist;
  }
  // <<---

  GM_xmlhttpRequest({
    method : 'GET',
    url : geturl,
    onload : function(resp) {
      var isExist = checkExist(resp);
      var link = document.createElement('a');
      link.setAttribute('target', '_blank');
      link.setAttribute('href', geturl );
      link.setAttribute('title', ltitle);
      link.innerHTML =
        '<br />' +
        '<span style=\"font-size:14px; ' + 
        'color:' + colors[isExist] + 
        '; background-color:' + backs[isExist] + '\">' +
        '&raquo; [<b>' +
        coments[isExist] + 
        '</b>] ' +
        llinkname +
        '</span>';
      block.parentNode.insertBefore(link, block.nextSibling);
    }
  });

  function getISBN10() {
    if (!document.body.parentNode.innerHTML.match(/<li><b>ISBN\-10:<\/b>\s(\d{9}[\dX])<\/li>/))
      return false;
    var isbn10 = RegExp.$1
    return isbn10;
  }

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

  function getBlock() {
    var block = document.evaluate(
      "//b[@class='sans']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    return block;
  }

})();

もし動作不具合がありましたら教えてくださいね。

動作画面をアップしたいのですが、まだはてなダイアリーに不慣れでできていません。


つくるのに参考にしたページ

2007-08-16 - へたっぴ日記

2008-04-07 - kmonの日記

こんなやり方でスクリプトを作っています - natu_nの日記

参考にさせていただき、ありがとうございました。

tt 2008/07/18 14:26 スクリプト、いただきました。どうもありがとうございます。
ただ、
”大田区立図書館用の蔵書判定スクリプト”のリンク先のファイルは
千代田区立図書館用のスクリプトになっており、
本文中の内容と微妙に違うようなのですが。。?

fuji70fuji70 2008/07/19 22:33 tさん、コメントありがとうございます。

確かに間違っていたようです。プログラム公開のように固定的なアドレスにおくべきものは、一カ所に集めた方が良いと考え、公開場所を確定しました。

今回のご指摘、本当にありがとうございました。

S.MuraiS.Murai 2009/12/20 04:59 fuji70さん、はじめまして。ずっと大田区立図書館の蔵書判定スクリプトを便利に利用させていただいています。ありがとうございます。

ところで先日Google Chromeを導入してみたのですが、こちらのスクリプトが正常に動作してくれません。東京都区内(22区+都立)図書館横断蔵書検索(http://otou-no.cocolog-nifty.com/lifehack/script/tokyolib.user.js)は動いているのですが、どこか手直しすれば利用できるようになるのでしょうか? あるいはそちらでは問題なく動作して、私の環境の問題でしょうか?

よろしければお助けいただけると助かります m(_ _)m。

fuji70fuji70 2009/12/20 08:54 S.Muraiさん,こんにちは.コメントありがとうございます!

私の蔵書判定スクリプトは,Firefox(Mac)では動作確認をしていますが他の環境では未確認です.実績からするとFirefox(Win)でも大丈夫みたいですが.

Chromeは使いやすいですか? 最近のChromeは触っていないのでどれだけ進化したか興味あります.S.Muraiさんが使われているのはChromeのWindows版ですか,Mac版ですか?

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証