// ==UserScript==
// @name jpxgmn 批量图片查看 和 批量下载
// @namespace http://tampermonkey.net/
// @version 0.3.6
// @description jpxgmn 批量图片查看 、下载
// @author nelsons
// @match https://www.jpxgmn.com/*/*.html
// @match https://www.jpxgmn.top/*/*.html
// @match https://www.jpxgmn.net/*/*.html
// @match https://www.jpxgmn.vip/*/*.html
// @match https://www.jpmn8.com/*/*/*.html
// @match https://www.jpxgyw.net/*/*.html
// @grant GM_addStyle
// @grant GM_download
// @require https://cdn.bootcdn.net/ajax/libs/viewerjs/1.10.1/viewer.min.js
// ==/UserScript==
(function() {
// let buttonHtml = "<a id='download_show_btn' href=# target='_self' style='cursor:pointer;z-index:98;display:block;width:30px;height:64px;line-height:30px;position:fixed;left:0;top:300px;text-align:center; color: #000;font-size: x-large;background-color: #f7f7f9;border: 1px solid #e1e1e8; border-radius: 4px; box-shadow: inset 0 -3em 3em rgb(0 0 0 / 10%), 0 0 0 2px rgb(255 255 255 / 50%), 0.3em 0.3em 1em rgb(0 0 0 / 20%);'>下载</a>";
let downloadView = `<div id="download-view" class="download-view" style="float: right; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); border-radius: 4px; padding: 16px; position: fixed; top: 0px; right: 0px; width: 50vw; z-index: 2147483645; overflow: scroll; height: 100%; display: none;">
<div class="quanxuan-div"><input type="checkbox" id="quanxuan"/><span>全选</span></div>
<div class="choose-btn">
<button id="fanxuan">反选</button>
<button id="download">下载</button>
</div>
<div class="close-btn" id="close-btn">x</div>
<div class="download-content">
</div>
</div>`
let btnHtml =`<svg id='download_show_btn' t="1635327432621" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1003" width="200" height="200"><path d="M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7c3.2 4.1 9.4 4.1 12.6 0l112-141.7c4.1-5.2 0.4-12.9-6.3-12.9z" fill="#16c2c2" p-id="1004"></path><path d="M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6 0.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4 14.9-19.2 32.6-35.9 52.4-49.9 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7-23.4 23.4-54.5 36.3-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z" fill="#16c2c2" p-id="1005"></path></svg>`
let addStyles = `.viewer-close:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen-exit:before,.viewer-fullscreen:before,.viewer-next:before,.viewer-one-to-one:before,.viewer-play:before,.viewer-prev:before,.viewer-reset:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-zoom-in:before,.viewer-zoom-out:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;top:0;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container ::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container ::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:rgba(0,0,0,.5);overflow:hidden}.viewer-list{-webkit-box-sizing:content-box;box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;-webkit-transition:opacity .15s;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;right:0;z-index:1}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;-webkit-transition:background-color .15s;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:rgba(0,0,0,.8)}.viewer-toolbar>ul>li:focus{-webkit-box-shadow:0 0 3px #fff;box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:rgba(0,0,0,.8);border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;-webkit-transition:opacity .15s;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;-webkit-transition:background-color .15s;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:rgba(0,0,0,.8)}.viewer-button:focus{-webkit-box-shadow:0 0 3px #fff;box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:rgba(0,0,0,.5)}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{-webkit-transition:all .3s;transition:all .3s}@-webkit-keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-left-color:hsla(0,0%,100%,.5);border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width:767px){.viewer-hide-xs-down{display:none}}@media (max-width:991px){.viewer-hide-sm-down{display:none}}@media (max-width:1199px){.viewer-hide-md-down{display:none}}`
let addViews = "body{text-align: center;},"
let addDownloadStyle = `
.download-view {
float: right;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 4px;
padding: 16px 16px;
position: fixed;
top: 0px;
right: 0px;
width: 50vw;
z-index: 2147483645;
overflow: scroll;
height: 100%;
}
.download-content {
padding-top: 20px;
padding-bottom: 20px;
background-color: #f5f5f5;
display: inline-block;
}
.div-img-content {
float: left;
display: grid;
padding: 4px 2px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 4px;
margin-right: 5px;
}
.div-img-content img {
width: auto;
height: 240px;
}
.close-btn {
display: inline-block;
text-align: center;
font-size: 20px;
position: absolute;
right: 30px;
top: 18px;
height: 32px;
line-height: 32px;
border-radius: 10px;
border: 1px solid #aaa;
width: 30px;
}
.quanxuan-div {
float: left;
width: 100px;
height: 30px;
}
.quanxuan-div input {
width: 24px;
height: 24px;
}
.quanxuan-div span {
font-size: 18px;
margin-left: 6px;
vertical-align: middle;
}
.icon {
cursor: pointer;
z-index: 98;
display: block;
width: 50px;
height: 64px;
line-height: 30px;
position: fixed;
left: 0;
top: 300px;
text-align: center;
color: #000;
}
ul {
list-style: none;
}
.choose-btn {
float: left;
margin-top: 10px;
display: block;
margin-left: -84px;
margin-top: 38px;
},`
GM_addStyle(addStyles+addViews+addDownloadStyle)
'use strict';
var newViewer = $("<ul id =viewer style='display: inline-block !important;background-color: #f7f7f9;border: 1px solid #e1e1e8; border-radius: 4px; padding: 16px 16px;'></ul>");
var host = document.domain;
var paginationClass = ""
var imageClass = ""
if (host == "www.jpmn8.com") {
paginationClass = ".pagination1 ul"
imageClass = ".content >div:nth-child(4) > p:nth-child(2) > img"
} else {
paginationClass = ".pagination ul"
imageClass = ".article-content img"
}
var linkArr = new Array()
var length = 0
var paginationExist = false
$(paginationClass).each(function () {
if (paginationExist == true) {
return false;
}
length = $(this).find("a").length
$(this).find('a').each(function(index, value) {
if (index <= length-2) {
linkArr.push($(this).attr('href'))
}
});
paginationExist = true;
})
$("body").empty();
//$("body").append(buttonHtml);
$("body").append(newViewer);
$("body").append(downloadView);
$("body").append(btnHtml);
$.each(linkArr,function(index,value){
var itemArr = $('<li></li>');
$.get( value, function( data ) {
var image = $(imageClass, data);
image.each(function(item){
var imgUrl = $(this).attr('src')
var imageItem ='<img width= "300" style="float:left;" src="' + imgUrl + '" >';
itemArr.append(imageItem)
var downloadItem = '<div class="div-img-content"><img src="' +imgUrl+ '"><input type="checkbox" class="imgBtnBox" value="'+imgUrl+'"/></div>';
$(".download-content").append(downloadItem)
});
})
newViewer.append(itemArr)
});
setTimeout(() => {
var viewer3 = new Viewer(document.getElementById('viewer'),{
viewed() {}
} );
},3000);
$("#download_btn").click(function(event){
GM_download('https://www.jpxgmn.top/uploadfile/202109/5/F4175918381.jpg', `pic`);
});
var i;
var li = document.getElementsByTagName("input");
var quanxuan = document.getElementById("quanxuan");
var fanxuan = document.getElementById("fanxuan");
var imgBtnBox = document.getElementsByClassName("imgBtnBox");
var download = document.getElementById("download");
var closeBtn = document.getElementById('close-btn');
var downloadShowBtn = document.getElementById('download_show_btn');
var isShow = false; // 默认div显示
//全选和全不选框
quanxuan.onclick = function () {
for (i = 0; i < li.length; i++) {
li[i].checked = this.checked;
}
}
//按钮反选
fanxuan.onclick = function () {
for (i = 0; i < li.length; i++) {
li[i].checked = !li[i].checked;
}
for (i = 0; i < imgBtnBox.length; i++) {
if (!imgBtnBox[i].checked) {
quanxuan.checked = false;
return;
}
}
}
//给所有水果选项绑定单击事件
for (i = 0; i < imgBtnBox.length; i++) {
imgBtnBox[i].onclick = function () {
for (var j = 0; j < imgBtnBox.length; j++) {
if (!imgBtnBox[j].checked) {
quanxuan.checked = false;
return;
}
}
quanxuan.checked = true;
}
}
//提交按钮
download.onclick = function () {
var imgSort = 1
for (i = 0; i < imgBtnBox.length; i++) {
if (imgBtnBox[i].checked) {
var url = imgBtnBox[i].value
var filename = url.substring(url.lastIndexOf('/')+1);
GM_download(url, `img-${imgSort}`);
imgSort++;
}
}
}
// closeBtn.hide()
// 显示或者隐藏
closeBtn.onclick = function () {
document.getElementById("download-view").style.display = "none";
isShow = false
}
downloadShowBtn.onclick = function () {
document.getElementById("download-view").style.display = "inline-block";
isShow = false
}
})();