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

Content deleted Content added
m Ahecht moved page User:Ahecht/refresh.js to User:Ahecht/Scripts/refresh.js without leaving a redirect: Move to scripts
Rewrite to support use from Special:WhatLinksHere
Line 1:
// Add "refresh" option on category pages and on "Special:WhatLinksHere".
// Makes forceupdate nulledit on all pages in the category or all linked pages.
// Based on [https://phabricator.wikimedia.org/T170039#3473755] and [[:he:User:IKhitron/101.js]]
 
mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ).then( function() {
function getWait(d) {
var step = 1;
var countwait=1000;
if (d && d.query && d.query.userinfo && d.query.userinfo.ratelimits
var wait;
&& d.query.userinfo.ratelimits.purge)
function postPurge(cat, addParams) {
{
if (d.query.userinfo.ratelimits.purge.user
&& d.query.userinfo.ratelimits.purge.user.hits
&& d.query.userinfo.ratelimits.purge.user.seconds)
{
var hits = d.query.userinfo.ratelimits.purge.user.hits;
var seconds = d.query.userinfo.ratelimits.purge.user.seconds;
wait = Math.ceil( (seconds/hits) * 1000 );
} else {
wait = 10002000;
}
}
var return wait;
}
function postPurge(cattarget, count, wait, addParams) {
step = target.gcmlimit || target.glhlimit || 1;
mw.notify("Fetching " + target.generator + "...", { tag: "bubble"+count } );
var apiParams = $.extend({
action: 'purge',
forcelinkupdate: 1
generator: 'categorymembers',
},
'gcmtitle': cat,
target,
'gcmlimit': step,
}, addParams);
forcelinkupdate: 1
console.log(apiParams);
}, addParams);
new mw.Api().post(apiParams)
.fail(function(e) {
alertconsole.log("Fail"e);
alert("Fail!");
})
.done(function(d) {
console.log(d);
mw.notify((count + 1) + " pages were updated", { tag: "bubble"+count } );
count += step;
if (d.warnings === undefined && d["continue"] !== undefined
&& (d["continue"].gcmcontinue || d["continue"].glhcontinue)) {
mw.notify(count + " pages were updated");
setTimeout(function() {
postPurge(cattarget, count, wait, d["continue"]);
}, wait);
} else {
Line 32 ⟶ 51:
}});
}
if ( (mw.config.get('wgNamespaceNumber') == 14) || (mw.config.get("wgCanonicalSpecialPageName") == "Whatlinkshere") ){
wait = 1000;
new mw.Api().get({
meta: 'userinfo',
uiprop: 'ratelimits'
}).done( function(d) {
var target;
if (d && d.query && d.query.userinfo && d.query.userinfo.ratelimits
if (mw.config.get('wgNamespaceNumber') == 14) {
&& d.query.userinfo.ratelimits.purge)
waittarget = 2000;{
generator: 'categorymembers',
$(mw.util.addPortletLink('p-cactions', '#', 'refresh', 'pt-refresh'))
postPurge(gcmtitle: mw.config.get('wgPageName').replace(/_/g, " "),
.click(function() {
count =gcmlimit: 0;1
};
postPurge(mw.config.get('wgPageName')
} else {
.replace(/_/g, " "));
});target = {
generator: 'linkshere',
titles: mw.config.get("wgTitle").split(/\/(.+)/)[1].replace(/_/g, " "),
glhlimit: 1
};
}
$(mw.util.addPortletLink('p-cactions', '#', 'refreshRefresh links', 'pt-refresh'))
.click(function() {
postPurge(target, 0, getWait(d));
});
} );
}