Greasy Fork is available in English.

NGA自动签到

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

// ==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);
})();