Clip Images (DMM)

  • /*
    @title     Clip Images (DMM)
    @include   http://www.dmm.com/
    @include   http://www.dmm.co.jp/
    @license   MIT License
    */
    var add, add_image, add_linked_image, filter, has_large_image, process, sources, _ref;
    
    sources = [];
    
    has_large_image = !!((_ref = document.querySelector("#sample-image-block > a")) != null ? _ref.id : void 0);
    
    filter = function(src) {
      if (/^http:\/\/pics\.dmm\.(?:co\.jp|com)\//.test(src)) {
        has_large_image && (src = src.replace(/(\-\d+\.jpg)$/, "jp$1"));
        return src.replace(/p[st](\.jpg)$/, "pl$1");
      } else {
        return;
      }
    };
    
    process = function(filter) {
      var images, src;
      sources = sources.reverse().reduceRight(function(a, b) {
        if (b && a.indexOf(b) === -1) {
          return a.concat(b);
        } else {
          return a;
        }
      }, []);
      images = (function() {
        var _i, _len, _results;
        _results = [];
        for (_i = 0, _len = sources.length; _i < _len; _i++) {
          src = sources[_i];
          _results.push("<img src=\"" + src + "\">");
        }
        return _results;
      })();
      if (images.length) {
        return document.body.outerHTML = "<body>" + location.href + (images.join('')) + "</body>";
      } else {
        return alert("Image Not Found");
      }
    };
    
    add_linked_image = function() {
      var a;
      return add((function() {
        var _i, _len, _ref2, _results;
        _ref2 = document.links;
        _results = [];
        for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
          a = _ref2[_i];
          _results.push(a.href);
        }
        return _results;
      })());
    };
    
    add_image = function() {
      var img;
      return add((function() {
        var _i, _len, _ref2, _results;
        _ref2 = document.images;
        _results = [];
        for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
          img = _ref2[_i];
          _results.push(img.src);
        }
        return _results;
      })());
    };
    
    add = function(target) {
      var items;
      items = Array.prototype.slice.call(target).filter(function(item) {
        return /.+\.(?:jpe?g|gif|png|svg|bmp)$/.test(item);
      });
      return sources = sources.concat(filter ? items.map(filter) : items);
    };
    
    add_image();
    
    add_linked_image();
    
    process();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2012/02/04 16:23:19 - 2012-02-04
  2. 2011/11/18 19:48:01 - 2011-11-18
  3. 2011/11/18 04:23:06 - 2011-11-18
  4. 2011/11/18 04:19:41 - 2011-11-18
  5. 2011/11/15 03:29:51 - 2011-11-15
  6. 2011/11/15 03:27:39 - 2011-11-15
  7. 2011/11/14 04:15:00 - 2011-11-14
  8. 2011/11/14 03:08:10 - 2011-11-14
  9. 2011/11/13 17:47:40 - 2011-11-13
  10. 2011/11/13 17:47:21 - 2011-11-13