User:Ahecht/Scripts/refresh.js: Difference between revisions

Content deleted Content added
Undid revision 1237088885 by Ahecht (talk) meant to edit sandbox
increase number of pages purged at a time
Line 8:
const reuse = ( typeof refreshReuseBubble === 'undefined' ? false : refreshReuseBubble );
function getWait(d, type, totalCount) {
var wait=2000{edit: 8000, purge: 2100};
if (d && d?.query && d.query?.userinfo) {
var hitsratelimits = d.query.userinfo?.ratelimits[type].user.hits;
if (d.query.userinfo.rights
&& d.query.userinfo.rights.includes("noratelimit")) {
wait = {edit: 1, purge: 1};
} else if (d.query.userinfo.ratelimits) {
['edit', 'purge'].forEach ( (v) => {
&& d.query.userinfo.ratelimits[type]
&& var u = d.query.userinfo.ratelimits?.[typev]?.user;
if (u && u?.hits <&& totalCountu?.seconds) {
&& d.query.userinfo.ratelimits[type].user.hits
console.log(v + " rate limit: hits=" + u.hits + ", seconds=" + u.seconds);
&& d.query.userinfo.ratelimits[type].user.seconds)
if (u.hits < totalCount) {
{
wait[v] = Math.ceil( (u.seconds/u.hits) * 10001050 );
var hits = d.query.userinfo.ratelimits[type].user.hits;
wait } =else 1;{
var seconds = d.query.userinfo.ratelimits[type].user.seconds;
console.log(type totalCount+ " rateitems limit:to hits="refresh +is hitsless +than ", seconds=" + secondsu.hits);
wait[v] = 1;
if (hits < totalCount) {
{ }
wait = Math.ceil( (seconds/hits) * 1000 );
} else {
} );
console.log(totalCount+" items to refresh is less than "+hits);
wait = 1;
}
}
}
console.log("UsingMillisecond " + wait + " milliseconds waitwaits between queries:");console.log(wait);
return wait;
}
Line 40 ⟶ 39:
setTimeout(function() {
doRefresh(action, count, totalCount, wait);
}, wait[action]);
} else if (confirm("Done!\n\nReload page?") == true) {
document.___location.reload();
} else {
mw.notify("Done!", {type: 'success', tag: "bubble" + (reuse ? 0 : 'done')});
}
}
Line 48 ⟶ 49:
function postFail(code, error) {
console.error(error);
var err = error?.textStatus || code;
if (confirm("Error performing " + action + ":" + code + "!\n\nContinue?") == true) {
var errMsg;
if (confirm("Error performing " + action + ": " + codeerr + "!\n\nContinue?") == true) {
errMsg = "Continuing after "+err+" error...";
postDone();
} else {
errMsg = "Aborted due to "+err+" error!";
}
mw.notify(errMsg, { tag: "bubble" + (reuse ? 0 : "error"), type: 'error',
autoHideSeconds: (action == 'purge') ? 'long' : 'short' } );
}
function postSuccess() {
count = count + ( (action == "purge") ? ((apiParams.titles.match(/\|/g) || []).length + 1) : 1 );
var tag = reuse ? 0 : count;
mw.notify(++count + " of " + totalCount + " page(s) were updated", {
tag: "bubble" +tag }(reuse ? 0 : count);,
autoHideSeconds: (action == 'purge') ? 'long' : 'short'
} );
postDone();
}
Line 62 ⟶ 73:
if (action == "purge") {
var numPages = Math.round(wait.purge/wait.edit) || 1;
apiParams.titles = pageList.shiftsplice(0, numPages).join('|');
apiParams.forcerecursivelinkupdate = "1";
new mw.Api().post(apiParams).fail(postFail).done(postSuccess);
Line 107 ⟶ 119:
} ).fail( function(e) {
console.error(e);
doRefresh(action, 0, pageList.length, 1000{edit: 8000, purge: 2100});
} ).done( function(ui) {
doRefresh(action,var 0,len pageList.length, getWait(ui, action,= pageList.length));
mw.notification.autoHideLimit = len;
mw.notify('Performing '+action+' on '+len+' page(s)...', {
autoHideSeconds: (action == 'purge') ? 'long' : 'short',
tage: 'bubble0'
} );
doRefresh(action, 0, len, getWait(ui, len));
} );
}