Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
/** * Nom : DeluxeHistory * Auteur : Dake * Basé sur du code Ajax de GôTô * Dernière mise à jour : 11 mars 2008 * Adaptación al español: Sanbec 03/12/2008 * Adaptación a Wikiviajes: Alan.lorenzo 09/02/2013 */ var sysopsDeluxeHistory = null; var botsDeluxeHistory = null; function extractUsers(res) { pattern = /title\=\"Usuari[ao]:(.*?)\"/g, s = ""; while((result = pattern.exec(res)) != null) { result = result[1].replace(''', '\''); s += result + "||"; } return s; } function getBots() { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { /* mange l'exception */ } if (!cookies.get("botsDeluxeHistory")) { ajax.conn.onreadystatechange = function () { if (ajax.conn.readyState == 4) { botsDeluxeHistory = extractUsers(ajax.getResult()) // conservé pour une semaine cookies.setWithDelay("botsDeluxeHistory", botsDeluxeHistory, 1000*3600*24*7) getSysops(); } } ajax.sendRequest("//es.wikivoyage.org/w/index.php?title=Special:Listusers&group=bot&limit=500&action=raw", "GET", true) } else { botsDeluxeHistory = cookies.get("botsDeluxeHistory") getSysops(); } } function getSysops() { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { /* mange l'exception */ } if (!cookies.get("sysopsDeluxeHistory")) { ajax.conn.onreadystatechange = function () { if (ajax.conn.readyState == 4) { sysopsDeluxeHistory = extractUsers(ajax.getResult()) // conservé pour une semaine cookies.setWithDelay("sysopsDeluxeHistory", sysopsDeluxeHistory, 1000*3600*24*7) deluxeHistoryProcess(); } } ajax.sendRequest("//es.wikivoyage.org/w/index.php?title=Special:Listusers&group=sysop&limit=500&action=raw", "GET", true) } else { sysopsDeluxeHistory = cookies.get("sysopsDeluxeHistory") deluxeHistoryProcess(); } } // code by Martin Honnen function getOuterHTML (node) { if (node.nodeType == 3) { return node.nodeValue; } else if (node.nodeType == 1) { var html = ''; html += '<' + node.nodeName; for (var a = 0; a < node.attributes.length; a++) html += ' ' + node.attributes[a].nodeName + '="' + node.attributes[a].nodeValue + '"'; if (node.childNodes.length == 0) { html += ' \/>'; } else { html += '>'; } for (var c = 0; c < node.childNodes.length; c++) html += getOuterHTML(node.childNodes[c]); html += '<\/' + node.nodeName + '>'; } return html; } function deluxeHistoryProcess() { var sysopsList = sysopsDeluxeHistory.split("||") var botsList = botsDeluxeHistory.split("||") var lis = document.getElementById("pagehistory").getElementsByTagName("li"); for (var i=0; i<lis.length; i++) { var spanNode = lis[i].getElementsByTagName("a"); if(spanNode[2].href.match("/index\.php") ) { if (typeof (spanNode[3]) == "undefined") { continue; // Ne corrige pas vraiment le problème des révisions masquées, mais évite au moins de casser tout le JavaScript sur la page } var username = spanNode[3].childNodes[0].nodeValue; } else { var username = spanNode[2].childNodes[0].nodeValue; } // check le statut du contributeur var className = "history-user-normal"; // bot ? for (var j=0;j<botsList.length;j++) { if (botsList[j] == username) { className = "history-user-bot"; break; } } // sysop ? for (var j=0;j<sysopsList.length;j++) { if (sysopsList[j] == username) { className = "history-user-sysop"; break; } } // ip ? var ip = /(\d{1,3}\.){3}\d{1,3}|([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}/; if (ip.exec(username)) { className = "history-user-ip" } // ajout des icônes var specialOp = ""; var comment = ""; for (var h=0;h<spanNode.length;h++) { if (spanNode[h].getAttribute("class") == "comment") { var comment = getOuterHTML(spanNode[h]) break; } } var regexExpEvents = new Array(); regexExpEvents[0] = /((r|R)(é|e)vocation|(r|R)v |(R|r)evert|(v|V)andal(isme|e))/; regexExpEvents[1] = /(a restauré|a (e|é)ffacé|(s|S)uppression)/; regexExpEvents[2] = /((R|r)enommage|a déplacé|a renommé)/; regexExpEvents[3] = /((semi|Semi)-(p|P)rotection|(P|p)rotection|(A|a) protégé)/; var iconsEvents = new Array(); iconsEvents[0] = "//upload.wikimedia.org/wikipedia/commons/thumb/7/77/Crystal_Clear_action_reload.png/20px-Crystal_Clear_action_reload.png" iconsEvents[1] = "//upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Crystal_Clear_action_exit.png/20px-Crystal_Clear_action_exit.png" iconsEvents[2] = "//upload.wikimedia.org/wikipedia/commons/thumb/4/45/Crystal_Clear_action_2rightarrow.png/20px-Crystal_Clear_action_2rightarrow.png" iconsEvents[3] = "//upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Crystal_Clear_action_lock.png/20px-Crystal_Clear_action_lock.png" if (comment) { for (var k=0;k<regexExpEvents.length;k++) { if (regexExpEvents[k].test(comment)) { var imgTag = "<img src=\"" + iconsEvents[k] + "\" />" specialOp = "<div class=\"" + className + "\" style=\"float: right; vertical-align:top;\">" + imgTag + "</div>" } } } lis[i].innerHTML = "<div class=\"" + className + "\">" + specialOp + lis[i].innerHTML + "</div>" inputNodes = lis[i].getElementsByTagName("input"); for (var j=0;j<inputNodes.length;j++) { inputNodes[j].style.visibility='visible'; } for (var j=0;j<spanNode.length;j++) { if(spanNode[j].getAttribute("class")=="history-user") { spanNode[j].setAttribute("class", className); } } } } if (mw.config.get('wgAction') == "history") $(getBots);