- // ==UserScript==
- // @name jpxgmn 批量图片查看 和 批量下载
- // @namespace http://tampermonkey.net/
- // @version 0.3.2
- // @description jpxgmn 批量图片查看 、下载
- // @author nelsons
- // @match https://www.jpxgmn.com/*/*.html
- // @match https://www.jpxgmn.top/*/*.html
- // @match https://www.jpxgmn.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;
- }
-
- .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 linkArr = new Array()
- var length = 0
-
- var paginationExist = false
- $(".pagination ul").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 = $(".article-content img", 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
- }
-
- })();