// ==UserScript== // @name 手机看图、小说适配 // @namespace http://tampermonkey.net/ // @version 9.500.5.24 // @description 页面旋转,自动滚动,字体放大,图片集合,去除浮动广告 // @author You // @match *://*/* // @grant unsafeWindow // @run-at document-body // @require https://cdn.bootcss.com/jquery/3.6.0/jquery.min.js // @license MIT // @downloadURL none // ==/UserScript== $.noConflict(); jQuery.noConflict(); (function($) { 'use strict'; if (document.querySelector('.Jq-autoScroll-btn')) { return; } var replaceBlank = [ "_cover(?=[.])", "[.](jpgs|th|md)(?=[.])", "(?<=[!])thumbnail_", "(?<=[/]uploads[/])thumb[/]", "(?<=[/])fill_w[0-9]{2,3}_h[0-9]{2,3}_g0_mark_", "(?<=[/])thumb_[0-9]{1,3}_[0-9]{2,3}_", "(?<=^).{0,200}[=](?=http)", "(?<=[=]http.{1,200}?)&.{0,200}(?=$)", "(?<=[?&])size=.{1,15}?(?=[&]|$)", "(?<=[?&])[wh]=[0-9]{2,3}(?=[&]|$)", "[^,0-9A-Za-z][0-9]{2,3}([,x]|%2C)[0-9]{2,3}(?=[^0-9A-Za-z]|$)", ]; var reStrRepBlank = new RegExp(replaceBlank.join('|'), 'g'); function clearBlank(urlB) { if (HDImg != 0) { urlB = urlB.replace(reStrRepBlank, "") .replace(/(?<=[=])(thumbnail)$/, "normal") .replace(/(?<=[!])(thumbnail|watermark)$/, "webp") .replace(/(?<=[0-9]{3})ps[.]jpg$/, "pl.jpg") .replace(/(?<=[/])[sm](?=_webp[/]|[/]ei[/])/, "b"); } return urlB; } var HDImg = 0; var DSImg = 1; function dqSelect(selectPath) { return document.querySelectorAll(selectPath); } function addStyle(styleStr) { var style_node = document.createElement('style'); style_node.type = 'text/css'; style_node.innerHTML = styleStr; document.getElementsByTagName('head')[0].appendChild(style_node); } var winWidth = $(dqSelect("html")).width(); if (winWidth == 0) { winWidth = $(document).width(); } var winProp = window.innerHeight / window.innerWidth; var winHeight = winWidth * winProp; var winW = winWidth > winHeight ? winHeight * 0.9 : winWidth; var width = winW * 0.1; var height = winW * 0.1; var top = (winHeight - height) * 0.5; var fontSz = winW * 0.036; addStyle( "body {" + "height: auto !important;" + "max-height: none !important;}" + "html,body,#Jq-wrap_rotate_inner {" + "z-index: 2147483646!important;" + "overflow: visible !important;" + "scroll-behavior: auto !important;" + "overflow-wrap: break-word !important;" + "min-height: " + winHeight + "px !important;}" + "#Jq-wrap_rotate_inner>* {" + "overflow-x: visible !important;}" + "#Jq-autoScroll-ul {" + "display: block !important;" + "position: relative !important;" + "top: 0 !important;" + "left: 0 !important;" + "overflow: visible !important;" + "width: 100% !important;" + "height: auto !important;" + "z-index: 2147483646 !important;" + "margin: 0 !important;" + "border: 0 !important;" + "padding:" + (0.2 * winHeight) + "px 0 " + (0.5 * winHeight) + "px 0 !important;" + "background-color: black !important;}" + "#Jq-autoScroll-ul *{" + "box-sizing: border-box !important;" + "padding: 0 !important;" + "margin: 0 !important;" + "position: static !important;" + "float: none !important;" + "border-radius: 0 !important;" + "height: auto !important;" + "opacity: 1 !important;" + "visibility: visible !important;" + "background-color: black !important;" + "background-image: none !important;}" + "#Jq-autoScroll-ul *::before,#Jq-autoScroll-ul *::after{" + "display: none !important;}" + "#Jq-autoScroll-ul img{" + "display: block;" + "object-fit: contain !important;" + "min-height:" + (winW * 0.13) + "px !important;" + "width: 100% !important;" + "border-bottom: 1px solid gray !important;}" + "#Jq-autoScroll-ul span,#Jq-autoScroll-ul a{" + "font-size:" + (winW * 0.045) + "px !important;" + "color: white;" + "overflow-wrap: break-word !important;" + "line-height: normal !important;}" + "#Jq-autoScroll-ul a:visited{" + "color: #741274;}" + "#Jq-autoScroll-ul a{" + "display: inline-block !important;" + "min-height:" + (winW * 0.13) + "px !important;" + "width: auto !important;" + "min-width: 25% !important;" + "max-width: 100% !important;" + "border: 1px solid red;" + "vertical-align: top !important;" + "text-decoration: none !important;}" + "#Jq-autoScroll-ul a.JsUl-HasImg{" + "min-width: 95% !important;}" + ".Jq-autoScroll-btn{" + "opacity: 0.6;" + "border-radius: 0px !important;" + "cursor: pointer !important;" + "z-index: 2147483647 !important;" + "padding: 0 !important;" + "border: 0 !important;" + "font-weight: bold !important;" + "font-size: " + fontSz + "px !important;" + "line-height:12px !important;" + "height:" + height + "px !important;" + "color:white;" + "position:fixed !important;" + "width:" + width + "px !important;}" + ".JsWord-TextBig{" + "overflow-y: visible !important;" + "height: auto !important;" + "max-height: none !important;" + "background-color: black !important;" + "color: white !important;" + "line-height: normal !important;" + "overflow-wrap: break-word !important;}" ); var bodyHeight = $(dqSelect("body")).height(); var jianG = height; var left2 = 0; var left = width + left2; var left3 = width * 2 + left2; var sameCss = "left:" + left + "px;"; var sameCss2 = "left:" + left2 + "px;"; var sameCss3 = "left:" + left3 + "px;"; var scrollNum = parseInt(winW * 0.15 / 10) * 10; var scrollJu = scrollNum * 2; var secZ = 1; function addInput(id, value, style) { var input_node = document.createElement('input'); input_node.type = "button"; input_node.setAttribute("class", "Jq-autoScroll-btn"); input_node.setAttribute("id", id); input_node.setAttribute("value", value); input_node.setAttribute("style", style + ";background-color:black !important;"); $(dqSelect("html")).append(input_node); } addInput('Jq-autoScroll-rotate', 'R', sameCss + "top:" + (top) + "px"); addInput('Jq-autoScroll-jian', '-', sameCss + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-jia', '+', sameCss + "top:" + (top - 2 * jianG) + "px"); addInput('Jq-autoScroll-Ju', (scrollJu / scrollNum * 50), sameCss + "top:" + (top - 3 * jianG) + "px"); addInput('Jq-autoScroll-sec', secZ, sameCss + "top:" + (top - 4 * jianG) + "px"); addInput('Jq-autoScroll-picwh', '100', sameCss + "top:" + (top - 5 * jianG) + "px"); addInput('Jq-autoScroll-del', 'X', sameCss2 + "top:" + (top) + "px"); addInput('Jq-autoScroll-width', 'W', sameCss2 + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-pic', 'P', sameCss2 + "top:" + (top - 2 * jianG) + "px"); addInput('Jq-autoScroll-xy', '▽', sameCss2 + "top:" + (top - 3 * jianG) + "px"); addInput('Jq-autoScroll-up', '△', sameCss2 + "top:" + (top - 4 * jianG) + "px"); addInput('Jq-autoScroll-next', "N", sameCss2 + "top:" + (top - 5 * jianG) + "px"); addInput('Jq-autoScroll-transform', "T", sameCss3 + "top:" + (top) + "px"); addInput('Jq-autoScroll-HD', "H", sameCss3 + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-DS', "S", sameCss3 + "top:" + (top - 2 * jianG) + "px"); $(dqSelect("html")).on('click', '#Jq-autoScroll-next', function() { var _len = $(dqSelect(".JsUl-PageNext")).length; $(dqSelect(".JsUl-PageNext")).each(function(index, dom) { var offsetDiff; if (xMove == 1) { offsetDiff = $(this).offset().left - $(window).scrollLeft() - 50; } else { offsetDiff = $(this).offset().top - $(window).scrollTop() - 50; } if (offsetDiff > 1) { autoScrollBy(offsetDiff); $(dqSelect("#Jq-autoScroll-next")).val(index + 2); return false; } if (index == _len - 1) { _len = 0; } }); if (_len == 0) { var ul_height = $(dqSelect("#Jq-autoScroll-ul")).height(); if (getScrollLeft() + getScrollTop() < ul_height) { autoScrollTo(ul_height); } } }); var Dtransform = 0; $(dqSelect("html")).on('click', '#Jq-autoScroll-transform', function() { Dtransform += 1; if (Dtransform % 2 != 0) { setTimeout(function() { addStyle( "html>* {" + "transform: translate(0%, 0%) !important;}" ); }, 100); $(dqSelect("#Jq-autoScroll-transform")).css("color", "green"); } else { addStyle( "html>* {" + "transform: none !important;}" ); $(dqSelect("#Jq-autoScroll-transform")).css("color", "white"); } }); $(dqSelect("html")).on('click', '#Jq-autoScroll-HD', function() { HDImg += 1; if (HDImg == 2) { HDImg = 0; $(dqSelect("#Jq-autoScroll-HD")).css("color", "white"); } else { $(dqSelect("#Jq-autoScroll-HD")).css("color", "green"); } if (picZ != 0) { picZ -= 1; $(dqSelect("#Jq-autoScroll-pic")).trigger("click"); } }); $(dqSelect("#Jq-autoScroll-DS")).css("color", "green"); $(dqSelect("html")).on('click', '#Jq-autoScroll-DS', function() { DSImg += 1; if (DSImg == 2) { DSImg = 0; $(dqSelect("#Jq-autoScroll-DS")).css("color", "white"); } else { $(dqSelect("#Jq-autoScroll-DS")).css("color", "green"); } if (picZ != 0) { picZ -= 1; $(dqSelect("#Jq-autoScroll-pic")).trigger("click"); } }); var Drotate = 0; var xMove = 0; var wrapAppand; $(dqSelect("html")).on('click', '#Jq-autoScroll-rotate', function() { Drotate += 1; clearInterval(wrapAppand); if (Drotate % 2 != 0) { var _scrollTop = getScrollTop(); bodyHeight = $(dqSelect("body")).height(); $(dqSelect("#Jq-autoScroll-rotate")).css("color", "green"); if ($(dqSelect("#Jq-wrap_rotate_inner")).length == 0) { $("
", { id: "Jq-wrap_rotate_inner" }).append($(dqSelect("html>*:not(head,body,.Jq-autoScroll-btn),body>*"))).appendTo($(dqSelect("body"))); } wrapAppand = setInterval(function() { $(dqSelect('#Jq-wrap_rotate_inner')).append($(dqSelect("html>*:not(head,body,.Jq-autoScroll-btn),body>*:not(#Jq-wrap_rotate_inner)"))); }, 4 * 1000); autoScrollTo(0); setTimeout(function() { $(dqSelect('#Jq-wrap_rotate_inner')).attr('style', "float: right !important;" + "position: relative !important;" + "left: -100% !important;" + "transform: rotateZ(-90deg) !important;" + "transform-origin: 100% 0 !important;" + "-webkit-transform: rotateZ(-90deg) !important;" + "-webkit-transform-origin: 100% 0 !important;" + "-moz-transform: rotateZ(-90deg) !important;" + "-moz-transform-origin: 100% 0 !important;" + "width: " + winHeight + "px !important;" ); xMove = 1; autoScrollTo(_scrollTop * winProp); }, 100); } else { var _scrollLeft = getScrollLeft(); $(dqSelect("#Jq-autoScroll-rotate")).css("color", "white"); autoScrollTo(0); setTimeout(function() { $(dqSelect("#Jq-wrap_rotate_inner")).attr('style', ""); xMove = 0; autoScrollTo(_scrollLeft / winProp); }, 100); } }); function getScrollLeft() { return $(window).scrollLeft() + $(dqSelect("body")).scrollLeft(); } function getScrollTop() { return $(window).scrollTop() + $(dqSelect("body")).scrollTop(); } function autoScrollBy(scrollBy_Ju) { if (xMove == 1) { $(dqSelect("html")).scrollLeft($(dqSelect("html")).scrollLeft() + scrollBy_Ju); $(dqSelect("body")).scrollLeft($(dqSelect("body")).scrollLeft() + scrollBy_Ju); } else { $(dqSelect("html")).scrollTop($(dqSelect("html")).scrollTop() + scrollBy_Ju); $(dqSelect("body")).scrollTop($(dqSelect("body")).scrollTop() + scrollBy_Ju); } } function autoScrollTo(scrollTo_Ju) { if (xMove == 1) { $(dqSelect("html,body")).scrollLeft(scrollTo_Ju); } else { $(dqSelect("html,body")).scrollTop(scrollTo_Ju); } } var widthN = 12; var fontZ; $(dqSelect("html")).on('click', '#Jq-autoScroll-width', function() { function interFn() { $(dqSelect(":not(.JsWord-TextBig)")).filter(function() { var _textLen = $(this).clone().children().remove().end().text() .replace(/[^…,。?!:;~0-9一-龟A-Za-zA-Za-z]+/g, "").length; if (_textLen > 0) { return true; } else { return false; } }).addClass("JsWord-TextBig"); $(dqSelect(".JsWord-TextBig")).css(wordCss); var textImg = $(dqSelect(".JsWord-TextBig")).has("em:not(.JsWord-TextBig),img"); if (textImg.length > 0) { if (oldFSize == 0) { oldFSize = textImg.first().find("em,img").first().width(); } var _scale = fSize != "inherit" && oldFSize != 0 ? parseInt(fSize / oldFSize * 100 * 1.1) / 100 : 1; textImg.find("em:not(.JsWord-TextBig),img").css({ "transform": "scale(" + _scale + ")", "-webkit-transform": "scale(" + _scale + ")", "-moz-transform": "scale(" + _scale + ")", "margin": "0 " + (_scale * 9 - 9) + "px", "filter": "drop-shadow(0px -1px white)", "-webkit-filter": "drop-shadow(0px -1px white)", "-moz-filter": "drop-shadow(0px -1px white)", }); } if (fSize == "inherit") { $(dqSelect(".JsWord-TextBig")).removeClass("JsWord-TextBig"); } } var fSize = widthN > 16 ? "inherit" : parseInt(winWidth / widthN); var oldFSize = 0; var wordCss = { "font-size": fSize }; clearInterval(fontZ); interFn(); if (fSize != "inherit") { fontZ = setInterval(interFn, 4 * 1000); $(dqSelect("#Jq-autoScroll-width")).val(20 - widthN).css("color", "green"); } else { $(dqSelect("#Jq-autoScroll-width")).val("W").css("color", "white"); widthN -= 9; } widthN += 3; }); $(dqSelect("html")).on('click', ".JsWord-TextBig:not(.JsWord-TextBig *)", function() { var fontH = parseInt($(this).css("font-size")) * 1.4; autoScrollBy((xMove == 1 ? winWidth : winHeight) - fontH); }); var picwh = 100; $(dqSelect("html")).on('click', "#Jq-autoScroll-picwh", function() { picwh += 200; if (picwh > 1000) { picwh = 100; } $(dqSelect("#Jq-autoScroll-picwh")).val(picwh); $(dqSelect("#Jq-autoScroll-ul img.JsUl-Imgloaded")).filter(function() { return this.naturalWidth < picwh || this.naturalHeight < picwh; }).hide(); }); var timeout_8; $(dqSelect("html")).on('touchstart', '#Jq-autoScroll-picwh', function() { timeout_8 = setTimeout(function() { picwh = 100; $(dqSelect("#Jq-autoScroll-picwh")).val(picwh); $(dqSelect("#Jq-autoScroll-ul img.JsUl-Imgloaded")).filter(function() { return this.naturalWidth >= picwh && this.naturalHeight >= picwh; }).show(); }, 500); }).on('touchend touchmove', '#Jq-autoScroll-picwh', function() { clearTimeout(timeout_8); }); $(dqSelect("html")).on('click', "#Jq-autoScroll-ul a", function() { if (Dscroll % 2 != 0) { $(dqSelect("#Jq-autoScroll-Ju")).trigger("click"); } }); var timeout_1; $(dqSelect("html")).on('touchstart', '#Jq-autoScroll-pic', function() { timeout_1 = setTimeout(function() { if (picZ > 0) { picZ -= 1; getImgArr(); } }, 500); }).on('touchend touchmove', '#Jq-autoScroll-pic', function() { clearTimeout(timeout_1); }); var widthZ; var picZ = 0; var urlhost = location.protocol + location.host; $(dqSelect("html")).on('click', "#Jq-autoScroll-pic", function() { getImgArr(); }); function getImgArr() { function interFn() { var newImgAr = []; var _text = $(document.body).clone().children("style,script,noscript").remove().end().text() .match(/http.{1,150}?[.](xbm|tif|pjp|svgz|jpg|jpeg|ico|tiff|gif|svg|jfif|webp|png|bmp|pjpeg|avif)/g); $(dqSelect(":not(picture *,head *,style,script,noscript,.JsPic-ImgSelected,#Jq-autoScroll-ul *)")).each(function(inum, dom) { var dataObj = []; var _img = $(this); _img.addClass("JsPic-ImgSelected"); if (_img.is(".pagetual_pageBar")) { newImgAr.push(""); } if (picZ == 2 && inum == 0 && _text != null) { dataObj = dataObj.concat(_text); } var _backImg = _img.css("background-image").split(/"|[""'']/); dataObj.push( _img.attr("src") ? _img.attr("src") : _img.attr("poster") ? _img.attr("poster") : "", _backImg.length > 1 ? _backImg[1] : "" ); if (DSImg != 0) { if (_img.is("img")) { $.each(_img[0].attributes, function(index, item) { if (/^srcset$/.test(item.name)) { dataObj.push(item.value.trim().split(" ")[0]); } else if (/^(onload|onerror)$/.test(item.name)) { var _isp = item.value.split(/"|[""'']/).filter(function(j) { return j.length > 9 && /^http/.test(j); }); dataObj = dataObj.concat(_isp); } else if (!/^(src|style)$|^data[-]/.test(item.name)) { dataObj.push(item.value); } }); } Object.values(_img.data()).forEach(function(i) { if (typeof i == "object") { var iSplit; try { iSplit = JSON.stringify(i); } catch (error) { iSplit = null; } if (iSplit != null) { var _isp_2 = iSplit.split(/"|[""'']/).filter(function(j) { return j.length > 9 && /^http/.test(j); }); dataObj = dataObj.concat(_isp_2); } } else { dataObj.push(i); } }); } if (_img.is("picture") && HDImg != 0) { _img.children().each(function() { $.each($(this)[0].attributes, function(index, item) { if (!/^(style)$/.test(item.name)) { dataObj.push(item.value); } }); }); } dataObj = Array.from(new Set(dataObj)); var _imgsStr = ""; var _imgStr = ""; dataObj.forEach(function(i) { if (/^[A-Za-z/]/.test(i) && /[.?/]/.test(i)) { try { var adr = new URL(i, urlhost); i = adr.href; } catch (error) { i = null; } } else { i = null; } if (i != null) { var i_2 = i; i = /^data[:]image/.test(i) ? i : clearBlank(i); var errorStr = i_2 != i ? "data-src='" + i_2 + "' " : ""; _imgStr = $("