自用论坛辅助签到

常用论坛辅助签到工具,包括远景论坛、天使动漫论坛、52破解、TTG、卡饭等

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         自用论坛辅助签到
// @namespace    bbshelper
// @version      2.0.1
// @description  常用论坛辅助签到工具,包括远景论坛、天使动漫论坛、52破解、TTG、卡饭等
// @author       Eva
// @include      http*://u2.dmhy.org/*
// @include      http*://*.pcbeta.com/*
// @include      http*://www.tsdm*.*/*
// @include      http*://totheglory.im/*
// @include      http*://www.52pojie.cn/*
// @include      http*://www.smzdm.com/*
// @include      http*://bbs.kafan.cn/*
// @include      http*://www.natfrp.com/*
// @include      http*://www.cordcloud.*/*
// @include      http*://www.mielink.com/*
// @include      http*://zodgame.xyz/*
// @include      http*://o2v3.imotor.com/*
// @include      http*://www.flyert.com/*
// @include      http*://www.55188.com/*
// @include      http*://fishc.com.cn/*
// @include      http*://www.pdawiki.com/*
// @include      http*://bbs.acgrip.com/*
// @include      http*://ikuuu.co/*
// @include      http*://hifini.com/*
// @include      http*://www.anywlan.com/*
// @include      http*://www.mydigit.cn/*
// @include      http*://bbs.tampermonkey.net.cn/*
// @include      http*://legado.cn/*
// @include      http*://www.znds.com/*
// @grant        unsafeWindow
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM.deleteValue
// @require      https://cdn.jsdelivr.net/npm/jquery@3.5.0/dist/jquery.min.js
// @run-at 		 document-end
// ==/UserScript==

