利用者:Nanona15dobato/script/botreq.js/count.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
async function makeContributionLinks(username, editCount) {
const api = new mw.Api();
const maxEditsPerLink = 5000;
const links = [];
let remainingEdits = editCount;
let lastTimestamp = '';
let firstTimestamp = '';
function createLink(count, timestamp) {
let time = new Date(timestamp);
time.setSeconds(time.getSeconds() + 1);
return `{{利用者の投稿記録リンク|${username}|${count}|${time.toISOString().replace(/[-:TZ]/g, '').split('.')[0]}|text=${count}編集}}`;
}
function processContributions(data) {
const contributions = data.usercontribs;
const count = Math.min(5000, remainingEdits);
if (remainingEdits === editCount) firstTimestamp = contributions[count - 1].timestamp;
lastTimestamp = contributions[0].timestamp;
links.push(createLink(count, lastTimestamp));
remainingEdits -= count;
}
async function fetchContributions(uccontinue) {
const options = {
list: 'usercontribs',
ucuser: username,
uclimit: Math.min(maxEditsPerLink, remainingEdits),
ucprop: 'timestamp',
uccontinue: uccontinue
};
const kaisu = Math.ceil(Math.min(5000, remainingEdits) / 500);
console.log(kaisu);
console.log(options);
const data = await iterateQuery(api, options, kaisu);
console.log("----qr-----");
console.log(data[0]);
processContributions(data[0]);
console.log(remainingEdits);
if (remainingEdits > 0 && data[1].continue) {
console.log("----continue-----");
return fetchContributions(data[1].continue.uccontinue);
}
}
await fetchContributions();
return [ links.join(','), firstTimestamp, lastTimestamp];
}