// ==UserScript== // @name 圈云盒子顶帖器 // @namespace https://circlecloud.ltd/ // @version 0.1 // @description 自动顶贴 // @author MiaoWoo // @match https://www.mcbbs.net/forum-server-1.html // @grant none // ==/UserScript== /* global jq */ (function () { 'use strict' let nextPage = undefined async function sleep(time) { return new Promise((resolve, reject) => setTimeout(resolve, time)) } async function waitNextPage() { nextPage.click() await sleep(200) while (nextPage.innerText != "下一页 »") { await sleep(100) } } async function readServers() { let servers = jq('td.icn').splice(2) return servers.map(function (server) { let serverInfo = {} let line = server.nextElementSibling serverInfo.tid = parseInt(line.children[0].id.split('_')[1]) serverInfo.title = line.children[3].innerText let timeInfo = line.parentNode.children[4].children[1].children[0].children[0] if (timeInfo) { serverInfo.lastpost_time = timeInfo.title serverInfo.topmost = 0 } else { serverInfo.lastpost_time = line.parentNode.children[4].children[1].children[0].innerText serverInfo.topmost = 1 } return serverInfo }) } async function post(method, data) { return await fetch('https://reward.yumc.pw/mcbbs/' + method, { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(r => r.json()) } async function main() { nextPage = document.getElementById('autopbn') let servers = await readServers() await post('updateServers', servers) await sleep(60000) location.href = 'https://www.mcbbs.net/forum-server-1.html' } main() })()