/******************************************************************************************************************/
/* Enhanced "What links here" script */
/* */
/* author: User:Technical_13 */
/* source: http://en.wikipedia.org/wiki/User:Technical_13/Scripts/Enhanced_"What_links_here".js */
/* documentation: http://en.wikipedia.org/wiki/User:Technical_13/Scripts/Enhanced_"What_links_here" (redlink) */
/* contact: http://en.wikipedia.org/wiki/User_talk:Technical_13 */
/* license: CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) */
/******************************************************************************************************************/
// Look for "What links here" in the toolbox
if (mw.config.get('wgNamespaceNumber') >= 0 && $('#t-whatlinkshere').length === 0) {
alert('Missing "What links here" in the side menu! Contact script creator for assistance.');
// return;
} else {
/*/ Start process
$('#t-whatlinkshere').load(function () {
*/
// Build arrays
$.ajax({
url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&meta=siteinfo&siprop=namespaces&format=json',
dataType: 'json',
async: false,
success: function (siResponse) {
var i = 0;
for (var ns in siResponse.query.namespaces) {
if (siResponse.query.namespaces[ns].id > -1) {
// Define namespace number
nsPos[i][0] = siResponse.query.namespaces[ns].id;
// Define namespace displayed name
nsPos[i][1] = siResponse.query.namespaces[ns].nodeValue;
// Pull number of links for current namespace up to 500
$.ajax({
url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&list=backlinks&bllimit=500&blnamespace=' + nsNum + '&bltitle=' + mw.config.get('wgPageName') + '&format=json',
dataType: 'json',
async: false,
success: function (blResponse) {
// Define number of links for current namespace up to 500
bl = blResponse.query.backlinks.length;
if (isNaN(bl) ){
bl = 0;
}
if(typeof nsPos !== 'undefined') {
nsPos[i][2] = bl;
}
}
});
// TRON
if(typeof nsPos !== 'undefined') {
alert(i + ' => [' + nsPos[i][0] + ', ' + nsPos[i][1] + ', ' + nsPos[i][2] + ']');
}
// TROFF
i++;
}
}
}
});
// for now //});
}