您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
mrCong全量加載,啦啦啦
// ==UserScript== // @name MrCong全量加載 // @namespace http://tampermonkey.net/ // @version 2.6 // @description mrCong全量加載,啦啦啦 // @author LARA_SSR // @match https://mrcong.com/*/ // @exclude https://mrcong.com/tag/* // @exclude https://mrcong.com/category/* // @exclude https://mrcong.com/sets/* // @exclude https://mrcong.com/top*/* // @exclude https://mrcong.com/tim-kiem/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license MIT // @require https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js // ==/UserScript== console.clear(); (function () { "use strict"; let isDebugMain = false; function log() { if (isDebugMain) { console.log.apply(this, arguments); } } let id = setInterval(async function () { if (Fancybox4) { //打印开关 log("Fancybox4 --- isActive!\n"); clearInterval(id); if (os.isAndroid || os.isPhone) { //判断是否Android或Phone addStyle(fancyBoxCss); // 观察者 MutationObserver事件 function type(param) { // es6中null的类型为object if (param === null) { return param + ""; } if (typeof param === "object") { let val = Object.prototype.toString.call(param).split(" ")[1]; let type = val.substr(0, val.length - 1).toLowerCase(); return type; } else { return typeof param; } } let slideIndex = null; const ContentContainer = document.querySelector("body"); const configObserver = { childList: true, subtree: true, attributeFilter: ["class"], }; // 当观察到突变时执行的回调函数 const callbacks = function (mutationsList) { mutationsList.forEach(function (item, index) { // log(' # ',type(item.type) + " " + item.type); if ("attributes" === item.type) { if ( item.target.className === "fancybox__carousel is-draggable" ) { log(' # ', item); openEvent(item); } else if ( item.target.className === "fancybox__container is-animated is-closing" ) { log(' # ', item); closeEvent(); } } }); }; // 创建一个链接到回调函数的观察者实例 const Observer = new MutationObserver(callbacks); ContentContainer && Observer.observe(ContentContainer, configObserver); function openEvent(item) { slideIndex = item.target.offsetParent.childNodes[1].firstChild.firstChild .childNodes[0].innerText - 1; if (slideIndex) { log("open - # " + slideIndex + " slide is open!"); } } function closeEvent() { log("close - # " + slideIndex + " slide is closed!"); let elementById = document.getElementById("imgLocation" + slideIndex); if (elementById) { elementById.scrollIntoView({ block: "center", behavior: "smooth", inline: "center", }); } else { console.error(" # ", "未定位id!"); } } let open = "Default"; switch (open) { case "Fullscreen": addStyle(fancyBoxCssAdditon); // addScript(fancyboxFullJsLocate); Fancybox4.bind("[data-fancybox='images']", { Toolbar: false, animated: false, dragToClose: false, showClass: false, hideClass: false, closeButton: "top", Image: { click: "close", wheel: "slide", zoom: false, fit: "cover" }, Thumbs: { minScreenHeight: 0 } }); break; case "Default": addStyle(`a[data-fancybox] img{cursor:zoom-in;}`); // addScript(fancyboxDefaultJsLocate); Fancybox4.bind("[data-fancybox='images']", { Thumbs: { Carousel: { fill: false, center: true } } }); break; } //获取页数 let paginationClass = "div .page-link"; let length = 0; let paginationExist = false; $(paginationClass).each(function () { if (paginationExist == true) { return false; } length = $(this).find("a").length; paginationExist = true; //log(linkArr); log("页数:" + length); }); //标题 addStyle( `.postTagHrefs{padding-bottom:10px}.postTagHrefs,.titleHrefs{color:#fffaf0;word-break:break-all}#title_info{color:pink;border:1px solid transparent;border-bottom-color:pink}#separate{color:#fff}#downHref>a{color:pink;border:1px solid transparent;border-bottom-color:#815c94}.postTagHrefs>div,.titleHrefs>div{display:inline-block}#spanitem,#spanitemdiv{color:#fffaf0}` ); let header = $("<div class = titleHrefs></div>"); let footer = $("<div class = postTagHrefs></div>"); await new Promise(function (resolve) { $("#crumbs a").each(function () { let title = $(this).attr("id", "title_info"); header.append(title); let p3 = $("<div id = separate>\xa0/\xa0</div>"); header.append(p3); }); $(".post-tag a").each(function () { let hrefDiv = $("<div class = hrefDiv></div>"); let title = $(this).attr("id", "title_info"); hrefDiv.append(title); footer.append(hrefDiv); let p3 = $("<div id = separate>\xa0/\xa0</div>"); footer.append(p3); }); resolve(); }); let password = $("strong+input[value]").attr("value"); log("Password: " + password); let patt = /(?<=Dung lượng: )(\d+|([1-9]\d*\.?\d+))[A-Za-z]*(B|b)/g; let inerBoxStr = $(".box-inner-block").text(); let imgSize = inerBoxStr.match(patt)[0]; log(imgSize); let p3; $("p[style] a").each(function (index, value) { let download = $("<a>图片下载</a>") .attr("href", $(this)[0].href) .text(`图片下载链接[ ${index + 1} ]`); download.css({ "color": "pink", "border": "1px solid transparent", "border-bottom-color": "#815c94" }); header.append(download); p3 = $("<div id = separate>\xa0/\xa0</div>"); download.after(p3); }); let spanItem = $("span[itemprop]").text(); let divTR = `解压密码:(${password})<div id = separate>\xa0/\xa0</div>图片大小:(${imgSize})<div id = separate>\xa0/\xa0</div>${spanItem}`; header.append(divTR); /* font-family: -apple-system,BlinkMacSystemFont,Tahoma,Arial,"Hiragino Sans GB","Microsoft YaHei",sans-serif; */ addStyle( `ul li{list-style-type:none}body{display:block;margin:8px;background:#27282d;font-family:fantasy,sans-serif}#viewer{margin:0;padding:0}.imgbox{position:relative;overflow:hidden;box-sizing:border-box;width:100%}.imgnum{position:absolute;top:6px;left:6px;z-index:100;padding:0 6px;border-radius:2px;background:#17a1ff;background:rgba(23,161,255,.5);color:#f9f9f9}.imgs{float:left;width:100%}` ); addStyle('.titleHrefs>*{margin:3px 0;}') //remove ad setInterval(function () { $("#viewer").prevAll().remove(); $("#Autopage_number").remove(); }, 100); $("body").empty(); let i = 1; let str3 = self.location.href; let newStr = str3.replace(/-anh.+/g, ""); let link = ""; let viewer2 = $('<ul id ="viewer"></ul>'); $("body").append(viewer2); viewer2.append(header); let n = 0; do { link = newStr + "-anh/" + i; let data = await Get(link); let image = $(".content img", data); image.each(function (index, item) { n++; let imgli = $('<li class = "imgbox"></li>'); let imageItem = '<a data-fancybox="images" href="' + $(this)[0].src + '"><img class="imgs" src="' + $(this)[0].src + `"id="imgLocation${n - 1}` + '" ></a>'; //序号 let stringNum = "<div class = 'imgnum'>{imgnum}</div>"; let newStringNum = stringNum.replace("{imgnum}", `${n}`); imgli = imgli.prepend($(newStringNum)); imgli = imgli.append(imageItem); viewer2.append(imgli); }); i = i + 1; if (i === length + 2) { $(document).ready(function () { $("#viewer").after(footer); }); } } while (i < length + 2); let imgCount = $("#viewer img").length; log("imgCount: " + imgCount); $(".imgnum").each(function (index, value) { if (index < imgCount) { // log($(this)); $(this).text(`[${index + 1}/${imgCount}]`); } else { return false; } }); //删除标题最后一个"/" $(document).ready(function () { // $(".titleHrefs div").eq(-1).remove(); $(".postTagHrefs #separate").eq(-1).remove(); }); } } }, 100); })();