Sleazy Fork is available in English.

24fa全量图片加載

24fa网页美女页面图片加载,啦啦啦

您查看的为 2022-04-08 提交的版本。查看 最新版本

// ==UserScript==
// @name         24fa全量图片加載
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  24fa网页美女页面图片加载,啦啦啦
// @author       LARA_SSR
// @exclude      https://www.24faw.com/c49.aspx
// @exclude      https://www.112w.cc/c49.aspx
// @include      /https?\:\/\/[A-Za-z]{3}\.[0-9]*(w|faw)\.cc\/(m)?n[0-9]*c(49|71)/
// @license      MIT
// @grant        none
// @require      https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js
// @require      https://cdn.staticfile.org/viewerjs/1.10.4/viewer.min.js
// @require      https://greasyfork.org/scripts/442989-fancybox-css-4-0/code/fancyboxcss%2040.js?version=1037629
// ==/UserScript==


let os = function () {
    let ua = navigator.userAgent, //获取浏览器UA
        isWindowsPhone = /(?:Windows Phone)/.test(ua),
        isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
        isAndroid = /(?:Android)/.test(ua),
        isFireFox = /(?:Firefox)/.test(ua),
        isChrome = /(?:Chrome|CriOS)/.test(ua),
        isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
        isPhone = /(?:iPhone)/.test(ua) && !isTablet,
        isPc = !isPhone && !isAndroid && !isSymbian;
    return {
        isTablet: isTablet,
        isPhone: isPhone,
        isAndroid: isAndroid,
        isPc: isPc
    };
}();

