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 です。

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