cxxの日記

2010-06-27

[]Amazonの拡大画像をshareするパッチ 17:57 はてなブックマーク - Amazonの拡大画像をshareするパッチ - cxxの日記

Photo - Amazonを選んだとき、拡大画像がある場合にはそちらをshareします。にひりずむ::しんぷる:Amazonの拡大機能で見れる最大の画像を表示して保存できるブックマークレット書いたを参考にしました。下のリンクからダウンロードして、 {Firefoxのプロファイルフォルダ}/tombloo/script フォルダにコピーした後、Firefoxを再起動してください。

2010-07-03

複数枚の画像がある場合に対応しました。

https://dl.dropbox.com/u/313738/tombloo/extractor.Amazon.zoomPhoto.js

Tombloo.Service.extractors.Amazon.extract = function(ctx){
	ctx.href = this.normalizeUrl(ctx.host, this.getAsin(ctx));
	ctx.title = 'Amazon: ' + $x('id("prodImageCell")//img/@alt') + ': ' + ctx.document.title.split(/[::] */).slice(-2).shift();
};

Tombloo.Service.extractors['Photo - Amazon'].check = function(ctx){
	return Tombloo.Service.extractors.Amazon.preCheck(ctx) && $x('./ancestor::td[@id="prodImageCell"]', ctx.target);
};

addAround(Tombloo.Service.extractors['Photo - Amazon'], 'extract', function(proceed, args){
	var ctx = args[0];
	var ps = proceed(args);
       	ps.itemUrl = ps.itemUrl.replace('.L.LZZZZZZZ.', '.L.');
	ctx.target.src = ps.itemUrl;
	var zoom = $x('//a[./span[contains(@class, "s_zoom")]]');
	if(zoom){
		return request(zoom.href).addCallback(function(res){
			if(res.responseText.match(/DynAPI\.addZoomViewer\("([^"]+)",(?:\d+,){4}(\d+)/))
				ps.itemUrl = (RegExp.$1 + '._SCRMZZZZZZ_V' + RegExp.$2 + '_.jpg').replace('/R/', '/P/');
			return ps;
		});
	}
	return ps;
});