(function () {
    // 日期格式化
    Date.prototype.format = function (fmt) {
        const o = {
            "M+": this.getMonth() + 1,                 //月份
            "d+": this.getDate(),                    //日
            "h+": this.getHours(),                   //小时
            "m+": this.getMinutes(),                 //分
            "s+": this.getSeconds(),                 //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds()             //毫秒
        }
        if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substring(4 - RegExp.$1.length))
        }
        for (const k in o) {
            if (new RegExp("(" + k + ")").test(fmt)) {
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substring(("" + o[k]).length)))
            }
        }
        return fmt
    }

    // 判断上次签到日期
    const checkSignDate = function (name) {
        return new Promise(function (resolve, reject) {
            const lastSignDate = getData(name)
            if (!lastSignDate || compareDate(new Date().format("yyyy-MM-dd"), lastSignDate)) {
                resolve(lastSignDate)
            }
        })
    }

    // U2
    if (matchURL("u2.dmhy.org")) {
        if (matchURL("showup.php")) {
            const message = $("textarea[name='message']")
            if (message) message.text("注意:回答按钮点击时即提交,手滑损失自负~")
        } else if (window.find("立即签到")) {
            window.location.href = "showup.php"
        }
    }

    // 远景
    if (matchURL("bbs.pcbeta.com") || matchURL("i.pcbeta.com")) {
        // 判断是否登录
        if ($('.vwmy').length > 0) {
            const variableName = 'pcbeta'
            checkSignDate(variableName).then(() => {
                console.log('开始自动签到!')
                $.ajax({
                    type: "GET",
                    url: "/home.php?mod=task&do=apply&id=149",
                    success: function (data) {
                        if (data.indexOf('恭喜您,任务已成功完成,您将收到奖励通知,请注意查收') != -1) {
                            console.log('签到完成!')
                            setSignData(variableName)
                        }
                        if (data.indexOf('抱歉,本期您已申请过此任务,请下期再来') != -1) {
                            console.log('重复签到!')
                            setSignData(variableName)
                        }
                    }
                })
            })
        }
    }

    // TTG
    if (matchURL("totheglory.im")) {
        if ($("#sp_signed")) setTimeout(() => $("#sp_signed a")[0].click(), 100)
    }

    // 天使动漫
    if (matchURL("tsdm")) {
        qd('签到领奖!', 'wl_s')
    }

    // 52破解
    if (matchURL("52pojie.cn")) {
        const qdimg = $("img[src$='qds.png']")
        if (qdimg) {
            $('a[href^="home.php?mod=task&do=apply&id=2"]')[0].click()
        }
    }

    // 什么值得买
    if (matchURL("smzdm.com")) {
        const signBtn = $('.J_punch')
        if ($('.J_punch').length > 0 && signBtn.text() == '签到领奖') {
            $('.J_punch')[0].click()
        }
    }

    // 卡饭
    if (matchURL("kafan.cn")) {
        const dklink = $("img[src$='dk.png']").closest("a")
        if ($("img[src$='wb.png']").closest("a").css('display') === 'none') {
            dklink[0].click()
        }
    }

    // Sakura Frp
    if (matchURL("www.natfrp.com")) {
        const variableName = 'sakura_frp'

        // 判断是否登录
        if ($('#token').length > 0) {
            checkSignDate(variableName).then(() => {
                // 跳转到签到页面
                window.location.href = "/user/sign"
            })
        }

        // 签到
        if ($('#sign').length > 0) {
            setTimeout(function () {
                $('#switch_captcha')[0].click()
            }, 1000)
            setTimeout(function () {
                console.log('开始签到')
                $('#sign').click()
                setSignData(variableName)
            }, 5000)
        } else {
            if (window.find("您今天已经签到过了")) {
                console.log('已签到')
                setSignData(variableName)
            }
        }
    }

    // CordCloud
    if (matchURL("cordcloud")) {
        const qdBtn = $("#checkin")
        if (qdBtn.length > 0) {
            $.ajax({
                type: "POST",
                url: "/user/checkin",
                dataType: "json",
                success: function (data) {
                    $("#checkin-msg").html(data.msg);
                    $("#checkin-btn").hide();
                    $("#msg").html(data.msg);
                }
            })
        }
    }

    // 羊圈
    if (matchURL("www.mielink.com")) {
        $('body').bind('DOMNodeInserted', function (e) {
            if ($(e.target).find('span:contains(流量红包)').length > 0) {
                $('span:contains(流量红包)')[0].click()
            }
        })
    }

    // ZodGame
    if (matchURL("zodgame.xyz")) {
        qd('', 'fd_s')
    }

    // 神曲音乐论坛
    if (matchURL("o2v3.imotor.com")) {
        if ($('#umenu > a[href^="logging.php?action=login"]').length > 0) {
            console.log('未登录')
            return
        }

        const variableName = 'imotor'
        checkSignDate(variableName).then(() => {
            if (matchURL('dps_sign:sign')) {
                if (window.find("今天签到了吗") && window.find("写下今天最想说的话")) {
                    $('input[value="kx"]').attr('checked', true)
                    $("#todaysay").val('每天签到水一发。。。')
                    $('input[type="submit"]')[0].click()
                }
                if (window.find("您今天已经签到过了")) {
                    setSignData(variableName)
                }
            } else if (window.find('每日签到')) {
                window.location.href = "plugin.php?id=dps_sign:sign"
            }
        })
    }

    // 飞客茶馆
    if (matchURL("flyert.com")) {
        if ($('a[data-title="签到"]').length > 0) {
            $.ajax({
                url: 'plugin.php?id=k_misign:sign&operation=qiandao&formhash=' + $("input[name='formhash']").val() + '&from=insign&is_ajax=1',
                dataType: 'html',
                success: function (data) {
                    if (data.indexOf('签到成功') != -1) {
                        console.log("签到成功!");
                        location.reload();
                    }
                }
            })
        }
    }

    // 理想论坛
    if (matchURL("55188.com/plugin.php?id=sign")) {
        if ($('#addsign').length > 0) {
            $.ajax({
                url: 'plugin.php?id=sign&mod=add&jump=1',
                dataType: 'html',
                success: function (data) {
                    if (data.indexOf('success') != -1) {
                        console.log("签到成功!");
                        $('#addsign').attr("class", "btn btnvisted");
                    }
                }
            })
        }
    }

    // 鱼C论坛
    if (matchURL("fishc.com.cn")) {
        const variableName = 'fishc'
        checkSignDate(variableName).then(() => {
            if ($('#ls_username').length == 0) {
                // 跳转到签到页面
                window.location.href = "plugin.php?id=k_misign:sign"
            }
        })

        // 签到
        if (matchURL('k_misign:sign')) {
            if ($('#JD_sign').length > 0) {
                $('#JD_sign')[0].click()
                console.log('签到成功!')
                setSignData(variableName)
            } else if ($('.btnvisted').length > 0) {
                console.log('已签到!')
                setSignData(variableName)
            }
        }
    }

    // 掌上百科
    if (matchURL("www.pdawiki.com")) {
        if ($('form[action^="member.php?mod=logging&action=login"]').length > 0) {
            console.log('未登录')
            return
        }

        const variableName = 'pdawiki'
        checkSignDate(variableName).then(() => {
            if (matchURL('dsu_paulsign:sign')) {
                if (window.find("今天签到了吗") && window.find("写下今天最想说的话")) {
                    $('input[value="kx"]').attr('checked', true)
                    $("#todaysay").val('每天签到水一发。。。')
                    $('#qiandao').submit()
                }
                if (window.find("您今天已经签到过了")) {
                    setSignData(variableName)
                }
            } else if (window.find('每日签到')) {
                window.location.href = "plugin.php?id=dsu_paulsign:sign"
            }
        })
    }

    // VCB-S
    if (matchURL("bbs.acgrip.com")) {
        if ($('a.login').length > 0) {
            console.log('未登录')
            return
        }
        const variableName = 'vcb-s'
        checkSignDate(variableName).then(() => {
            if (matchURL('dsu_paulsign-sign')) {
                if (window.find("今天签到了吗") && window.find("写下今天最想说的话")) {
                    $('input[value="kx"]').attr('checked', true)
                    $("#todaysay").val('每天签到水一发。。。')
                    $('#qiandao').submit()
                }
                if (window.find("您今天已经签到过了")) {
                    setSignData(variableName)
                }
            } else if (window.find('每日签到')) {
                window.location.href = "dsu_paulsign-sign.html"
            }
        })
    }

    // iKuuu
    if (matchURL("ikuuu.co/user")) {
        const variableName = 'ikuuu'
        checkSignDate(variableName).then(() => {
            if (window.find("每日签到")) {
                $('#checkin-div a')[0].click()
            }
            if (window.find("明日再来")) {
                setSignData(variableName)
            }
        })
    }

    // HiFiNi
    if (matchURL("hifini.com")) {
        const variableName = 'hifini'
        checkSignDate(variableName).then(() => {
            if (window.find("签到")) {
                $('#sign')[0].click()
                setSignData(variableName)
            }
            if (window.find("已签")) {
                setSignData(variableName)
            }
        })
    }

    // Anywlan
    if (matchURL("www.anywlan.com")) {
        if ($('a[href^="member.php?mod=logging&action=login"]').length > 0) {
            console.log('未登录')
            return
        }

        const variableName = 'anywlan'

        // 签到页面
        if (matchURL('dc_signin:sign')) {
            if ($('#signform').length > 0) {
                $('#signform [name="emotid"]').val('1')
                $('#signform [name="content"]').val('记上一笔,hold住我的快乐!')
                $("#signform").submit()
                setSignData(variableName)
            }
        }

        checkSignDate(variableName).then(() => {
            if (window.find("您今日已经签过到")) {
                setSignData(variableName)
                window.location.href = "javascript:history.back()"
            } else {
                window.location.href = "plugin.php?id=dc_signin:sign"
            }
        })
    }

    // 数码之家
    if (matchURL("www.mydigit.cn")) {
        if ($('#ls_username').length > 0) {
            console.log('未登录')
            return
        }

        // 签到页面
        if (matchURL('k_misign-sign.html')) {
            if ($('#JD_sign').length > 0) {
                $('#JD_sign')[0].click()
            }
        }

        const variableName = 'mydigit'
        checkSignDate(variableName).then(() => {
            if (window.find("您的签到排名")) {
                setSignData(variableName)
            } else {
                window.location.href = "k_misign-sign.html"
            }
        })
    }

    // 油猴中文网
    if (matchURL("bbs.tampermonkey.net.cn")) {
        if ($('.comiis_dlq').length > 0) {
            console.log('未登录')
            return
        }

        const variableName = 'tampermonkey_cn'
        checkSignDate(variableName).then(() => {
            if (matchURL('dsu_paulsign-sign.html')) {
                if (window.find("今天签到了吗") && window.find("写下今天最想说的话")) {
                    $("#fd_s").attr('checked', true)
                    $("#todaysay").val("每天签到水一发。。。")
                    $("#qiandao").submit()
                }
                if (window.find("您今天已经签到过了")) {
                    setSignData(variableName)
                }
            } else if (window.find('每日签到')) {
                window.location.href = "dsu_paulsign-sign.html"
            }
        })
    }

    // 阅读论坛
    if (matchURL("legado.cn")) {
        if ($('#return_ls').length > 0) {
            console.log('未登录')
            return
        }

        // 签到页面
        if (matchURL('k_misign-sign.html')) {
            if ($('#JD_sign').length > 0) {
                $('#JD_sign')[0].click()
            }
        }

        const variableName = 'legado'
        checkSignDate(variableName).then(() => {
            if (window.find("您的签到排名")) {
                setSignData(variableName)
            } else {
                window.location.href = "k_misign-sign.html"
            }
        })
    }

    // 智能电视网
    if (matchURL("www.znds.com")) {
        const signBtn = $('a[onclick^="showWindow(\\"ljdaka"]')
        if (signBtn.length > 0) {
            signBtn[0].click()
        }
    }

    function qd(checkElement, emoji) {
        if (matchURL('dsu_paulsign:sign')) {
            if (window.find("今天签到了吗") && window.find("写下今天最想说的话")) {
                $("#" + emoji).attr('checked', true)
                $("#todaysay").val("每天签到水一发。。。")
                $("#qiandao").submit()
            }
        } else if (window.find(checkElement)) {
            window.location.href = "plugin.php?id=dsu_paulsign:sign"
        }
    }

    // 比较日期大小
    function compareDate(date1, date2) {
        const d1 = new Date(date1)
        const d2 = new Date(date2)
        return d1.getTime() > d2.getTime()
    }

    function getStorageData() {
        return GM_getValue('BBSSignHelperData') ?? {}
    }

    function getData(key) {
        return getStorageData()[key]
    }

    function setData(key, value) {
        const data = getStorageData()
        data[key] = value
        GM_setValue('BBSSignHelperData', data)
    }

    function setSignData(variableName) {
        setData(variableName, new Date().format("yyyy-MM-dd"))
    }

    function deleteStorageData() {
        GM.deleteValue("BBSSignHelperData")
    }

    function matchURL(x) {
        return window.location.href.indexOf(x) != -1
    }
})()