V2EX.SIGN

v2ex自动签到

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         V2EX.SIGN
// @namespace    http://tampermonkey.net/
// @version      0.1.2
// @description  v2ex自动签到
// @author       cinhoo
// @license      GPL-3.0 License
// @match        https://*.v2ex.com/
// @match        https://*.v2ex.com/?*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=v2ex.com
// @require      https://unpkg.com/[email protected]/dist/axios.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    async function mission_daily() {
        let banner = document.querySelector('#Rightbar a[href="/mission/daily"]')
            || document.querySelector('#Wrapper a[href="/mission/daily"]');
        if (!banner) return;

        let resp = await axios.get("/mission/daily");
        let template = document.createElement("template");
        template.innerHTML = resp.data;

        let button = template.content.querySelector('#Main .cell input[value^="领取"]')
            || template.content.querySelector('#Wrapper .cell input[value^="领取"]');
        let link = button.getAttribute("onclick").match(new RegExp("'([^']*)'"))[1];
        resp = await axios.get(link);
        if (resp.data.includes("每日登录奖励已领取")) {
            banner.parentNode.innerHTML = '<span class="gray"><li class="fa fa-ok-sign" style="color: #0c0;"></li> &nbsp;每日登录奖励已领取</span>';
        }
    }

    mission_daily();
})();