/*
==LiveWP==
*Documentation : [[:fr:User:EDUCA33E/LiveRC/Documentation]]
*Authors : [[:fr:User:EDUCA33E]] & [[:fr:User:TiChou]]
*Version: 0.3.4b (beta)
Version modifiée basée sur la version du 1er avril 2007 à 00:49 :
http://fr.wikipedia.org/w/index.php?title=User:EDUCA33E/LiveRC.js&oldid=15525649
=== Variables globales ===
*/
if (wgTitle == "EDUCA33E/LiveRC") {
// Appel des paramètres par défaut de LiveRC ;
// ///////////////////////////////////////////
document.write('');
// Appel des paramètres utilisateur ;
// ///////////////////////////////////////////
document.write('');
var lastrevid,lasttimestamp=1; // Timestamp d'initialisation;
// Découpage de l'URL et de ses paramètres;
var _GET = new Array();
var _uri = location.href;
var _temp_get_arr = _uri.substring(_uri.indexOf('?')+1, _uri.length).split("&");
var _temp_get_arr_1 = new Array();
for(_get_arr_i=0; _get_arr_i<_temp_get_arr.length; _get_arr_i++){
_temp_get_arr_1 = _temp_get_arr[_get_arr_i].split("=");
_GET[decodeURIComponent(_temp_get_arr_1[0])] = decodeURIComponent(_temp_get_arr_1[1]);
}
delete _uri; delete _temp_get_arr; delete _temp_get_arr_1;
// Variables d'état (pour test sur rc.state);
var IP = 1;
var BOT = 2 << 0;
var SYSOP = 2 << 1;
var NEW = 2 << 2;
var MINOR = 2 << 3;
var NEWNS = 2 << 4;
var RENAMED = 2 << 5;
var PATROLLED = 2 << 6;
var REVERT = 2 << 7;
var BLANKING = 2 << 8;
var REPLACED = 2 << 9;
var REDIRECT = 2 << 10;
var CATEGORIZED = 2 << 11;
var LOCK = 2 << 12;
var FULLLOCK = 2 << 13;
var HOMONYMIE = 2 << 14;
var ADQ = 2 << 15;
var BA = 2 << 16;
var APDQ = 2 << 17;
var COPYRIGHT = 2 << 18;
var PAS = 2 << 19;
var FIRE = 2 << 20;
var lstSysop = new Array(); // Liste des Sysop;
var lstContact = new Array(); // Gestion liste de contact;
var lstRevoc = new Array(); // Gestion liste des révoc;
/* // Gestion liste de suivi;
var lstSuivi = new Array();
var lstSuiviHH = new Array(); */
}
/*
===Utilitaires===
*/
var wpajax = {
http: function(bundle) {
// mandatory: bundle.url
// optional: bundle.async
// optional: bundle.method
// optional: bundle.headers
// optional: bundle.data
// optional: bundle.onSuccess (xmlhttprequest, bundle)
// optional: bundle.onFailure (xmlhttprequest, bundle)
// optional: bundle.otherStuff OK too, passed to onSuccess and onFailure
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
wpajax.httpComplete(xmlhttp,bundle);
};
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers)
xmlhttp.setRequestHeader(field,bundle.headers[field]);
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
},
httpComplete: function(xmlhttp,bundle) {
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess)
bundle.onSuccess(xmlhttp,bundle);
} else if (bundle.onFailure) {
bundle.onFailure(xmlhttp,bundle);
} else {
// A activer en debug mode ?
// alert(xmlhttp.statusText);
}
}
};
// Parser
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = "false";
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
/*
=== LiveDiff ===
*/
function liveDiff(page, id, oldid) {
var el = document.getElementById( 'livePreviewTitle' );
el.innerHTML="Recherche du diff de : "+page+" en cours...";
wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title='+encodeURIComponent(page)+'&diffonly=1&diff='+id+'&oldid='+oldid,
onSuccess: getDiff, mpage: page, mid: id, moldid:oldid});
}
function getDiff(xmlreq, data) {
var doc = gml_XMLParse(xmlreq.responseText);
var page=data.mpage;
var oldid=data.moldid;
var id=data.mid;
var bC = doc.getElementById('bodyContent');
var LP = document.getElementById( 'livePreview' );
var dLP = document.getElementById( 'divLivePreview' );
var lD = getElementsByClass('diff',bC,null);
// Get username of submitter
var user1 = getElementsByClass('diff-otitle',doc,'td');
if (user1 != null && user1[0] != null)
user1 = user1[0].getElementsByTagName('a')[2].innerHTML;
var user2 = getElementsByClass('diff-ntitle',doc,'td');
if (user2 != null && user2[0] != null)
user2 = user2[0].getElementsByTagName('a')[2].innerHTML;
if (user2 == "défaire") {
user2 = getElementsByClass('diff-ntitle',doc,'td');
user2 = user2[0].getElementsByTagName('a')[3].innerHTML;
}
user1=user1.replace(new RegExp(/\'/g), "\\'");
user2=user2.replace(new RegExp(/\'/g), "\\'");
var upage=page.replace(new RegExp(/\'/g), "\\'");
if (lD[0] == null)
LP.innerHTML = bC.innerHTML;
else {
if (document.getElementById('showDiffR').checked) {
var avantEl = getElementsByClass('diff-deletedline',bC,null);
var apresEl = getElementsByClass('diff-addedline',bC,null);
var avant = "";
var apres = "";
var lav = avantEl.length;
var lap = apresEl.length;
for(var n=0; n < lav ; n++)
avant = avant + avantEl[n].innerHTML + " ";
for(var n=0; n < lap ; n++)
apres = apres + apresEl[n].innerHTML + " ";
LP.innerHTML = "
"+avant+"
"+apres+"
";
}
else {
LP.innerHTML = "
"+lD[0].innerHTML+"
";
}
}
if (dLP.style.display == "none") {
var elcb = document.getElementById( 'shidPrev' );
elcb.checked="true";
dLP.style.display = "inline";
}
var optAvert = "";
var optl = lstAvert.length;
for (j=0; j'+lstAvert[j].string+'';
}
var entete = document.getElementById( 'livePreviewTitle' );
entete.innerHTML='Dernier diff de : ' + page + ' • ' +
'(Hist)';
entete.innerHTML = '
' + entete.innerHTML +
'
' +
// Verifier avant si le patrouilleur peut modifier cette page ? (query.php?what=permissions&titles=page)
'['+lang_menu[0].UNDORC+'] • ' +
lang_menu[0].REASON+' : ••• ' +
'['+lang_menu[0].AVERTS+'] : ' +
'' +
'
';
document.getElementById('LiveRevertMessage').focus();
}
function getLiveAverto(user) {
var link = document.getElementById('LiveAvertoLink');
link.href = "javascript:;";
link.style.color = "silver";
link.style.cursor = "default";
link.style.textDecoration = "none";
document.getElementById('averto').disabled = true;
var message = document.getElementById('averto').value;
wpajax.http({ url: wgServer + wgScriptPath + '/index.php?title=User_Talk:' + encodeURIComponent(user) + '&action=edit',
onSuccess: postLiveAverto,
user: user, message: message });
}
function postLiveAverto(xmlreq, data) {
var parser = new DOMParser();
var doc = parser.parseFromString(xmlreq.responseText, 'application/xhtml+xml');
var user = data.user;
var message = data.message;
var wpTextbox1 = encodeURIComponent('{{subst:' + message + '}} ~~~~\n' + doc.getElementById('wpTextbox1').value);
var inputs = doc.getElementById('editform').getElementsByTagName('input');
var editform = new Array();
for (i=0; i
=== LiveHist ===
*/
function liveHist(page) {
var el = document.getElementById( 'livePreviewTitle' );
el.innerHTML="Recherche de l'historique de : "+page+" en cours...";
wpajax.http({url:wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(page) + '&action=history', onSuccess: getHist, message: page });
}
function getHist(xmlreq, data) {
doc = gml_XMLParse(xmlreq.responseText);
bC = doc.getElementById('bodyContent')
var c=data.message;
var LP = document.getElementById( 'livePreview' );
var dLP = document.getElementById( 'divLivePreview' );
LP.innerHTML = bC.innerHTML;
if (dLP.style.display == "none") {
var elcb = document.getElementById( 'shidPrev' );
elcb.checked="true";
dLP.style.display = "inline";
}
var elt = document.getElementById( 'livePreviewTitle' );
elt.innerHTML='Historique de : '+c+'';
}
/*
=== LiveContrib ===
*/
function liveContrib(user) {
var el = document.getElementById( 'livePreviewTitle' );
el.innerHTML="Recherche des contributions de : "+user+" en cours...";
wpajax.http({url:wgServer + '/wiki/Special:Contributions/'+encodeURIComponent(user),
onSuccess: getContrib, message: user });
}
function getContrib(xmlreq, data) {
doc = gml_XMLParse(xmlreq.responseText);
bC = doc.getElementById('bodyContent')
var user=data.message;
var LP = document.getElementById( 'livePreview' );
var dLP = document.getElementById( 'divLivePreview' );
LP.innerHTML = bC.innerHTML;
if (dLP.style.display == "none") {
var elcb = document.getElementById( 'shidPrev' );
elcb.checked="true";
dLP.style.display = "inline";
}
var utilde=user.replace(new RegExp(/\'/g), "\\'");
var optAvert = "";
var optl = lstAvert.length;
for (j=0; j'+lstAvert[j].string+'';
}
var entete = document.getElementById( 'livePreviewTitle' );
entete.innerHTML='Contributions de : '+user+'';
entete.innerHTML = '