AntAutoPost

Auto post ant articles

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Advertisement:

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

Advertisement:

// ==UserScript==
// @name         AntAutoPost
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Auto post ant articles
// @author       snaillonely
// @match        *://s.alipay.com/life/web/fortune/publishNew*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_log
// @license      MIT
// ==/UserScript==
function toIsoString(date) {
    var pad = function(num) {
        return (num < 10 ? '0' : '') + num;
    }

    return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate()) + 'T' + pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds())
}
var countDown

(function() {
    'use strict';

    let btn1 = document.createElement('input')
    btn1.type = 'datetime-local'
    btn1.step = '30'
    btn1.style.margin = "8px"
    let btn2 = document.createElement('input')
    btn2.type = 'radio'
    btn2.id = 'auto_post_checkbox'
    btn2.name = 'auto_post'
    btn2.style.margin = "8px"
    let label2 = document.createElement('label')
    label2.textContent = '定时发送'
    label2.setAttribute('for', 'auto_post_checkbox')
    label2.style.margin = "8px"
    let btn3 = document.createElement('input')
    btn3.type = 'radio'
    btn3.id = 'auto_vip_post_checkbox'
    btn3.name = 'auto_post'
    btn3.style.margin = "8px"
    let label3 = document.createElement('label')
    label3.textContent = '定时推送'
    label3.setAttribute('for', 'auto_vip_post_checkbox')
    label3.style.margin = "8px"
    let btn4 = document.createElement('input')
    btn4.type = 'radio'
    btn4.id = 'no_post_checkbox'
    btn4.name = 'auto_post'
    btn4.style.margin = "8px"
    let label4 = document.createElement('label')
    label4.textContent = '让我休息会儿'
    label4.setAttribute('for', 'no_post_checkbox')
    label4.style.margin = "8px"

    let divBtn = document.createElement('div')
    divBtn.appendChild(btn1)
    divBtn.appendChild(btn2)
    divBtn.appendChild(label2)
    divBtn.appendChild(btn3)
    divBtn.appendChild(label3)
    divBtn.appendChild(btn4)
    divBtn.appendChild(label4)
    divBtn.setAttribute('class', 'buttonContainer___g_Ssy')
    // divBtn.addEventListener('click', () => { btn2.click() })

    function clickEvent () {
        if (btn2.checked || btn3.checked) {
            if (btn3.checked) {
                var vipPostBtn = document.querySelector("#react-root > div > div.main-content > div:nth-child(8) > span > button")
                if (vipPostBtn == null || vipPostBtn.disabled) {
                    btn2.click()

                    alert("今天的推送机会已用完")
                    return
                } else {
                    GM_log("start auto vip post...")
                }
            }

            if (btn2.clicked) {
                GM_log("start auto post...")
            }

            if (countDown == null) {
                countDown = setInterval(() => {
                    let myDate = new Date();
                    let current = toIsoString(new Date())
                    GM_log("current time is: " + current + " and post time is: " + btn1.value)
                    var btn
                    if (btn1.value != "" && btn1.value <= current) {
                        if (btn2.checked) {
                            btn = document.querySelector("#react-root > div > div.main-content > div.buttonContainer___g_Ssy > button.ant-btn.ant-btn-primary")
                        }
                        if (btn3.checked) {
                            btn = document.querySelector("#react-root > div > div.main-content > div:nth-child(8) > span > button")
                        }
                        btn4.click()

                        btn.click()
                        GM_log("auto post")
                    }
                    // 每 10 分钟调用一次保存,防止页面过期自动退出
                    if (current.split(":")[1].endsWith("0")) {
                        GM_log("auto save...")
                        document.querySelector("#react-root > div > div.main-content > div.buttonContainer___g_Ssy > button:nth-child(2)").click()
                    }
                }, 60000)
            }
        } else {
            clearInterval(countDown)
            GM_log("stop auto post countDown...")
            countDown = null
        }
    }

    btn2.addEventListener('click', clickEvent)
    btn3.addEventListener('click', clickEvent)
    btn4.addEventListener('click', clickEvent)

    var searchTime = 0
    let searchMainContent = setInterval(() => {
        let temp = document.querySelector("#react-root > div > div.main-content")
        if (temp == null) {
            GM_log('can not find the button')
            searchTime++
            if (searchTime == 10) {
                alert('版本过低,请联系开发人员升级')
                clearInterval(searchMainContent)
            }
        } else {
            temp.appendChild(divBtn)
            btn4.click()
            clearInterval(searchMainContent)
        }
    }, 1000)
})();