欢迎来到《魔法使的约定》中文WIKI - 当前用户未登录
WIKI建设交流群:578085100;日服游戏交流群:821895698;中文服游戏交流群:790127155
全站通知:
Widget:巡查助手
刷
历
编
跳到导航
跳到搜索
当前页面使用
无脑巡查,请慎重使用 × | 点击展开/收起:
// dummy patrol(支持自动翻页)
(function () {
mw.loader.using(['mediawiki.api']).then(function () {
var api = new mw.Api();
var DELAY = 800;
function fetchAllUnpatrolled(continueKey, collected) {
collected = collected || [];
var params = {
action: 'query',
list: 'recentchanges',
rcprop: 'ids|title|user|type',
rcshow: '!patrolled',
rclimit: 'max', // ⭐使用 max,让 API 返回最大允许值(500 或 5000)
formatversion: 2
};
if (continueKey) params.rccontinue = continueKey;
return api.get(params).then(function (result) {
var batch = result?.query?.recentchanges || [];
collected.push.apply(collected, batch);
if (result.continue && result.continue.rccontinue) {
// ⭐继续下一页
return fetchAllUnpatrolled(result.continue.rccontinue, collected);
}
return collected;
});
}
// ⭐开始执行
fetchAllUnpatrolled().then(function (changes) {
if (!changes.length) {
alert('🎉 没有未巡查的编辑或日志!');
return;
}
console.log('🔍 共发现 ' + changes.length + ' 条未巡查记录,开始巡查…');
function loop(i) {
if (i >= changes.length) {
alert('✅ 所有未巡查记录处理完毕!');
return;
}
var rc = changes[i];
if (!rc?.rcid) {
return setTimeout(function(){ loop(i+1); }, DELAY);
}
api.postWithToken('patrol', { action: 'patrol', rcid: rc.rcid })
.then(
() => console.log('✔ 已巡查:' + rc.title + ' (' + rc.type + ', rcid=' + rc.rcid + ')'),
(err) => console.warn('❌ 巡查失败:' + rc.title, err)
)
.always(() => setTimeout(() => loop(i+1), DELAY));
}
loop(0);
}).catch(function (e) {
alert('❌ 获取未巡查记录失败');
console.error(e);
});
});
})();
在其他页面使用
{{#widget:巡查助手}}

沪公网安备 31011002002714 号