掘金日常一键操作

后台判断自动签到+抽奖

目前為 2021-10-18 提交的版本,檢視 最新版本

// ==UserScript==
// @name         掘金日常一键操作
// @version      2.2
// @description  后台判断自动签到+抽奖
// @match        https://juejin.cn/**
// @run-at       document-end
// @namespace https://gf.qytechs.cn/users/823922
// ==/UserScript==
{
    // 注:现在本人还在研究如何自动获取到 aid 和 uuid,所以脚本里都是直接写死的,如果使用有问题,建议开控制台看下自己的请求里携带的 aid 及 uuid,然后替换掉第一行的 userInfo 变量
    let userInfo = 'aid=2608&uuid=7016487434494658063';
    let jqExist = () => {
        return typeof jQuery != 'undefined';
    }
    // 用于加载 jq
    if (!jqExist()) {
        var script = document.createElement('script'),
            head = document.getElementsByTagName('head')[0];
        script.type = 'text/javascript';
        script.charset = 'UTF-8';
        script.src = 'https://code.jquery.com/jquery-3.1.1.min.js';
        head.appendChild(script);
    }
    let loadTime;
    loadTime = setInterval(() => { //  轮询检查 jq 载入,载入成功后去掉轮询
        if (jqExist()) {
            unsafeWindow.$ = $;
            clearInterval(loadTime);
            run.once();
            $(document).on('click', '*:not(#ou-chi-mao)', function() {
                run.once();
            })
        }
    }, 1000);

    function choujiang() {
        console.log('调用抽奖函数');
        let obj = {};
        let flag = true;
        simpleDialog.open();
        new Promise((resolve, reject) => {
            call();

            function call() {
                fetch(`https://api.juejin.cn/growth_api/v1/lottery/draw?${userInfo}`, httpConfig).then(resp => resp.json()).then(data => {
                    if (data.err_msg != 'success') {
                        resolve();
                        return;
                    }
                    let name = data.data.lottery_name;
                    console.log(name);
                    simpleDialog.addRecord(name)
                    obj[name] = obj[name] || 0;
                    obj[name] = obj[name] + 1;
                    setTimeout(() => call(), parseInt(Math.random() * 1500) + 300);
                })
            }
        }).then(data => {
            let keys = Object.keys(obj);
            simpleDialog.empty();
            let msg = keys.length > 0 ? keys.map(k => k + ': ' + obj[k]).join('<br>') : '抽奖次数不足!';
            simpleDialog.addRecord(msg);
            simpleDialog.close();
        })
        return false;
    }

    async function dayTask() {
        console.log('调用日活函数')
        // return false;
        let msgs = [];
        let freeLottery = true;
        // 签到
        await fetch(
                `https://api.juejin.cn/growth_api/v1/check_in?${userInfo}&_signature=_02B4Z6wo00101q966EAAAIDCL3gSAGCq5SKvfuzAAMrJs3JkiZSLejXKJy5lR-3Rot9hYdZVnmHKrdQPh0MmwDCQsjT9tEIN0G3uIK8RsU7pcEznZ9.oqqfseed8PMV.rul6lxG-dkqFtwsq61`,
                httpConfig)
            .then(function(response) {
                return response.json();
            }).then(data => {
                if (data.err_msg == 'success') {
                    msgs.push('签到成功!');
                } else {
                    freeLottery = false;
                    msgs.push(data.err_msg);
                    unsafeWindow.localStorage.juejinDayTask = currDate();
                }
                console.log(data);
            });
        if (!freeLottery) return false; // 没有免费抽奖就退出
        await fetch(`https://api.juejin.cn/growth_api/v1/lottery/draw?${userInfo}`, httpConfig)
            .then(function(response) {
                return response.json();
            }).then(data => {
                if (data.err_msg == 'success') {
                    msgs.push(`获得奖品 ${data.data.lottery_name}`);
                }
                console.log(data);
            });
        simpleDialog.open();
        simpleDialog.addRecord(msgs.join('<br>'));
        simpleDialog.close(1200);
    }

    function currDate() {
        let date = new Date();
        return [date.getFullYear(), date.getMonth() + 1, date.getDate()].join('-');
    }
    var httpConfig = {
        "headers": {
            "accept": "*/*",
            "accept-language": "zh-CN,zh;q=0.9",
            "content-type": "application/json",
            "sec-ch-ua": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "\"Windows\"",
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "same-site"
        },
        "referrer": "https://juejin.cn/",
        "referrerPolicy": "strict-origin-when-cross-origin",
        "body": "{}",
        "method": "POST",
        "mode": "cors",
        "credentials": "include"
    };
    var run = (function() { // 用于处理,页面内点击时,异步刷新页面
        let clickTime;
        return {
            once: () => {
                clearTimeout(clickTime);
                clickTime = setTimeout(() => {
                    let $menu = $('.nav-list>.main-nav-list>ul');
                    if ($('#ou-chi-mao').length == 0) {
                        // 当发现页面元素变化时,重写渲染,并绑定元素
                        $menu.find('li:gt(4)').remove();
                        $menu.find('li:last>a').attr({
                            'id': 'ou-chi-mao',
                            'href': 'javascript:void(0);',
                        }).css({
                            'color': '#03f9',
                            // 'font-family': 'serif',
                            'font-weight': 'bolder'
                        }).text('血统鉴定');
                        // 通过 html 删除,再添加的方式,移除这个按钮上的绑定事件
                        let html = $('#ou-chi-mao').parent().prop('outerHTML');
                        $('#ou-chi-mao').parent().remove();
                        $menu.append(html);
                        $('#ou-chi-mao').click(function() {
                            choujiang();
                            console.log('false')
                            return false;
                        })
                    }
                    let sysDate = unsafeWindow.localStorage.juejinDayTask;
                    if (sysDate == null || sysDate != currDate()) {
                        dayTask();
                    }
                }, 500)
            },
        }
    })();
    var simpleDialog = (function() { // 简易的弹窗效果
        return {
            open: () => {
                let html =
                    `<div id="lotteryResultDialog" style="position: absolute;z-index: 9999;width: 200px;height: 200px;left: calc(50vw - 100px);top: calc(30vh - 100px);
                           border-radius: 5px;padding: 10px;overflow: hidden;box-shadow:  0 0 7px 1px #f00a;background: #fffa;">
                           <div style="overflow: auto;width: 240px;height: 200px;"></div>
                        </div>
                        `;
                $('body').append(html);
            },
            addRecord: (msg) => {
                let html = `<div style="padding: 5px;font-size: 16px;display:none">${msg}</div>`;
                $('#lotteryResultDialog>div').prepend(html);
                $('#lotteryResultDialog>div>div:first').show(100).css({
                        'color': 'red'
                    })
                    .siblings().css({
                        'color': '#000'
                    })
            },
            close: (time = 1200) => {
                setTimeout(() => $('#lotteryResultDialog').slideUp(300, function() {
                    $('#lotteryResultDialog').remove()
                }), time)
            },
            empty: () => {
                $('#lotteryResultDialog>div').empty();
            }
        }
    })();
    unsafeWindow.simpleDialog = simpleDialog;
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址