Clip Images (DMM)
by
yksk
2012-02-04 [2012/02/04 16:23:19]
@@ -3,7 +3,6 @@
* @include http://www.dmm.com/
* @include http://www.dmm.co.jp/
* @license MIT License
- * @private
*/
var image_type = /.+\.(?:jpe?g|gif|png|svg|bmp)$/,
/*
* @title Clip Images (DMM)
* @include http://www.dmm.com/
* @include http://www.dmm.co.jp/
* @license MIT License
*/
var image_type = /.+\.(?:jpe?g|gif|png|svg|bmp)$/,
sources = {},
filter;
new function() {
filter = function(src) {
if (!/^http:\/\/pics\.dmm\.(?:co\.jp|com)\//.test(src)) return false;
document.body.innerHTML.indexOf('【この作品のサンプル画像は拡大表示されません】') == -1 && (src = src.replace(/(\-\d+\.jpg)$/, 'jp$1'));
src = src.replace(/p[st](\.jpg)$/, 'pl$1');
return src;
};
clip_linked_image();
if (typeof sample_spread_success != 'undefined') {
var _sample_spread_success = sample_spread_success;
sample_spread_success = function(response) {
var ret = response && response.responseText ? _sample_spread_success(response) : false;
clip_image();
last();
return ret;
};
sample_spread();
}
else {
if (typeof sample_spread != 'undefined') {
sample_spread();
var timer = setInterval(function() {
if (backHTML) {
clip_image();
last();
clearInterval(timer);
}
}, 1000);
}
else {
clip_image();
last();
}
}
};
function last() {
var images = [];
for (var k in sources) {
images.push('<img src="' + k + '">');
}
images.length ?
(document.body.innerHTML = location.href + images.join('')) :
alert('Image Not Found');
}
function clip_linked_image() {
Array.prototype.slice.call(document.links).forEach(function(a) {
var src = (image_type.exec(a.href) || [])[0];
if (src) {
filter && (src = filter(src));
src && !sources[src] && (sources[src] = true);
}
});
}
function clip_image() {
Array.prototype.slice.call(document.images).forEach(function(img) {
var src = (image_type.exec(img.src) || [])[0];
if (src) {
filter && (src = filter(src));
src && !sources[src] && (sources[src] = true);
}
});
}
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。