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); }