_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

Utilisateur:Dr Brains/LiveRC/MostModifiedPagesExtension.js

Dans cet article, nous explorerons l'impact de Utilisateur:Dr Brains/LiveRC/MostModifiedPagesExtension.js dans divers domaines de la société. Depuis son émergence, Utilisateur:Dr Brains/LiveRC/MostModifiedPagesExtension.js suscite intérêt et débat parmi les experts et le grand public. Au fil des années, Utilisateur:Dr Brains/LiveRC/MostModifiedPagesExtension.js a joué un rôle important dans la façon dont les gens interagissent les uns avec les autres, dans l'évolution de la technologie, dans le développement de l'éducation et dans de nombreux autres domaines. Grâce à une analyse détaillée, nous examinerons de près comment Utilisateur:Dr Brains/LiveRC/MostModifiedPagesExtension.js a influencé le monde dans lequel nous vivons et quelles perspectives il nous offre pour l'avenir.
/* 
 --------------------------------------------------------------------------------------
 ---------LLLL---------III--------------------------RRRRRRRRRR--------CCCCC------------
 ---------LLLL---------III--------------------------RRRRRRRRRRRR----CCCCCCCCC----------
 ---------LLLL--------------------------------------RRR------RRR---CCC-----CCC---------
 ---------LLLL---------III--VV-----VV--EEEEEEEEE----RRR------RRR--CCC------------------
 ---------LLLL---------III---VV---VV---EEE----------RRRRRRRRRRR---CCC------------------
 ---------LLLL---------III---VV---VV---EEEEEE-------RRRRRRRRRR----CCC------------------
 ---------LLLL---------III----VV-VV----EEEEEE-------RRR-----RRR----CCC-----CCC---------
 ---------LLLLLLLLLLL--III----VVVVV----EEE----------RRR------RRR----CCCCCCCCC----------
 ---------LLLLLLLLLLL--III-----VVV-----EEEEEEEEE----RRR-------RRR-----CCCCC------------
 --------------------------------------------------------------------------------------
 
'''Extension de LiveRC'''
 
Ajoute une icône à côté des articles modifiés par plus de 5 personnes différentes durant la dernière heure
 
* Licence : ...?
* Documentation :
* Auteur : ]
* Développement et maintenance :
 
 
{{Catégorisation JS|LiveRC}}
 
<source lang=javascript> */
if (typeof(lrcHooks)!="undefined") { // DÉBUT IF

// Paramètres 
try{
  lrcParams = true;
  lrcParams = 1;
  lrcParams = 4;
  lrcParams = 2;
}catch(e){ }

// Textes
try{
lrcTexts = "$1 éditeurs $2 : $3";
lrcTexts = "$1 reverts $2 : $3";
lrcTexts = "durant les $1 dernières heures";
lrcTexts = "durant la dernière heure";
}catch(e){ }

// Icônes 
try{
  lrcIcons = {"type":0,
                       "src":"thumb/1/16/Co-op_activism4.svg/12px-Co-op_activism4.svg.png",
                       "width":12,
                       "height":12
  }

  lrcIcons = {"type":0,
                       "src":"thumb/9/98/Tango-grenade.svg/12px-Tango-grenade.svg.png",
                       "width":12,
                       "height":12
  }
}catch(e){ }

// Descriptions
try{
  lrcParamDesc = " Charger l’historique des pages (coûteux)";
  lrcParamDesc = " Nombre d’heures d’historique à charger";
  lrcParamDesc = " Limite d’utilisateurs pour les pages très modifiées";
  lrcParamDesc = " Limite de reverts pour les pages très revertées";
  lrcParamDesc = " Page très modifiée";
  lrcParamDesc = " Possible guerre d’édition";
  lrcParamDesc = " Infobulle de l’icône pour pages très modifiées";
  lrcParamDesc = " Infobulle de l’icône pour pages en guerre d’édition";
  lrcParamDesc = ' Texte "durant les X dernières heures" (pluriel)';
  lrcParamDesc = ' Texte "durant la dernière heure" (singulier)';
}catch(e){ }


function MostModifiedPagesExtension_GetTimestamp(TS){
  var Year = parseInt(TS.substring(0, 4));
  var Month = parseInt(TS.substring(5, 7).replace(/^0/, ""));
  var Day = parseInt(TS.substring(8, 10).replace(/^0/, ""));
  var Hour = parseInt(TS.substring(11, 13).replace(/^0/, ""));
  var Minut = parseInt(TS.substring(14, 16).replace(/^0/, ""));
  var DaysinMonth = {"1" :31,
                     "2" :28,
                     "3" :31,
                     "4" :30,
                     "5" :31,
                     "6" :30,
                     "7" :31,
                     "8" :31,
                     "9" :30,
                     "10":31,
                     "11":30,
                     "12":31
                    }
  if(Year%4==0 && (Year%100!=0 || Year%400==0) ) DaysinMonth=29;
  Hour = Hour-lrcMakeParam("MostModifiedPagesDelay");
  if(Hour==-1){
    Hour = Hour + 24;
    Day = Day-1;
    if(Day == 0){
        Month = Month-1;
        if(Month==0){
          Month = 12;
          Year = Year-1;
        }
        Day = DaysinMonth;
    }
  }
  var ThisTimestamp = "" + Year 
                    + (Month<10 ? "0"+Month : Month)
                    + (Day  <10 ? "0"+Day   : Day  )
                    + (Hour <10 ? "0"+Hour  : Hour )
                    + (Minut<10 ? "0"+Minut : Minut)
                    + "00"; 
  return ThisTimestamp;
}

function MostModifiedPagesExtension_GetInfos(Args){
  if(!lrcMakeParam("MostModifiedPagesRun")) return;
  var tr1 = document.getElementById(Args.id);
  if (!tr1) return;
  var rc = Args.rc;
  var article = rc.title;
  var continuevalue = Args.mustcontinue;
  if(!continuevalue) continuevalue = '';
  var TS = MostModifiedPagesExtension_GetTimestamp(rc.timestamp);
  var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query'
          + '&prop=revisions&titles='+encodeURIComponent(article)
          + '&rvlimit='+LiveRC_Config.APIlimit
          + '&rvend='+TS
          + '&rvprop=user|comment'
          + continuevalue;
  if(!Args.users) Args.users = new Array();
  if(!Args.reverts) Args.reverts = new Array();
  lrcDisplayDebug("Get page revisions : " + article + " " + continuevalue);
  wpajax.http({ url: URL,
                onSuccess: MostModifiedPagesExtension_AddIcon, 
                page: article, 
                Args: Args
  });
}
LiveRC_AddHook("AfterRC", MostModifiedPagesExtension_GetInfos);

function MostModifiedPagesExtension_AddIcon(Req, data){
  var Args = data.Args
  var rc = Args.rc;
  var TR = document.getElementById(Args.id);
  if (!TR) return;
  var ObjetXML = Req.responseXML;
  if(!ObjetXML) return;
  var Modifs = ObjetXML.getElementsByTagName('rev');
  for(var a=0,l=Modifs.length;a<l;a++){
    var User = Modifs.getAttribute('user');
    if(Args.users.indexOf(User)==-1) Args.users.push(User);
    var Comment = Modifs.getAttribute("comment");
    var rc = new Object();
    rc.state = new Array();
    if (typeof(Comment) != "undefined") { 
      var CommentTests = Custom_commenttests;
      if(CommentTests.length===0) CommentTests = commenttests;
      for(var j=0,lenj = CommentTests.length; j<lenj; j++)
        if(new RegExp(CommentTests.regex).test(Comment))
          rc.state = lrcAddState(rc.state, CommentTests.state);
    }
    if(lrcHasState(rc.state, "REVERT")) Args.reverts.push(User);
  }
  var ContinueTag = ObjetXML.getElementsByTagName('query-continue');
  if(ContinueTag){
    Args.mustcontinue = "&rvcontinue=" + encodeURIComponent(ContinueTag.firstChild.getAttribute('rvcontinue'));
    MostModifiedPagesExtension_GetInfos(Args);
  }else{
    MostModifiedPagesExtension_AddIcons(Args);
  }
}

function MostModifiedPagesExtension_AddIcons(Args){
  var Users = Args.users;
  var Reverts = Args.reverts;
  var IconsToAdd = new Array();
  var HourParam = lrcMakeParam("MostModifiedPagesDelay");
  var HourParamText = lrcMakeText("MostModifiedHour"+(HourParam>1 ? "s" : "")).split("$1").join(HourParam);
  if(Users.length>lrcMakeParam("MostModifiedPagesUserLimit")){
    var UbuttonIcon = lrcMakeIcon("MostModifiedIcon");
    UbuttonIcon = UbuttonIcon.split("$1").join(Users.length);
    UbuttonIcon = UbuttonIcon.split("$2").join(HourParamText);
    UbuttonIcon = UbuttonIcon.split("$3").join(Users.join(" - "));
    IconsToAdd.push(UbuttonIcon);
  }
  if(Reverts.length>lrcMakeParam("MostModifiedPagesRevertLimit")){
    var RbuttonIcon = lrcMakeIcon("MostRevertedIcon");
    RbuttonIcon = RbuttonIcon.split("$1").join(Reverts.length);
    RbuttonIcon = RbuttonIcon.split("$2").join(HourParamText);
    RbuttonIcon = RbuttonIcon.split("$3").join(Reverts.join(" - "));
    IconsToAdd.push(RbuttonIcon);
  }
  if(IconsToAdd.length>0) LiveRC_AddIconBeforeArticleLink(Args, IconsToAdd);
}

function LiveRC_AddIconBeforeArticleLink(Args, IconsToAdd){
  var TR = document.getElementById(Args.id);
  if (!TR || typeof(IconsToAdd)!= "object") return;
  var ArticleLink = TR.querySelector('a.lrc_ArticleLink');
  if(!ArticleLink) return;
  var Icons = document.createElement('span');  
  Icons.innerHTML = IconsToAdd.join(" ") + " ";
  ArticleLink.parentNode.insertBefore(Icons, ArticleLink);  
}


function MostModifiedPagesExtension_TransformOptions(){
  var InputsToTransform = new Array();
  var Options = new Array();
  for(var a=1,l=25;a<l;a++) Options.push({value:a,text:a});
  InputsToTransform = Options;
  LiveRC_ManageParams_CheckInputsToTransform(InputsToTransform);
}
LiveRC_AddHook("AfterCreateParamPanel", MostModifiedPagesExtension_TransformOptions);


} // FIN IF

//</source>