コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Nanona15dobato/script/botreq.js/count.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • 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];
}