Hamazou shim

    @@ -1,39 +1,41 @@ /* - * @title Amazon img + asin - * @description prompt minified Amazon link with img; LGTM for Hatena Space - * @include http://www.amazon.tld/* + * @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 */ -// pair-script -// http://let.hatelabo.jp/noromanba/let/gYC-y8DN9c28Rw +// c.f. http://space.hatena.ne.jp/~/14217943783080751724#14290001378108728700 -// c.f. http://space.hatena.ne.jp/~/14217943783080751724#14217943783080751726+45 -// http://space.hatena.ne.jp/~/14217943783080751724/14290001378108728700/3 -(function () { - var tld, asin; - //* - if (!(tld = (location.hostname.match(/^www\.amazon\.([a-z\.]+)/) || [])[1]) || - !(asin = (location.pathname.match(/dp\/(\w+)/) || [])[1])) { - return; - } - /*/ - var meta = (location.href.match(/^https?:\/\/www\.amazon\.([a-z\.]+).*\/dp\/(\w+)/) || []).slice(1); - if (meta.length < 2) return; +// 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 - tld = meta[0], asin = meta[1]; - //*/ +(function () { + var asin, img; + if (/^www\.amazon\.co\.jp/.test(location.hostname)) { + asin = (location.pathname.match(/dp\/(\w+)/) || [])[1]; - var query = { + var query = { 'normal': '#prodImageContainer img', 'other' : '#main-image', 'kindle': '#kib-ma-container-0 img' - }; - query = Object.keys(query).map(function (k) { return query[k]; }); - var img = (document.querySelector(query) || {}).src; + }; + 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://www.amazon.' + tld + '/dp/' + asin); -})(); + 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 です。

History

  1. 2013/09/26 02:30:01 - 2013-09-26
  2. 2013/09/26 02:28:08 - 2013-09-26
  3. 2013/07/26 07:16:32 - 2013-07-26
  4. 2013/07/26 07:14:42 - 2013-07-26
  5. 2013/07/26 06:12:52 - 2013-07-26
  6. 2013/07/26 06:07:41 - 2013-07-26
  7. 2013/07/26 05:06:29 - 2013-07-26
  8. 2013/04/16 15:02:50 - 2013-04-16
  9. 2013/04/16 13:44:21 - 2013-04-16
  10. 2013/04/14 13:47:24 - 2013-04-14
  11. 2013/04/14 06:25:22 - 2013-04-14
  12. 2013/04/14 04:54:56 - 2013-04-14
  13. 2013/04/14 04:28:23 - 2013-04-14