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 wait;▼
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 {
}
}
}
step = target.gcmlimit || target.glhlimit || 1;
mw.notify("Fetching " + target.generator + "...", { tag: "bubble"+count } );
var apiParams = $.extend({
action: 'purge',
forcelinkupdate: 1▼
generator: 'categorymembers',▼
},
target,
▲ forcelinkupdate: 1
console.log(apiParams);
▲ }, addParams);
new mw.Api().post(apiParams)
.fail(function(e) {
alert("Fail!");
})
.done(function(d) {
console.log(d);
count += step;
if (d.warnings === undefined && d["continue"] !== undefined
&& (d["continue"].gcmcontinue || d["continue"].glhcontinue)) {
▲ mw.notify(count + " pages were updated");
setTimeout(function() {
postPurge(
}, 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)
▲ generator: 'categorymembers',
$(mw.util.addPortletLink('p-cactions', '#', 'refresh', 'pt-refresh'))▼
.click(function() {▼
};
▲ postPurge(mw.config.get('wgPageName')
} else {
generator: 'linkshere',
titles: mw.config.get("wgTitle").split(/\/(.+)/)[1].replace(/_/g, " "),
glhlimit: 1
};
}
postPurge(target, 0, getWait(d));
});
} );
}
|