定时发布云剪贴板

字面意思,在一天的固定时间内发布洛谷云剪贴板,前提是你得在浏览器中挂着一个洛谷云剪贴板的网页。

// ==UserScript==
// @name         定时发布云剪贴板
// @namespace    https://www.luogu.com.cn/user/542457
// @version      1.0.0
// @description  字面意思,在一天的固定时间内发布洛谷云剪贴板,前提是你得在浏览器中挂着一个洛谷云剪贴板的网页。
// @author       cff_0102
// @match        https://www.luogu.com.cn/paste*
// @icon         https://www.luogu.com.cn/favicon.ico
// @license      MIT
// ==/UserScript==

(function() {// generated by GPT-4
    'use strict';

    const timeArray = ["11:45:14", "19:19:18"];//两个时间间隔建议大于10秒(对于一分钟要发多个的情况);为防止时间偏差等意料之外的情况建议在 xx:xx:05 - xx:xx:55 之间

    function abc(){location.reload();}
    function clickButton() {
        var button = document.querySelector('button[data-v-7ade990c][data-v-d469cf9c][type="button"].btn-submit');
        if(button) {
            button.click();
        } else {
            console.log('未找到按钮!');
        }
        setTimeout(abc,2000);
    }
    function redirectToPastePage() {
        window.location.href = 'https://www.luogu.com.cn/paste';
    }
    function main() {
        clickButton();
    }

    function executeEventsAtGivenTimes(timeArray) {
        const now = new Date();
        const currentSeconds = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds();

        for (let time of timeArray) {
            const eventTime = time.split(":");
            const eventSeconds = parseInt(eventTime[0]) * 3600 + parseInt(eventTime[1]) * 60 + parseInt(eventTime[2]);

            if (eventSeconds > currentSeconds) {
                const timeDifference = eventSeconds - currentSeconds;
                setTimeout(main, timeDifference * 1000);
                console.log(`Will execute main() in ${timeDifference} seconds.`);
            }
        }
    }
    function checkCurrentUrl() {
        const currentUrl = window.location.href;
        if (currentUrl != "https://www.luogu.com.cn/paste") {
            redirectToPastePage();
        }
    }
    // 调用函数检查当前链接
    checkCurrentUrl();
    executeEventsAtGivenTimes(timeArray);
})();