NGA自动签到

在每天第一次打开网页版NGA时自动签到。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         NGA自动签到
// @version      1.0
// @license      WTFPL
// @description  在每天第一次打开网页版NGA时自动签到。
// @author       monat151
// @match        *://bbs.nga.cn/*
// @match        *://ngabbs.com/*
// @match        *://nga.178.com/*
// @grant        GM_setValue
// @grant        GM_getValue
// @namespace https://greasyfork.org/users/325815
// ==/UserScript==

/*
    This script is modified from 'https://greasyfork.org/zh-CN/scripts/453626-nga签到装置/code' (origin-author: HeliumOctahelide).
*/

(function() {
    'use strict';

    function checkin() {
        let postData;
        let logging;
        let domain = document.domain;
        fetch(`https://${domain}/nuke.php?__lib=check_in&__act=check_in&__output=8`, {
            method: 'POST',
            headers: new Headers({
                "X-User-Agent": "Nga_Official"
            })
        })
            .then(res => res.arrayBuffer())
            .catch(error => { postData = { 'error': [error] } })
            .then(buffer => new TextDecoder("gbk").decode(buffer))
            .then((res) => {
            postData = JSON.parse(res);
            if (!postData) {
                logging = "奇怪的错误..."
            } else {
                if ('data' in postData) {
                    logging = postData.data[0]
                    var currDate = new Date();
                    let currDateString = currDate.toLocaleDateString();
                    GM_setValue('nga_monat_last_checkin', currDateString);
                }
                else if ('error' in postData) {
                    logging = postData.error[0]
                }
            }
            console.log('[NGA自动签到]', logging);
        });
    }

    setTimeout(()=>{
        let lastCheckInDate = GM_getValue('nga_monat_last_checkin');
        var currDate = new Date();
        let currDateString = currDate.toLocaleDateString();

        if(lastCheckInDate == currDateString){
            console.log('[NGA自动签到]', '今日已经签到过...')
        }
        else{
            checkin();
        }
    },200);
})();