User:Mr.Z-man/badimages.js

// For description, see User:Mr.Z-man/badimages

if(mw.config.get('wgAction') == 'view') {

preemptImages();

}

function preemptImages() {

appendCSS('#bodyContent img {visibility:hidden;}\n#bodyContent img.goodimage {visibility:visible;}');

}

function appendCSS(text) {

var s = document.createElement('style');

s.type = 'text/css';

s.rel = 'stylesheet';

if (s.styleSheet) s.styleSheet.cssText = text //IE

else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null

document.getElementsByTagName('head')[0].appendChild(s);

return s;

}

function badImageGet() {

var url = mw.config.get('wgScriptPath') + '/api.php?action=query&titles=MediaWiki:Bad%20image%20list&prop=links&format=json&plnamespace=6&pllimit=500&callback=badImages';

var scriptElem = document.createElement('script');

scriptElem.setAttribute('src',url);

scriptElem.setAttribute('type','text/javascript');

document.getElementsByTagName('head')[0].appendChild(scriptElem);

}

function badImages(obj) {

if(!obj['query'] || !obj['query']['pages']) return

badimages = obj['query']['pages']['1724570']['links'];

var badimagelist=[];

for (var q=0;q

badimagelist[q] = badimages[q].title;

}

badimagelist = badimagelist.toString();

for (var i=0; i

imagename = document.images[i].src.toString();

if (imagename.indexOf('upload.wikimedia.org') != -1) {

if (imagename.indexOf('/thumb/') == -1) {

imagename = imagename.replace(/http:\/\/upload\.wikimedia\.org\/wikipedia\/\w+\/\w\/\w\w\//, 'Image:');

} else {

imagename = imagename.replace(/http:\/\/upload\.wikimedia\.org\/wikipedia\/\w+\/thumb\/\w\/\w\w\//, 'Image:');

imagename = imagename.replace(/\/\w+px-.*/, '');

}

imagename = imagename.replace(/_/g, ' ');

if (badimagelist.indexOf(imagename) != -1) {

document.images[i].src = mw.config.get('wgServer') + mw.config.get('wgScript') +'?title=' + imagename;

document.images[i].alt = imagename;

document.images[i].className += ' badimage';

} else {

document.images[i].className += ' goodimage';

}

}

}

appendCSS('#bodyContent img.badimage {visibility:visible;}');

}

if(mw.config.get('wgAction') == "view") {

$(badImageGet);

}