if (os.isAndroid || os.isPhone) //判断是否Android或Phone
{
    (async function () {
        $('script').empty();
        let addStyle = function (aCss) {
            let head = document.getElementsByTagName('head')[0];
            if (head) {
                let style = document.createElement('style');
                style.setAttribute('type', 'text/css');
                style.textContent = aCss;
                head.appendChild(style);
                return style;
            }
            return null;
        }
        let addScriptModule = function (aScript) {
            let head = document.getElementsByTagName('head')[0];
            if (head) {
                let script = document.createElement('script');
                script.setAttribute('type', 'module');
                script.textContent = aScript;
                head.appendChild(script);
                return script;
            }
            return null;
        }
        let addScript = function (aScript) {
            let head = document.getElementsByTagName('head')[0];
            if (head) {
                let script = document.createElement('script');
                script.setAttribute('type', 'text/javascript');
                script.textContent = aScript;
                head.appendChild(script);
                return script;
            }
            return null;
        }
    
        async function addScriptCss() {
            // let fancyboxLink = "https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.css";
            // let fancyboxData = await Get(fancyboxLink);
            addStyle(fancyboxData);
        }
        // let addScriptCssResult = await addScriptCss();
        addScriptCss();
        let open = 'Default';
        switch (open) {
            case 'Fullscreen':
                addStyle(`
                a[data-fancybox] img{cursor:zoom-in}
                .fancybox__container{--carousel-button-bg:rgb(0 0 0 / 44%);--carousel-button-svg-width:24px;--carousel-button-svg-height:24px;--carousel-button-svg-stroke-width:2.5;--carousel-button-svg-filter:none}
                .fancybox__nav{--carousel-button-svg-width:22px;--carousel-button-svg-height:22px;--carousel-button-svg-stroke-width:3}
                .fancybox__nav .carousel__button.is-prev{left:30px}
                .fancybox__nav .carousel__button.is-next{right:30px}
                .carousel__button.is-close{top:30px;right:30px}
                .fancybox__slide{padding:0}
                .fancybox__thumbs{position:absolute;bottom:0;left:0;right:0;z-index:10}
                .fancybox__thumbs .carousel__slide{padding:20px 10px;overflow:visible}
                .fancybox__thumb{border-radius:6px;box-shadow:0 4px 6px -1px rgba(0,0,0,0.3),0 2px 4px -1px rgba(0,0,0,0.26)}
                .is-nav-selected .fancybox__thumb{transform:scale(1.25)}
                .is-nav-selected .fancybox__thumb::after{display:none}
            `);
                addScriptModule(`
                import{Fancybox}from"https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.esm.js";Fancybox.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;}
            `);
                addScriptModule(`
                import{Fancybox}from"https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.esm.js";Fancybox.bind('[data-fancybox="images"]',{Thumbs:{Carousel:{fill:false,center:true,},},});
            `);
                break;
            case 'Background':
                addStyle(`
                a[data-fancybox] img{cursor:zoom-in;}.fancybox__backdrop::after{content:"";position:absolute;width:10%;height:10%;filter:blur(2px);left:50%;top:50%;transform:scale(11);opacity:0.3;background-image:var(--bg-image);background-size:cover;background-repeat:no-repeat;background-position:center center;}.fancybox__container{--fancybox-bg:#000;--fancybox-thumbs-width:48px;--fancybox-thumbs-ratio:1;--carousel-button-bg:rgb(91 78 76 / 74%);--carousel-button-svg-width:24px;--carousel-button-svg-height:24px;--carousel-button-svg-stroke-width:2.5;}.fancybox__nav{--carousel-button-svg-width:24px;--carousel-button-svg-height:24px;}.fancybox__nav .carousel__button.is-prev{left:20px;}.fancybox__nav .carousel__button.is-next{right:20px;}.carousel__button.is-close{right:auto;top:20px;left:20px;}.fancybox__slide{padding:8px 88px;}.fancybox__thumbs .carousel__slide{padding:8px 8px 16px 8px;}.is-nav-selected::after{display:none;}.fancybox__thumb{border-radius:6px;opacity:0.4;}.fancybox__thumb:hover,.is-nav-selected .fancybox__thumb{border-radius:6px;opacity:1;}.is-nav-selected .fancybox__thumb::after{display:none;}
            `)
                addScriptModule(`
                import{Fancybox}from"https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.esm.js";Fancybox.bind('[data-fancybox="images"]',{dragToClose:false,Toolbar:false,closeButton:"top",Image:{zoom:false,},on:{initCarousel:(fancybox)=>{const slide=fancybox.Carousel.slides[fancybox.Carousel.page];fancybox.$container.style.setProperty("--bg-image",\`url("\${slide.$thumb.src}")\`)},"Carousel.change":(fancybox,carousel,to,from)=>{const slide=carousel.slides[to];fancybox.$container.style.setProperty("--bg-image",\`url("\${slide.$thumb.src}")\`)},},});
            `);
                break;
            case 'FollowCursor':
                addStyle(`
                a[data-fancybox]img{cursor:zoom-in;}.fancybox__container{--fancybox-color:#999;--fancybox-bg:#fff;--carousel-button-svg-width:32px;--carousel-button-svg-height:32px;--carousel-button-svg-stroke-width:1.2;--carousel-button-svg-filter:none;}.fancybox__nav{--carousel-button-svg-width:36px;--carousel-button-svg-height:36px;--carousel-button-svg-stroke-width:1;}.has-image[data-image-fit="contain-w"]{padding:0;overflow:hidden;}
            `)
                addScriptModule(`
                import{Fancybox}from"https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.esm.js";Fancybox.bind('[data-fancybox="images"]',{animated:false,showClass:false,hideClass:false,dragToClose:false,closeButton:"top",Thumbs:false,Toolbar:false,Carousel:{Panzoom:{touch:false,},},Image:{zoom:false,wheel:false,click:"close",fit:"contain-w",},on:{ready:(fancybox,slide)=>{fancybox.clientY=(fancybox.options.event&&fancybox.options.event.clientY)||0;fancybox.$container.addEventListener("mousemove",(e)=>{fancybox.clientY=e.clientY;fancybox.trigger("mousemove");});},"done Carousel.change":(fancybox)=>{fancybox.trigger("mousemove");},mousemove:(fancybox)=>{const slide=fancybox.getSlide();if(!slide||!slide.$image||slide.state!=="done"){return;}
                const $el=slide.$el;const imageHeight=slide.$image.clientHeight;const style=window.getComputedStyle($el);const paddingTop=parseFloat(style.paddingTop);const paddingBottom=parseFloat(style.paddingBottom);const viewportHeight=$el.clientHeight-paddingTop-paddingBottom;const pointerY=fancybox.clientY-paddingTop;$el.scrollTop=(pointerY*(imageHeight-viewportHeight))/viewportHeight;},},});
            `);
                break;
            case 'ClassicDesign':
                addStyle(`
                a[data-fancybox] img{cursor:zoom-in;}.fancybox__container{--fancybox-bg:rgba(17,6,25,0.85);}.fancybox__container .fancybox__content{box-sizing:content-box;padding:1rem;background:#fff;border-radius:6px;color:#374151;box-shadow:0 8px 23px rgb(0 0 0 / 50%);}.fancybox__caption{max-width:80%;--fancybox-opacity:1;}
            `)
                addScriptModule(`
                import{Fancybox}from"https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.esm.js";Fancybox.bind('[data-fancybox="images"]',{Thumbs:false,Toolbar:false,Image:{zoom:false,click:false,wheel:"slide",},});
            `);
                break;
        };
    
    
        // 标题    
        let script2 = $('<script type="text/javascript">let pager=null;</script>');
        $("head").append(script2);
        addStyle('#titleHrefs{display: inline-block;background-color: #f9f4dc;border: 1px solid; border-radius: 4px;}');
        let titleHrefs = $("<div id =titleHrefs></div>");
    
        if (os.isPc) //判断是否PC
        {
            if ($(".title2").length <= 0) {
                titleHrefs.append($("header h1").text());
                console.log("header h1 属性存在");
            } else {
                titleHrefs.append($(".title2").text());
                console.log(".title2 属性存在");
            }
            console.log("PC");
        } else if (os.isPhone) //判断是否iPhone
        {
            if ($(".title2").length <= 0) {
                titleHrefs.append($("header h1").text());
                console.log("header h1 属性存在");
            } else {
                titleHrefs.append($(".title2").text());
                console.log(".title2 属性存在");
            }
            console.log("iPhone");
        } else if (os.isAndroid) //判断是否Android
        {
            if ($(".title2").length <= 0) {
                titleHrefs.append($("header h1").text());
                console.log("header h1 属性存在");
            } else {
                titleHrefs.append($(".title2").text());
                console.log(".title2 属性存在");
            }
            console.log("Android");
        } else if (os.isTablet) //判断是否平板
        {
            if ($(".title2").length <= 0) {
                titleHrefs.append($("header h1").text());
                console.log("header h1 属性存在");
            } else {
                titleHrefs.append($(".title2").text());
                console.log(".title2 属性存在");
            }
            console.log("Tablet");
        }
    
        //获取页数
        let paginationClass = $(".pager a");
        let myLength = paginationClass.length;
        // console.log(paginationClass);
        // console.log(myLength);
        // console.log($(paginationClass).eq(-2).text());
    
    
        /*!
         * Viewer.js v1.10.4
         * https://fengyuanchen.github.io/viewerjs
         *
         * Copyright 2015-present Chen Fengyuan
         * Released under the MIT license
         *
         * Date: 2022-02-13T08:39:57.620Z
         *viewerjsCSS*/
        let viewerCssLink = "https://cdn.staticfile.org/viewerjs/1.10.4/viewer.min.css";
        let viewerCssData = await Get(viewerCssLink);
        addStyle(viewerCssData);
    
        addStyle(`ul li{
                list-style-type:none;
                line-height:100%;
            }
            body{
                background:#4a4035;
            } 
            #viewer{
                padding:0px;
                margin:0px;
            }
            .imgbox{
                position: relative;
                overflow: hidden;
            }
            .imgnum{
                position: absolute;
                font-size:75%;
                left: 5px;
                top: 5px;
                background: #17A1FF;
                background: rgba(23,161,255,0.5);
                z-index: 100;
                padding: 0px 5px;
                color: #f9f9f9;
                border-radius: 2px;
            }
        `);
        'use strict';
        $("body").empty();
        let i = 1;
        let num = 0;
        let str3 = self.location.href;
        let newStr = str3.replace(/.aspx/g, "");
        let flag = /c49(p)?\d*/g.test(newStr);
        if (flag) {
            newStr = newStr.replace(/c49(p)?\d*/g, "");
        } else {
            newStr = newStr.replace(/c71(p)?\d*/g, "");
        }
        // console.log(newStr);
        // console.log(self.location.href);
    
        let viewer2 = $('<ul id ="viewer"></ul>');
        $("body").append(viewer2)
        viewer2.append(titleHrefs);
    
        let n = 0;
        do {
            let url2 = "";
            if (flag) {
                url2 = newStr + 'c49p' + i + ".aspx";
            } else {
                url2 = newStr + 'c71p' + i + ".aspx";
            }
            console.log(url2)
            let data = await Get(url2);
    
            let image;
            if (str3.indexOf("www") > 0) {
                image = $("#content img", data);
            } else {
                image = $("#content img", data);
            }
            image.each(function (item) {
                n++;
                let imgli = $('<li class = "imgbox"></li>');
                if ($(this)[0].hasAttribute("src")) {
                    $(this).attr("data-original", $(this).attr("src"));
                } else {
                    $(this).attr("src", $(this).attr("data-original"));
                }
                let src = $(this).attr("src");
                $(this).attr("width", "100%");
                $(this).attr("style", "float: left;border-radius: 8px; margin: 1px");
                let imageItem ="<a data-fancybox=\'images\' href=\'" + src + "\'>"+$(this)[0].outerHTML+"</img></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
            // setInterval(function () {
            //     console.log('sleep');
            // }, 1000);
        } while (i <= myLength);
    
        num = $("img").length
        $(".imgnum").each(function (index, value) {
            if (index < num) {
                // console.log($(this));
                $(this).text(`[${index+1}/${num}]`)
            } else {
                return false;
            }
        })
    
        // setTimeout(() => {
        //     let viewer3 = new Viewer(document.getElementById('viewer'), {
        //         //inline:true,
        //         viewed() {}
        //     });
        // }, 3000);
    
        function Get(link) {
            return new Promise(function (resolve) {
                $.get(link, data => {
                    resolve(data);
                })
            });
        }
    })();
}