执行自动作业测试。
请求间隔:5 秒
Source |
---|
const nodemw = require('nodemw') const secret = require('./secret') const bot = new nodemw({ ...secret.sites[0], ...secret.users[0], userAgent: secret.userAgent, }) async function getToken(type = 'csrf') { return new Promise((res, rej) => { bot.getToken('', type, (err, token) => { if (err) { rej(err) return } res(token) }) }) } class mwApi { get(params) { return this.query(params, 'GET') } post(params) { return this.query(params, 'POST') } async postWithToken(token, params) { return this.query({ token: await getToken(token), ...params }, 'POST') } query(params, method = 'GET') { return new Promise((resolve, reject) => { bot.api.call( { format: 'json', ...params }, (err, data) => { if (err) { reject(err) return } resolve(data) }, method ) }) } } function login() { return new Promise((res) => bot.logIn(res)) } function sleep(t = 0) { return new Promise((n) => setTimeout(n, t)) } async function loopActions(total = 10, index = 0) { const count = index + 1 const api = new mwApi() console.log(`[${count}/${total}] start`) const data = await api.postWithToken('csrf', { action: 'edit', title: 'User:机智的小鱼君/APIsandbox', appendtext: `\n\n这是第 '''${count}/${total}''' 次执行操作,时间是 ''${new Date().toISOString()}''`, summary: `[${count}/${total}] 自动程序测试`, tags: 'test', }) console.log(`[${count}/${total}] done`, data) if (count >= total) return console.log('All done') console.log('sleep...') await sleep(5000) console.log('next loop') return loopActions(total, count) } !(async () => { await login() loopActions(15) })() |
这是第 1/15 次执行操作,时间是 2021-04-03T20:49:36.486Z
这是第 2/15 次执行操作,时间是 2021-04-03T20:50:02.531Z
这是第 3/15 次执行操作,时间是 2021-04-03T20:50:28.173Z
这是第 4/15 次执行操作,时间是 2021-04-03T20:50:53.870Z
这是第 5/15 次执行操作,时间是 2021-04-03T20:51:19.528Z
这是第 6/15 次执行操作,时间是 2021-04-03T20:51:45.073Z
这是第 7/15 次执行操作,时间是 2021-04-03T20:52:10.798Z
这是第 8/15 次执行操作,时间是 2021-04-03T20:52:36.559Z
这是第 9/15 次执行操作,时间是 2021-04-03T20:53:02.197Z
这是第 10/15 次执行操作,时间是 2021-04-03T20:53:28.030Z
这是第 11/15 次执行操作,时间是 2021-04-03T20:53:53.773Z
这是第 12/15 次执行操作,时间是 2021-04-03T20:54:19.422Z
这是第 13/15 次执行操作,时间是 2021-04-03T20:54:45.168Z
这是第 14/15 次执行操作,时间是 2021-04-03T20:55:10.775Z
这是第 15/15 次执行操作,时间是 2021-04-03T20:55:36.415Z