Utilisateur:Arkanosis/aib.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/*
***************************************************************************
** aib - Permet d'ajouter rapidement une infobox pré-remplie
** Compatibilité : frwiki uniquement
** Support : Discussion_utilisateur:Arkanosis
** Licence : domaine public
**
** Installation : ajouter
**  importScript('Utilisateur:Arkanosis/aib.js');
** dans le monobook.js
*/

function aibAddInfoboxBiographie()
{
  var content = document.getElementById('wpTextbox1');

  // Name (this one is easy)
  var name = mw.config.get('wgTitle');
  if ((paren = name.indexOf(' (')) != -1)
    name = name.substring(0, paren);

  // Birth name
  // TODO

  // Date of birth
  var dateOfBirth = '';
  var dateOfBirthExtractor = new RegExp('.*né le ({{[^}]+}}).*');
  var dateOfBirthMatch = dateOfBirthExtractor.exec(content.value);
  if (dateOfBirthMatch)
    dateOfBirth = dateOfBirthMatch[1];
  else
  {
    dateOfBirthExtractor = new RegExp('.*[Nn]aissance en ([0-9]+).*');
    dateOfBirthMatch = dateOfBirthExtractor.exec(content.value);
    if (dateOfBirthMatch)
      dateOfBirth = '[[' + dateOfBirthMatch[1] + ']]';
    else
    {
      dateOfBirthExtractor = new RegExp('.*né en ([[)?([0-9]+).*');
      dateOfBirthMatch = dateOfBirthExtractor.exec(content.value);
      if (dateOfBirthMatch)
        dateOfBirth = '[[' + dateOfBirthMatch[2] + ']]';
    }
  }

  // Date of death
  var dateOfDeath = '';
  var dateOfDeathExtractor = new RegExp('(mort|décédé) le ({{[^}]+}})');
  var dateOfDeathMatch = dateOfDeathExtractor.exec(content.value);
  if (dateOfDeathMatch)
    dateOfDeath = dateOfDeathMatch[2];
  else
  {
    dateOfDeathExtractor = new RegExp('.*[Dd]écès en ([0-9]+).*');
    dateOfDeathMatch = dateOfDeathExtractor.exec(content.value);
    if (dateOfDeathMatch)
      dateOfDeath = '[[' + dateOfDeathMatch[1] + ']]';
    else
    {
      dateOfDeathExtractor = new RegExp('.*(mort|décédé) en ([[)?([0-9]+).*');
      dateOfDeathMatch = dateOfDeathExtractor.exec(content.value);
      if (dateOfDeathMatch)
        dateOfDeath = '[[' + dateOfDeathMatch[3] + ']]';
    }
  }

  // Age of death
  var ageOfDeath = '';
  // TODO compute it

  // Place of birth
  var placeOfBirth = '';
  // TODO

  // Place of death
  var placeOfDeath = '';
  // TODO

  content.value
    = '{{Infobox biographie\n'
    + '| nom               = ' + name + '\n'
    + '| image             = \n'
    + '| taille image      = \n'
    + '| légende           = \n'
    + '| nom de naissance  = \n'
    + '| surnom            = \n'
    + '| date de naissance = ' + dateOfBirth + '\n'
    + '| lieu de naissance = ' + placeOfBirth + '\n'
    + '| date de décès     = ' + dateOfDeath + '\n'
    + '| âge au décès      = ' + ageOfDeath + '\n'
    + '| lieu de décès     = ' + dateOfDeath + '\n'
    + '| nationalité       = \n'
    + '| profession        = \n'
    + '| occupation        = \n'
    + '| formation         = \n'
    + '| hommage           = \n'
    + '| activités autres  = \n'
    + '| note              = \n'
    + '| famille           = \n'
    + '| legende           = \n'
    + '}}\n'
    + content.value;
  document.getElementById('wpSummary').value = '[[Discussion_utilisateur:Arkanosis/aib.js|aib]] : Ajout d\'une infobox biographie';
  document.getElementById('wpPreview').click();
}

function aib()
{
  if (location.href.indexOf('&aibAddInfoboxBiographie') != -1)
    aibAddInfoboxBiographie();
}

$(aib);