مدیاویکی:Gadget-DeluxeHistory.js
پرش به ناوبری
پرش به جستجو
نکته: پس از ذخیره کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: بروید به Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/** * Nom : DeluxeHistory * Auteur : Dake * Basé sur du code Ajax de GôTô * Dernière mise à jour : 11 mars 2008 * Commentaires : * {{Projet:JavaScript/Script|DeluxeHistory}} */ var sysopsDeluxeHistory = null; var botsDeluxeHistory = null; function extractUsers(res) { pattern = /title\=\"کاربر:(.*?)\"/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("//fa.wikipedia.org/w/index.php?title=Special:ListUsers&group=bot&limit=500&offset=0&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("//fa.wikipedia.org/w/index.php?title=Special:ListUsers&group=sysop&limit=500&offset=0&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; // } 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}\.\d{1,3}.\d{1,3}.\d{1,3}/; 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 (wgAction == "history") addOnloadHook(getBots);