« Utilisateur:Pinocchio/citation du jour.js » : différence entre les versions

De BoyWiki
Aucun résumé des modifications
(test)
Ligne 1 : Ligne 1 :
/* Ajoute une citation dans la page de préparation des citations - BoyWiki:Accueil/Citation du jour */
/* La première lecture du jour de la page Accueil provoque le rafraichissement de la citation sur la page Accueil par maj d'une sous-page incluse (purge cache) */
/* les citations sont préparées pour n jours suivants */


function update_citation_du_jour() {
function refresh_citation_du jour() {
 
   /* seulement pour page Accueil et utilisateur ayant droit écriture dans sous-page Accueil */
   /* seulement pour page Accueil et utilisateur ayant droit */
   //if (document.body.className.match(/page-Accueil/) == null) return;
   //if (document.body.className.match(/page-Accueil/) == null) return;
  //if (document.body.className.match(/page-Utilisateur_Pinocchio/) == null) return;
   if (wgPageName != 'Utilisateur:Pinocchio') return;
   if (wgPageName != 'Utilisateur:Pinocchio') return;
   //if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
   //if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
   if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
   if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|fsc|bureaucrat/) == null) return;
   if (wgAction != 'view') return;
   if (wgAction != 'view') return;


Ligne 22 : Ligne 19 :
   }
   }
   else return;
   else return;
  /* init date du jour à 0h au format wpEdittime */
  var now = new Date();
  var today = formatdateyyyymmdd(now);
  today = today+'010000';
    
    
   /* init requete serveur - get page préparation des citations */
   /* init requete serveur - get sous-page Accueil/refresh */
   xhr_object.open('GET', '/w/index.php?title=Utilisateur:Pinocchio/Test&action=edit', false);
   xhr_object.open('GET', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=edit', false);
   xhr_object.send('');
   xhr_object.send('');
   if (xhr_object.readyState == 4 && xhr_object.status == 200) {
   if (xhr_object.readyState == 4 && xhr_object.status == 200) {
       var pagedit = xhr_object.responseText.substr(4000);
        
 
      /* récup éléments du formulaire */
      /* copie contenu <textarea> en conservant les \n */
      pagedit = pagedit.replace(/\n/g, '');
       var idxtxta = pagedit.search(/<textarea/i);
       var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
       if (idxtxta >0) {
       startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
        var strtxta = '';
      var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
        for (var i = idxtxta; i < pagedit.length; i++) {
      editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
            strtxta += pagedit[i];
      var editoken = pagedit.match(/.{80}name="wpEditToken/i);
            if (pagedit[i] == '>' && pagedit[i-1] == 'a' && pagedit[i-2] == 'e' && pagedit[i-3] == 'r' && pagedit[i-9] == '/' && pagedit[i-10] == '<') break;
      editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
            if (pagedit[i] == '>' && pagedit[i-1] == 'A' && pagedit[i-2] == 'E' && pagedit[i-3] == 'R' && pagedit[i-9] == '/' && pagedit[i-10] == '<') break;
      var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
        }
      autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
       }
      var summary = 'Routine refresh citation du jour';
       strtxta = strtxta.replace(/<textarea[^>]*>|<\/textarea>/gi, '');
      var newtxt = '<!--'+today+'-->';
alert(strtxta);
     
  }
      /* test date dernière édition de la sous-page */
  else return;
alert(editime+'   '+today);
      if (editime > today) return;
     
      /* init requete serveur - maj sous-page Accueil/refresh */
      var boundary = '--------------23242526272829';
      var data = '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAntispam"\r\n\r\n\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
       data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
       data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+newtxt+'\r\n';
      data += '--'+boundary+'--\r\n';


  /* init date du jour - date min - date max */
      xhr_object.open('POST', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=submit', false);
  var now = new Date();
      //xhr_object.setRequestHeader("Host", "fr.boywiki.org");
  var today = formatdateyyyymmdd(now);
      xhr_object.setRequestHeader("Charset", "utf-8");
  now.setDate(now.getDate() - 2);
      xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
  var minday = formatdateyyyymmdd(now);
      xhr_object.setRequestHeader("Content-Length", String(data.length));
  now.setDate(now.getDate() + 10);
      xhr_object.send(data);
  var maxday = formatdateyyyymmdd(now);
//alert(today+'  '+minday+'  '+maxday);


  /* découpe contenu de textarea (= sous-page citation du jour) par cas du switch */
      if (xhr_object.readyState == 4 && xhr_object.status == 200) {
  tabswtxta = strtxta.split(/\n ?\| ?/);
        /* reload page Accueil */
  /* conserve début page jusqu'à switch */
        if(confirm('Cette page n’est plus à jour : recharger ?')) window.location.reload(true);
  var buf = tabswtxta[0]+'\n';
  var max = 0;
  /* parcourt les dates élimine les cas obsolètes et ajoute à buf les cas conservés */
  for (var i = 1; i < tabswtxta.length ; i++) {
      var cas = tabswtxta[i].match(/^[0-9]{8}=/);
      if (cas >= minday+'=') {
        buf += '| '+tabswtxta[i]+'\n';
        if (cas > max) max = cas;
       }
       }
   }
   }
  /* si nécessaire génére requête recherche nouvelle citation */
  /* ajoute fin switch */
  buf += '|#default=\n}}';
alert(buf);
return;
var newtxt=buf;
  /* récup éléments du formulaire */
  pagedit = pagedit.replace(/\n/g, '');
  var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
  startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
  var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
  editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
  var editoken = pagedit.match(/.{80}name="wpEditToken/i);
  editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
  var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
  autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
  var summary = 'Routine citation du jour';
//alert(startime+'  '+editime+'  '+editoken+'  '+autosummary);
//alert(strtxta);
  /* init requete serveur - maj sous-page Accueil/Citation */
  var boundary = '--------------23242526272829';
  var data = '';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAntispam"\r\n\r\n\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
  data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+newtxt+'\r\n';
  data += '--'+boundary+'--\r\n';
  xhr_object.open('POST', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=submit', false);
  //xhr_object.setRequestHeader("Host", "fr.boywiki.org");
  xhr_object.setRequestHeader("Charset", "utf-8");
  xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
  xhr_object.setRequestHeader("Content-Length", String(data.length));
  xhr_object.send(data);
alert(xhr_object.readyState+'  '+xhr_object.status);
}
}



Version du 16 mars 2009 à 16:19

/* La première lecture du jour de la page Accueil provoque le rafraichissement de la citation sur la page Accueil par maj d'une sous-page incluse (purge cache) */

function refresh_citation_du jour() {
   /* seulement pour page Accueil et utilisateur ayant droit écriture dans sous-page Accueil */
   //if (document.body.className.match(/page-Accueil/) == null) return;
   if (wgPageName != 'Utilisateur:Pinocchio') return;
   //if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
   if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|fsc|bureaucrat/) == null) return;
   if (wgAction != 'view') return;

   /* init syntaxe requete serveur */
   if (window.XMLHttpRequest) { // Firefox
      xhr_object = new XMLHttpRequest();
      xhr_object2 = new XMLHttpRequest();
   }
   else if (window.ActiveXObject) { // IE
      xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
      xhr_object2 = new ActiveXObject("Msxml2.XMLHTTP");
   }
   else return;

   /* init date du jour à 0h au format wpEdittime */
   var now = new Date();
   var today = formatdateyyyymmdd(now);
   today = today+'010000';
   
   /* init requete serveur - get sous-page Accueil/refresh */
   xhr_object.open('GET', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=edit', false);
   xhr_object.send('');
   if (xhr_object.readyState == 4 && xhr_object.status == 200) {
      
      /* récup éléments du formulaire */
      pagedit = pagedit.replace(/\n/g, '');
      var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
      startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
      var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
      editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
      var editoken = pagedit.match(/.{80}name="wpEditToken/i);
      editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
      var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
      autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
      var summary = 'Routine refresh citation du jour';
      var newtxt = '<!--'+today+'-->';
      
      /* test date dernière édition de la sous-page */
alert(editime+'   '+today);
      if (editime > today) return;
      
      /* init requete serveur - maj sous-page Accueil/refresh */
      var boundary = '--------------23242526272829';
      var data = '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAntispam"\r\n\r\n\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
      data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+newtxt+'\r\n';
      data += '--'+boundary+'--\r\n';

      xhr_object.open('POST', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=submit', false);
      //xhr_object.setRequestHeader("Host", "fr.boywiki.org");
      xhr_object.setRequestHeader("Charset", "utf-8");
      xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
      xhr_object.setRequestHeader("Content-Length", String(data.length));
      xhr_object.send(data);

      if (xhr_object.readyState == 4 && xhr_object.status == 200) {
         /* reload page Accueil */
         if(confirm('Cette page n’est plus à jour : recharger ?')) window.location.reload(true);
      }
   }
}

addOnloadHook(update_citation_du_jour);



/* Retourne la date formatée yyyymmdd */
function formatdateyyyymmdd(obj) {
   var yer = obj.getFullYear();
   var mon = (obj.getMonth() + 1);
   var day = obj.getDate();
   if (mon < 10) mon = '0'+mon;
   if (day < 10) day = '0'+day;
   return yer+mon+day;
}