点赞2.0

372 阅读2分钟

1.给沸点点赞

    let html = document.all[0];
    let maxTry = 3;
    let currentTry = 0;
    let isRunning = false
    let liked = 0

    function enterUserLike(url, pnsl) {
        isRunning = true
        let win = window.open(url)
        let sc = win.document.createElement("script")
        win.sessionStorage.setItem('currentDone', 0)
        // 轮询判断是否点赞结束
        let dTimer = setInterval(() => {
            let isDone = win.sessionStorage.getItem('currentDone')
            console.warn("正在判断当前用户是否点赞结束", isDone)
            if (isDone === '1') {
                liked++
                if (liked >= pnsl) {
                    liked = 0
                    currentTry = 0
                    html.scrollTop = html.scrollHeight;
                    setTimeout(allClick, 3000);
                }
                isRunning = false
                clearInterval(dTimer)
            }
        }, 2000)

        // 执行点赞的脚本(防止页面还没打开)
        setTimeout(() => {
            sc.innerHTML = `
                let html = document.all[0];
                let maxTry = 3;
                let currentTry = 0;

                function allClick(nodes) {
                    let ns = document.querySelectorAll(".FishingAtWork,.icon.Like");
                    let nsl = ns.length;
                
                    if (nsl <= 0) {
                        currentTry++
                        console.log("尝试次数加一")
                        if(currentTry >= maxTry){
                            console.log("当前用户点赞结束");
                            sessionStorage.setItem('currentDone',1)
                            setTimeout(()=>{
                                window.close()
                            },3000)
                            return;
                        }
                        html.scrollTop = html.scrollHeight;
                        setTimeout(allClick, 3000);
                        return;
                    }
                
                    for (let i = 0; i < ns.length; i++) {
                        ((i) => {
                            setTimeout(e => {
                                let userNameNode = ns[i].parentNode.parentElement.parentElement.parentElement.parentElement.getElementsByClassName("username")[2];
                                console.log("正在点赞:", userNameNode.innerText);
                                ns[i].click();
                            
                                if (i === nsl - 1) {
                                    html.scrollTop = html.scrollHeight;
                                    setTimeout(allClick, 3000);
                                }
                            }, i * 1000)
                        })(i)
                    }
                }

                allClick();
                `
            win.document.body.appendChild(sc)
        }, 3000)

    }

    // 
    function allClick(nodes) {
        let ns = document.querySelectorAll(".FishingAtWork,.icon.Like");
        let nsl = ns.length;

        // 若没有需要点赞的动态
        if (nsl <= 0) {
            currentTry++
            console.log("尝试次数加一")
            // 尝试三次以后没有找到动态就停止脚本
            if (currentTry >= maxTry) {
                console.log("所有用户点赞结束");
                return;
            }
            html.scrollTop = html.scrollHeight;
            setTimeout(allClick, 3000);
            return;
        }

        for (let i = 0; i < ns.length; i++) {
            setTimeout((e) => {
                function doLike() {
                    let userNameNode = ns[i].parentNode.parentElement.parentElement.parentElement.parentElement.getElementsByClassName("username")[2];
                    console.log(`正在给:${userNameNode.innerText}点赞`);
                    ns[i].click();
                    enterUserLike(`${userNameNode.href}/pins`, nsl)
                }

                let ter = setInterval(() => {
                    // console.log(`${i}---${ter}是否正在点赞`, isRunning);
                    if (!isRunning) {
                        doLike()
                        clearInterval(ter)
                    }
                }, 1000)
            }, 3000)    
        }
    }

    allClick();

2. 给文章点赞。

掘金页面:juejin.cn/?sort=newes…

    let html = document.all[0];
    let maxTry = 3;
    let currentTry = 0;
    let isRunning = false
    let liked = 0

    function enterUserLike(url, pnsl, fn) {
        isRunning = true
        let win = window.open(url)
        let sc = win.document.createElement("script")
        win.sessionStorage.setItem('currentDone', 0)
        // 轮询判断是否点赞结束
        let dTimer = setInterval(() => {
            let isDone = win.sessionStorage.getItem('currentDone')
            console.warn("正在判断当前用户是否点赞结束", isDone)
            if (isDone === '1') {
                liked++
                if (liked >= pnsl) {
                    liked = 0
                    currentTry = 0
                    html.scrollTop = html.scrollHeight;
                    setTimeout(fn, 5000);
                }
                isRunning = false
                clearInterval(dTimer)
            }
        }, 2000)

        // 执行点赞的脚本(防止页面还没打开)
        setTimeout(() => {
            sc.innerHTML = `
                let html = document.all[0];
                let maxTry = 3;
                let currentTry = 0;

                function allClick(nodes) {
                    let ns = document.querySelectorAll(".item.like:not(.active)");
                    let nsl = ns.length;
                
                    if (nsl <= 0) {
                        currentTry++
                        console.log("尝试次数加一")
                        if(currentTry >= maxTry){
                            console.log("当前用户点赞结束");
                            sessionStorage.setItem('currentDone',1)
                            setTimeout(()=>{
                                window.close()
                            },3000)
                            return;
                        }
                        html.scrollTop = html.scrollHeight;
                        setTimeout(allClick, 3000);
                        return;
                    }
                
                    for (let i = 0; i < ns.length; i++) {
                        ((i) => {
                            setTimeout(e => {
                                let userNameNode = ns[i].parentElement.parentElement.parentElement.parentElement.querySelector(".user-message");
                                console.log("正在点赞:", userNameNode.innerText);
                                ns[i].click();
                            
                                if (i === nsl - 1) {
                                    html.scrollTop = html.scrollHeight;
                                    setTimeout(allClick, 3000);
                                }
                            }, i * 400)
                        })(i)
                    }
                }

                allClick();
                `
            win.document.body.appendChild(sc)
        }, 3000)

    }

    // 
    function allClick(nodes) {
        let ns = document.querySelectorAll('.item.like:not(.active)')
        let nsl = ns.length;

        // 若没有需要点赞的动态
        if (nsl <= 0) {
            currentTry++
            html.scrollTop = html.scrollHeight;
            console.log("尝试次数加一")
            // 尝试三次以后没有找到动态就停止脚本
            if (currentTry >= maxTry) {
                console.log("所有用户点赞结束");
                return;
            }
            setTimeout(allClick, 3000);
            return;
        }

        for (let i = 0; i < ns.length; i++) {
            let userNameNode = ns[i].parentElement.parentElement.parentElement.parentElement.querySelector(".user-message");
            console.log(`正在给:${userNameNode.innerText}点赞`);

            setTimeout(() => {
                ns[i].click();
            }, i * 500)

            setTimeout((e) => {
                function doLike() {
                    enterUserLike(`${userNameNode.href}/posts`, nsl, allClick)
                }

                let ter = setInterval(() => {
                    console.log(`${i}---${ter}是否正在点赞`, isRunning);
                    if (!isRunning) {
                        doLike()
                        clearInterval(ter)
                    }
                }, 1000)
            }, i * 1000)
        }
    }

    allClick();