MediaWiki:ChatImages/code.js

// <syntaxhighlight lang="javascript /* Autor : Houmgaor    Verion : 1.0.0 document.querySelector("body").addEventListener("DOMNodeInserted", function { //Trouve le dernier message envoyé, s'active à chaque fois qu'il tape une lettre, vérifie que le message contient un lien         var message = document.querySelector("body").querySelectorAll('.message')[document.querySelector("body").querySelectorAll('.message').length - 1].querySelector('a');         if (typeof message_save == 'undefined') {            message_save = [];        } else {            message_save.push(message);            if (message_save > 4) {                message_save.shift;            }        }        if (message !== null && message_save[message_save.length - 1] != message_save[message_save.length - 2]) {            var link = {};            link.href = message.href; //Selectionne la fin du lien HTML, pour ne garder que le lien link.target = message.href.substr(location.origin.length + 6); //Recherche les mots-clés caractéristiques d'une image if (/^(File|Image|Fichier)\:.+\.(png|gif|jpeg|tiff|jpg)$/i.test(link.target.split('%7C')[0] ) ) { message.innerHTML = ''; var image = new XMLHttpRequest; image.open('GET', link.href.split('%7C')[0]); image.send(null); image.addEventListener('readystatechange', function {                  if (image.readyState == 4 && image.status == 200) {                       var img = image.responseText; //La variable img est l'adresse de l'image                       img = img.substring(img.indexOf('id="file"'), img.indexOf('', img.indexOf('id="file"') ) );                       img = img.substring(img.indexOf('src=') + 5, img.indexOf('"', img.indexOf('src=') + 5) ).replace(/&amp;/g, '&');                       message.querySelector('img').setAttribute('src', img);                       var alt = decodeURIComponent(link.target),                        title = decodeURIComponent(link.target),                        width = '175px',                        height = '175px';                       if (link.href.split('%7C').length > 1) {                           for (var i = 0; i < link.href.split('%7C').length; i++) { if (!/\d+\s*px\s*$/i.test(decodeURIComponent(link.href.split('%7C')[i]) ) ) { alt = (decodeURIComponent(link.href.split('%7C')[i]) !== undefined) ? decodeURIComponent(link.href.split('%7C')[i]).replace(/_/g, ' ').trim : alt; title = alt; } else { width = (/^(\d{1,4})\s*px$/i.test(decodeURIComponent(link.href.split('%7C')[i]).replace(/_/g, ' ').trim ) ) ? RegExp.$1 + 'px' : width; height = (parseInt(width) * 3/4) + 'px'; if (/^(\d{1,4})\s*x\s*(\d{1,4})\s*px$/i.test(decodeURIComponent(link.href.split('%7C')[i]).replace(/_/g, ' ').trim ) ) { width = RegExp.$1 + 'px'; height = RegExp.$2 + 'px'; }                              }                           }                       }                       message.querySelector('img').setAttribute('alt', alt); message.querySelector('img').setAttribute('title', title); message.querySelector('img').setAttribute('width', width); message.querySelector('img').setAttribute('height', height); } else if (image.readyState == 4 && image.status == 404) { switch (wgUserLanguage) { case 'en': message.innerHTML = 'Missing file'; break; case 'es': message.innerHTML = 'Expediete no ecuentrado'; break; case 'fr': message.innerHTML = 'Fichier introuvable'; break; // Vous pouvez ajouter d'autres langues si vous êtes sûr de l'écriture, dans l'ordre alphabétique de préférence case '': message.innerHTML = ''; break; default: message.innerHTML = 'Missing file'; break; }                      message.innerHTML = message.innerHTML.fontcolor('red'); } else if (image.readyState == 4) { message.innerHTML = 'Hello world! I\'m the error ' + image.status + '! (something wrong has appened)'.fontcolor('red'); }              });           }        }    }); //