/* ==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'; } 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 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 = '
'+entete.innerHTML + '' + '[Avertir] : ' + '' + '
'; } /*
=== LiveSuivi ===
 */

function liveSysop() {
  wpajax.http({url:wgServer + wgScriptPath + '/index.php?title=Special:Listusers&limit=500&group=sysop', 
                   onSuccess: getSysop, message: "Récup sysoplist" });
}

function getSysop(xmlreq, data) {
  var doc = gml_XMLParse(xmlreq.responseText);
  var bC  = doc.getElementById('bodyContent');
  var lstSys = bC.getElementsByTagName( 'ul' )[ 0 ].getElementsByTagName( 'li' );
  var info="";
  var len = lstSys.length
  for(var i=0; i < len ; i++) {
    info=lstSys[i].getElementsByTagName( 'a' )[ 0 ].innerHTML;
    lstSysop.push(info);
  }

  liveNS();
}

/* function liveWatch() {
  wpajax.http({url:wgServer + wgScriptPath + '/api.php?action=query&list=watchlist&wllimit=500&format=xml', 
                   onSuccess: getWatch, message: "Récup watchlist" });
}

function getWatch(xmlreq, data) {
  var a=xmlreq.responseText;
  var c=data.message;
  var i;
  // document.getElementById('debug').innerHTML = a+"
**************************"; if(a.indexOf("= 0 ; i--) { info=a[i].substr(0,a[i].indexOf("\" pageid")); if (info == "") continue; lstSuivi.push(info); lstSuiviHH.push("--:--"); } //document.getElementById('debug').innerHTML += lstSuivi; } */ function liveNS() { wpajax.http({url: wgServer + wgScriptPath + '/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml', onSuccess: getNS, message: "Récup NS" }); } function getNS(xmlreq, data) { var api = xmlreq.responseXML; if (api.firstChild.nodeName == "error") return; var nss = api.getElementsByTagName('query')[0].getElementsByTagName('namespaces')[0].getElementsByTagName('ns'); var len = nss.length; var i; var id,ns; var options = ""; var lstNs = new Array(); for (i=0; i' + ns + ''; lstNs.push(id); } options = '' + options; document.getElementById('selectNS').innerHTML = ''; liveRC(); } /*
=== LiveRC ===
 */

function supprLigne(quelLigne) {
  var i,len;
  var tab = document.getElementById('tabRC');
  var els = new Array();
  if (quelLigne == '*')
    els = tab.getElementsByTagName('tr');
  else if (quelLigne == '!') {
    var _els = tab.getElementsByTagName('tr');
    len = _els.length;
    for (i=len-1; i>=0; i--)
      if (_els[i].firstChild.style.backgroundColor == 'rgb(255, 250, 205)')
        els.push(_els[i]);
  } else
    els.push(document.getElementById(quelLigne));
  len = els.length;
  for (i=len-1; i>=0; i--)
    if (els[i] != null)
      tab.removeChild(els[i]);
}

function changeLigne(quelLigne) {
  var el = document.getElementById(quelLigne);
  var els1 = el.getElementsByTagName('th');
  var els2 = el.getElementsByTagName('td');
  var len = els1.length;
  for (var i=len-1; i>=0; i--)
    if (els1[i] != null)
      els1[i].style.backgroundColor = "#FFFACD";
  var len = els2.length;
  for (var i=len-1; i>=0; i--)
    if (els2[i] != null)
      els2[i].style.backgroundColor = "#FFFFE0"; 
}

function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if ( node == null )
    node = document;
  if ( tag == null )
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

function tsToHhMm(timestamp) {
  var tz;
  var match, regex = new RegExp();
  if (livercTZ) {
    regex.compile(/^([-+])?(\d?\d):?(\d\d)$/);
    match = regex.exec(livercTZ);
    if (!match) {
      //livercError(lang_error.TZ);
      return 'xx:xx';
    }
    tz = match[2]*60 + match[3]*1;
    tz = match[1] == '-' ? -tz : tz;
  } else {
    var now = new Date();
    tz = -now.getTimezoneOffset();
  }
  regex.compile(/^\d\d\d\d-\d\d-\d\dT(\d\d):(\d\d):\d\dZ$/);
  match = regex.exec(timestamp);
  if (!match) {
    //livercError(lang_error.timestamp);
    return 'xx:xx';
  }
  var tt = (match[1]*60 + match[2]*1 + tz + 1440) % 1440;
  var mm = tt % 60;
  var hh = (tt - mm) / 60 % 24;
  return hh + ':' + (mm < 10 ? '0' : '') + mm;
}

function updateFollowContact() {
  var tempAr = new Array();
  for (var user in lstContact) {
    var timestamp = lstContact[user].ts;
    if (timestamp == 0) continue;
    var utilde = user.replace(new RegExp(/\'/g), "\\'");
    var udiscut  = 'D';
    var ucontrib = 'C';
    var ueditor  = ''+user+'';
    var ligne = '' + tsToHhMm(timestamp) + ' • ' + udiscut + ' • ' + ucontrib + ' • ' + ueditor + '
'; tempAr.push(ligne); } tempAr.sort(); var lvContact = document.getElementById('liveContact'); lvContact.innerHTML = ""; var len = tempAr.length; for (var n=len-1; n>=0; n--) lvContact.innerHTML += tempAr[n]; } function updateFollowRevoc() { var tempAr = new Array(); for (var user in lstRevoc) { var timestamp = lstRevoc[user].ts; var utilde = user.replace(new RegExp(/\'/g), "\\'"); var udiscut = 'D'; var ucontrib = 'C'; var ueditor = ''+user+''; var ligne = '' + tsToHhMm(timestamp) + ' • ' + udiscut + ' • ' + ucontrib + ' • ' + ueditor + ' (' + lstRevoc[user].nb + ' '+lang_menu[0].XTIMES+')
'; tempAr.push(ligne); } tempAr.sort(); var lvRevoc = document.getElementById('liveRevoc'); lvRevoc.innerHTML = ""; var len = tempAr.length; for (var n=len-1; n>=0; n--) lvRevoc.innerHTML += tempAr[n]; } function getRevision(xmlreq, data) { if (document.getElementById('stopLive').checked) return; var api = xmlreq.responseXML.getElementsByTagName('api')[0]; if (api.firstChild.nodeName == "error") return; var match, regex = new RegExp(); var rc = data.rc var title = rc.title; var pageid = rc.pageid; var revid = rc.revid; var oldid = rc.old_revid; var user = rc.user; var comment = (rc.comment ? rc.comment : ""); var timestamp = rc.timestamp; var ns = rc.ns; var state = rc.state; regex.compile(/\'/g); var escTitle = title.replace(regex, "\\'"); var escUser = user.replace(regex, "\\'"); var revisions = api.getElementsByTagName('query')[0].getElementsByTagName('pages')[0].getElementsByTagName('page')[0].getElementsByTagName('revisions')[0].getElementsByTagName('rev'); var oldsize = (state & NEW ? 0 : revisions[1].textContent.length); var newsize = revisions[0].textContent.length var sizediff = newsize - oldsize; // INITIALISATION LIGNE RC // var tr1 = document.createElement('tr'); var th0 = document.createElement('th'); var th1 = document.createElement('th'); var td2 = document.createElement('td'); var td3 = document.createElement('td'); var td4 = document.createElement('td'); // SUPPR. LIGNE // th0.innerHTML = 'X'; // ARTICLE // var arti = "", artiStyle = ""; var preArti = "", postArti = ""; var diff = ""; var diffClose = ""; if (autoCloseDiff == 1) diffClose='supprLigne(\''+pageid+'_'+revid+'\');'; if (state & NEW) diff = 'Diff'; else diff = 'Diff'; var hist = 'Hist'; // Homonymie ? ; //////////////// if (ns == 0 && state & HOMONYMIE) { artiStyle = 'color: darkorange; font-weight: bold; font-style: italic;'; preArti += 'Homonymie ' } // Page protégée ? ; //////////////////// if (state & FULLLOCK) preArti += 'Article protégé '; if (state & LOCK) preArti += 'Article semi-protégé '; // Copyright ? ; ////////// if (state & COPYRIGHT) preArti += 'Copyright '; // PàS ? ; ////////////////// if (state & PAS) preArti += 'PàS '; // Intervention wikipompiers ? ; //////////////////////////////// if (state & FIRE) preArti += 'Intervention Wikipompiers '; // Adq ? ; ////////// if (state & ADQ) postArti += 'Adq'; // Bon article ? ; ////////////////// if (state & BA) postArti += 'Bon article'; // Article potentiellement de qualité ? ; ///////////////////////////////////////// if (state & APDQ) postArti += 'Article potentiellement de qualité'; // Article catégorisé ? ; ///////////////////////// var isCategorized = ""; if (!(state & REDIRECT) && !(state & HOMONYMIE) && ns == 0 && !(state & CATEGORIZED)) postArti += '(cat ?)'; // Redirection ? ; ////////////////// if (state & REDIRECT) { artiStyle = 'color: green; font-weight: bold; font-style: italic;'; postArti += 'Redirection'; if (rc.redirect) { postArti += ''+rc.redirect+''; } else { regex.compile(/^#REDIRECT\s*\[\[(.*)\]\]/i); match = regex.exec(revisions[0].textContent); if (match) postArti += ''+match[1]+''; else postArti += '/!\\'; } arti = ''+title+''; } else { arti = ''+title+''; } th1.innerHTML = '' + tsToHhMm(timestamp) + ' • ' + diff + ' • ' + hist + ' • ' + preArti + arti + postArti; th1.className="creator-title"; th1.style.border="1px"; th1.style.width="40%"; // EDITEUR // var discut = 'D'; var contrib = 'C'; var editor = "", preEditor = ""; // Bot ? ; ////////// if (state & BOT) preEditor += ' '; // Sysop ? ; //////////// if (state & SYSOP) preEditor += ' '; // Reverté ? ; ///////////////// if (state & REVERT) preEditor += ' '; // TOR potentiel / AOL var isTOR = regex.compile(/172\.\d+\.\d+\.\d+/); if (isTOR.test(user)) preEditor += ' '; editor = ''+user+''; td2.innerHTML = '' + discut + ' • ' + contrib + ' • ' + preEditor + editor; td2.className="creator-name"; td2.style.border = "1px"; td2.style.width = "20%"; if (lstRevoc[user]) { td2.style.border = "2px solid red"; td2.innerHTML += '(' + lstRevoc[user].nb + ' révoc)' } // COMMENTAIRE // // Remplace lien [[xxx]] par ; var wcomment = comment.replace(new RegExp(/\[\[(([^\]\|]*)(.*?))\]\]/g), "$1"); wcomment = wcomment.replace(new RegExp(/\>[^\]\|<]*\|([^\]\|<]*)$1<"); td3.innerHTML = "" + wcomment + ""; td3.style.border = "1px"; td3.style.width = "40%"; if (state & REVERT) { th0.style.backgroundColor = "#FFE4E1"; th1.style.backgroundColor = "#FFE4E1"; td2.style.backgroundColor = "#FFE4E1"; td3.style.backgroundColor = "#FFE4E1"; td4.style.backgroundColor = "#FFE4E1"; tr1.style.border = "1px solid crimson"; } if (state & BLANKING || newsize == 0) { th0.style.backgroundColor = "white"; th1.style.backgroundColor = "white"; td2.style.backgroundColor = "white"; td3.style.backgroundColor = "white"; td4.style.backgroundColor = "white"; tr1.style.border = "2px double crimson"; } if (state & NEW) { th0.style.backgroundColor = "#e2f2d2"; th1.style.backgroundColor = "#e2f2d2"; td2.style.backgroundColor = "#e2f2d2"; td3.style.backgroundColor = "#e2f2d2"; td4.style.backgroundColor = "#e2f2d2"; tr1.style.border = "1px solid green"; } if (state & IP) { td2.style.backgroundColor = "white"; td3.style.backgroundColor = "white"; td4.style.backgroundColor = "white"; } if (isTOR.test(user)) td2.style.backgroundColor = "pink"; if (state & REPLACED) { th0.style.backgroundColor = "pink"; th1.style.backgroundColor = "pink"; td2.style.backgroundColor = "pink"; td3.style.backgroundColor = "pink"; td4.style.backgroundColor = "pink"; td4.innerHTML = 'Warning'; tr1.style.border = "2px solid crimson"; } // CONTACT LIST // ////////////////// if (lstContact[user]) { td2.style.border = "2px solid gold"; td2.style.backgroundColor = "yellow"; } if (user == wgUserName) { td2.style.border = "2px solid #A0B0E0"; td2.style.backgroundColor = "#F0F8FF"; } // DELTA SIZE // // delta de modif ; /////////////////// var txtdiff = ""; if (sizediff < 0) txtdiff = ''+sizediff+''; else if (sizediff == 0) txtdiff = '='+sizediff+''; else txtdiff = '+'+sizediff+''; td4.innerHTML += txtdiff; td4.style.border = "1px"; td4.style.textAlign = "right"; // ASSEMBLAGE LIGNE // tr1.appendChild(th0); tr1.appendChild(th1); tr1.appendChild(td2); tr1.appendChild(td3); tr1.appendChild(td4); tr1.id = pageid+"_"+revid; var tab = document.getElementById( 'tabRC' ); var elold = document.getElementById(pageid+"_"+oldid); if (tab.firstChild != null) tab.insertBefore(tr1, tab.firstChild); else tab.appendChild(tr1); if (elold == null) { if (tab.childNodes.length > rclimit) { var idt = tab.lastChild.id; supprLigne(idt); } } else { supprLigne(pageid+"_"+oldid); } // MISE A JOUR LISTES // /* var spos = lstSuivi.indexOf(title); if(spos != -1) { th0.style.border = "2px solid gold"; th0.style.backgroundColor = "yellow"; th1.style.border = "2px solid gold"; th1.style.backgroundColor = "yellow"; lstSuiviHH[spos] = timestamp; var tempsAr = new Array(); var len = lstSuivi.length; for (var n = 0; n < len; n++) { if(lstSuiviHH[n] == "--:--") continue; var cstilde = lstSuivi[n].replace(new RegExp(/\'/g), "\\'"); var sdiff = 'Diff'; var shist = 'Hist'; var sarti = ''+lstSuivi[n]+''; var ligne='' + lstSuiviHH[n] + ' • ' + sdiff + ' • ' + shist + ' • ' + sarti +'
'; tempsAr.push(ligne); } tempsAr.sort(); len = tempsAr.length; var lvSuivi = document.getElementById( 'liveSuivi' ); lvSuivi.innerHTML = ""; for (var n=len-1; n >= 0; n--) lvSuivi.innerHTML = lvSuivi.innerHTML + tempsAr[n]; } */ if (lstContact[user]) { lstContact[user].ts = timestamp; updateFollowContact(); } if (state & REVERT) { regex.compile(/\[\[Special:Contributions\/([^\]\|]+)/); match = regex.exec(comment); if (match) { var userR = match[1]; if (userR != user && userR != wgUserName) { if (!lstRevoc[userR]) lstRevoc[userR] = { ts: 0, nb: 0 }; lstRevoc[userR].ts = timestamp; lstRevoc[userR].nb += 1; updateFollowRevoc(); } } } } function getRedirCat(xmlreq, data) { if (document.getElementById('stopLive').checked) return; var yurik = xmlreq.responseXML.getElementsByTagName('yurik')[0]; if (yurik.firstChild.nodeName == "error") return; var rc = data.rc; var pageid = rc.pageid; var revid = rc.revid; var state = rc.state; var page = yurik.getElementsByTagName('pages')[0].getElementsByTagName('page')[0]; if (page.getElementsByTagName('redirect').length) { state += REDIRECT; if (page.getElementsByTagName('redirect')[0].getElementsByTagName('to').length) rc.redirect = page.getElementsByTagName('redirect')[0].getElementsByTagName('to')[0].textContent; } if (page.getElementsByTagName('categories').length) { state += CATEGORIZED; var categories = page.getElementsByTagName('categories')[0].getElementsByTagName('cl'); var i,j; var leni = categories.length; var lenj = categoriestests.length; for (i=0; i=0; i--) { if (rcs[i].getAttribute('revid') <= lastrevid) continue; rc = new Object(); rc.state = 0; lenj = rcs[i].attributes.length; for (j=0; jX' + 'X' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + ''; if (previewHeight) document.getElementById('livePreview').style.height = previewHeight; var _lstContact = lstContact; var _len = lstContact.length; lstContact = new Array(); for (var _i=0; _i<_len; _i++) lstContact[_lstContact[_i]] = { ts: 0 }; // Main //liveWatch(); liveSysop(); } }); /*
*/