Amazonの商品ページから市川市図書館へリレー検索するGreaseMonkeyスクリプトを書いてみた

最近ちょっと値の張る書籍を続けて買う必要に迫られました。

こんな時図書館に蔵書があるかどうか簡単に調べられたら良いなあと思ったんですが、そういえば以前におとなの図書館活用術【Amazon編】 - ITmedia エンタープライズという記事があったのを思い出したので、早速試しにスクリプトを書いてみました。

と言ってもただ単に更新:Amazonの検索結果から品川区・東京都区内・千葉市図書館の蔵書を調べる!: おとうさんのつれづれLifehack(ライフハック)で公開されているスクリプトhttps://addons.mozilla.org/ja/firefox/addon/3829を使って眺めた結果でさらっと書き換えただけですw

5分ででっちあげたので、ソースコードが美しくないのはご勘弁を。

使い方は、↓のソースコードを適当なテキストエディタにコピー&ペーストしてファイル名を"ichikawa_city_lib.user.js"とでもして保存した後(拡張子は必ず"user.js"にする事)、Firefoxにドラッグ&ドロップすればオッケーです。

当然の事ながら、事前にGreaseMonkeyのインストールを行っておいてくださいね。

// ==UserScript==
// @name          Amazon Ichikawa City Lib linky
// @namespace     
// @description   Lookup from Amazon book listings.
// @include       http://*.amazon.*
// ==/UserScript==

libsearch();

function libsearch() {
	// mainmatch = window._content.location.href.match(/\/(\d{9}[\d|X])\//);
	var href = document.location.href;
	var index_1 = href.indexOf('product');
	var index_2 = href.indexOf('dp');
	var asin = "";
	
	if (index_1 > 0) {
		var asin = href.substring(index_1 + 8,index_1 + 18);
	} else if (index_2 > 0) {
		var asin = href.substring(index_2 + 3,index_2 + 13);
	}

	if (asin.match(/(\d{9}[\d|X])/)){
		var header = document.evaluate("//div[@id='priceBlock']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		if (header) {
			var spl_link = document.createElement('a');
			spl_link.setAttribute('href', 'https://opac.city.ichikawa.chiba.jp/cgi-bin/Sopcsken.sh?p_mode=1&g_mode=0&ryno=&c_key=&c_date=&list_cnt=&mad_list_cnt=&brws=ncdet&ktyp9=shk%7Catk%7Cspk%7Ckek&itfg9=c&ser_type=0&stkb=&sgid=spno&srsl4=4&srsl5=5&srkb=2%7C5%7C2%7C5%7C2%7C5%7C2%7C5%7C2%7C5%7C&srsl1=1&srsl2=2&srsl3=3&ktyp0=shk%7Cser&key0=&itfg0=c&ron0=a&ktyp1=atk&key1=&itfg1=c&ron1=a&ktyp2=spk&key2=&itfg2=c&ron2=a&ktyp3=kek&key3=&itfg3=c&ron3=a&ktyp4=kjk&key4=&itfg4=c&tgid=tyo%3A010A&tkey=' + asin + '&kkey=&skey=&srkbs=0%7C8%7C9&srkbs=1&srkbs=3&srkbs=4&srkbs=6&lckns=01&lckns=02&lckns=03&lckns=04&lckns=05&lckns=06&lckns=07');
			spl_link.setAttribute('title', 'To Ichikawa Library');
			spl_link.innerHTML = '</br><span style=\"font-size:90%; background-color:#ffffcc;\">&raquo; &#x5e02;&#x5ddd;&#x5e02;&#x56f3;&#x66f8;&#x9928;</span>';
			header.parentNode.insertBefore(spl_link, header.nextSibling);
		}
	}
}

自分で言うのも何ですが、結構便利ですねwやみつきになりそうです。

関連記事

玄箱壊れました

自宅で長いこと使ってた玄箱が壊れました。

どうも最近玄箱の調子が悪く、Sambaでファイル転送できなくなったりしたのでfsckしたら、案の定ファイルシステムに不整合があったわけです。
で、玄箱を分解するのも面倒なので、よせばいいのにアンマウントせずにfsckを実行しちゃったわけです。


何日かはとりあえずそれで動いてるけど、数日するとまた調子が悪くなる。
またまた懲りずにfsckかける、って事を何回か繰り返したあげく、ほとんどのサービスが起動しなくなりました。
かろうじてtelnetはできるって感じです。
さすがにこれはまずいかな〜と思い、玄箱からハードディスクを取り出し別のLinuxマシンに繋いでfsckしてから再起動しても正常に動かない。。。


こりゃーホントに壊れたかも。。。


今までかき集めた200GB近いファイルがすっ飛んでたら、と思うとさすがにちょっとビビります。


別のLinuxマシンに繋いで調べてみると、システムがインストールされてるパーテーションはリードオンリーになっちゃってるものの、Samba用のパーテーションは無事だったのでとりあえず一安心。
設定ファイルはサルベージできそうだし、システムは再セットアップすればいっか。


Sambaの領域も手狭になってきたし、ちょうど良い機会なのでハードディスクを取り替える事にしました。
しかしこれがまた新たな苦労の種になろうとは、この時はまだ思い及ばないのでした。