Hamazou shim
@@ -9,16 +9,33 @@
*/
// c.f. http://space.hatena.ne.jp/~/14217943783080751724#14290001378108728700
+
+// Amazon Android Apply Store has not '#ASIN', i.e. http://www.amazon.co.jp/dp/B00D80V2TM
+// alternate methods;
+// ((document.querySelector('[data-asin]') || {}).dataset || {})).asin
+// or parse URL like this code
+// c.f. http://space.hatena.ne.jp/~/14217943783080751724/14217943783080751726/93
+
(function () {
var asin, img;
- if (/^www\.amazon\.co\.jp/.test(location.hostname)) {
- asin = (document.querySelector('#ASIN') || {}).value;
- img = (document.querySelector('#prodImageContainer img, #main-image, #kib-ma-container-0 img') || {}).src;
- } else if ((asin = (/^http:\/\/d\.hatena\.ne\.jp\/asin\/(\w+)/.exec(location.href) || [])[1])) {
+ if (/^www\.amazon\.co\.jp/.test(location.hostname)) {
+ asin = (location.pathname.match(/dp\/(\w+)/) || [])[1];
+
+ var query = {
+ 'normal': '#prodImageContainer img',
+ 'other' : '#main-image',
+ 'kindle': '#kib-ma-container-0 img'
+ };
+ query = Object.keys(query).map(function (k) { return query[k]; });
+
+ img = (document.querySelector(query) || {}).src;
+ } else if ((asin = (location.href.match(/^http:\/\/d\.hatena\.ne\.jp\/asin\/(\w+)/) || [])[1])) {
img = (document.querySelector('img.hatena-asin-detail-image') || {}).src;
- img = img.replace(/(_SL)\d+(_\.\w+)$/, '$1300$2');
+ img = img.replace(/(_SL)\d+(_\.\w+)$/, '$1' + 300 + '$2');
}
if (!asin) return;
- prompt('copy me', (img + '\n' || '') + 'http://d.hatena.ne.jp/asin/' + asin);
-})();
+ // TODO display to textarea
+ // Firefox can't use linebreak within a prompt, so redandunt space ' \n' for avoid no-sep
+ prompt('copy me', (img + ' \n' || '') + 'http://d.hatena.ne.jp/asin/' + asin);
+})();
/*
* @title Hamazou shim
* @description prompt Diary Keyword link with img, like Hamazou; LGTM for Hatena Space
* @include http://www.amazon.co.jp/*
* @include http://d.hatena.ne.jp/asin/*
* @contributor noromanba http://let.hatelabo.jp/noromanba/let/gYC-y8CR-5yPEw (Fork of)
* @license MIT License http://nrm.mit-license.org/2013
* @require
*/
// c.f. http://space.hatena.ne.jp/~/14217943783080751724#14290001378108728700
// Amazon Android Apply Store has not '#ASIN', i.e. http://www.amazon.co.jp/dp/B00D80V2TM
// alternate methods;
// ((document.querySelector('[data-asin]') || {}).dataset || {})).asin
// or parse URL like this code
// c.f. http://space.hatena.ne.jp/~/14217943783080751724/14217943783080751726/93
(function () {
var asin, img;
if (/^www\.amazon\.co\.jp/.test(location.hostname)) {
asin = (location.pathname.match(/dp\/(\w+)/) || [])[1];
var query = {
'normal': '#prodImageContainer img',
'other' : '#main-image',
'kindle': '#kib-ma-container-0 img'
};
query = Object.keys(query).map(function (k) { return query[k]; });
img = (document.querySelector(query) || {}).src;
} else if ((asin = (location.href.match(/^http:\/\/d\.hatena\.ne\.jp\/asin\/(\w+)/) || [])[1])) {
img = (document.querySelector('img.hatena-asin-detail-image') || {}).src;
img = img.replace(/(_SL)\d+(_\.\w+)$/, '$1' + 300 + '$2');
}
if (!asin) return;
// TODO display to textarea
// Firefox can't use linebreak within a prompt, so redandunt space ' \n' for avoid no-sep
prompt('copy me', (img + ' \n' || '') + 'http://d.hatena.ne.jp/asin/' + asin);
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。