Greasy Fork

吾爱破解论坛助手

移除广告、精简页面、后台自动签到、验证问答自动填充

// ==UserScript==
// @name         吾爱破解论坛助手
// @namespace
// @icon         https://avatar.52pojie.cn/images/noavatar_small.gif
// @version      1.04
// @description  移除广告、精简页面、后台自动签到、验证问答自动填充
// @author       test
// @match        https://www.52pojie.cn/*
// @license      MIT
// @grant        GM_addStyle
// @namespace https://greasyfork.org/users/984773
// ==/UserScript==

;(function () {
    'use strict'
    runjs1()
    runjs2()
    runjs3()
})()

function runjs1() {
    const css = `
    /* 页面背景 */
    body{ background: none !important }

    /* 顶部工具条 */
    #toptb{ display: none !important; }

    /* 版规 */
    .bml{ display: none; }

    /* 帖内广告:水平 + 竖直 */
    .dnch_eo_pt, .dnch_eo_pr{ display: none !important; }

    /* 用户签名 + 签名下的提示 */
    .sign, .dnch_eo_pb{ display: none !important; }

    /* 底部免责声明 */
    .res-footer-note{ display: none !important; }

    /* 底部广告 */
    .dnch_eo_f{ display: none !important; }

    /* 菜单广告 */
    .dnch_eo_mu{display: none !important;}

    /* 回帖框背景图 */
    #f_pst #fastpostmessage{ background: none !important }

  `
    try {
        GM_addStyle(css)
    } catch (e) {
        console.log('脚本失效,刷新后重试。', e)
    }
}
function runjs2() {
    function saveDate() {
        localStorage.setItem('autoSign', new Date().toDateString())
    }
    function isTody() {
        var lastSignDate = localStorage.getItem('autoSign')
        if (lastSignDate) {
            return new Date(lastSignDate).toDateString() === new Date().toDateString()
        } else {
            return false
        }
    }

    function bSign() {
        return new Promise(function (resolve, reject) {
            var f = document.createElement('iframe')
            // f.style="width:1000px;height:500px;display: none;outline: none;"
            f.src = '/home.php?mod=task&do=apply&id=2&referer=%2Fforum.php'
            f.style = 'width:1000px;height:500px;'
            f.onload = function (e) {
                var u = e.path[0].contentWindow.location.search
                var c = f.contentWindow.document.body.textContent
                if (u.indexOf(s.p) >= 0) {
                    if (c.indexOf(s.n) > 0) {
                    } else {
                        f.remove()
                        resolve(c)
                    }
                }
            }
            document.body.append(f)
        })
    }

    let s = {
        a: '正在自动签到...',
        b: '本期您已申请过此任务',
        c: '您已经签到了!',
        d: '任务已完成',
        f: '签到成功!',
        g: '签到失败!',
        h: '<img src="https://static.52pojie.cn/static/image/common/wbs.png" class="qq_bind" align="absmiddle" alt="">',
        i: '自动签到中..',
        j: '#hd .wp #um p > a > img[src*="qds.png"]',
        k: 'home.php?mod=task&do=apply&id=2',
        l: 'home.php?mod=task&do=draw&id=2',
        m: '403 Forbidden',
        n: '请开启JavaScript并刷新该页',
        o: 0,
        p: '?mod=task&do=draw',
        q: '?mod=task&do=apply',
    }
    function autoSign(num) {
        if (!isTody()) {
            let a = document.querySelector(s.j)
            if (s.o || a) {
                s.o = 1
                a = a.parentNode
                a.text = s.i
                try {
                    var x = new Ajax()
                } catch (e) {
                    if (!num || num < 2) {
                        setTimeout(function () {
                            autoSign(num + 1)
                        }, 2000)
                    }
                    return
                }
                console.log(s.a)
                bSign().then(function (res) {
                    if (res.indexOf(s.b) > 0) {
                        console.log(s.c)
                        saveDate()
                        a.outerHTML = s.h
                    } else if (res.indexOf(s.d) > 0) {
                        console.log(s.f)
                        saveDate()
                        a.outerHTML = s.h
                    } else if (res.indexOf(s.m) > 0 || res.indexOf(s.n) > 0) {
                        autoSign(0)
                    } else {
                        console.log(s.g)
                    }
                })
            }
        }
    }
    autoSign(0)
}
function runjs3() {
    //验证问答自动填充
    let times = 0
    const intervalFn = setInterval(() => {
        const tipObj = document.getElementById('seccodeqS0_menu')
        const inputObj = document.getElementById('secqaaverify_qS0')
        if (tipObj && inputObj) {
            inputObj.value = tipObj.innerHTML.split('答案:')[1]
            clearInterval(intervalFn)
        }
        times++
        if (times >= 5) clearInterval(intervalFn)
    }, 1000)
}