Aller au contenu

Utilisateur:Arktest/turboEdit.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) ;

Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
function turboEditSkip()
{
  ++document.articleId;
  turboEditNextArticle();
}

function turboEditPublish()
{
  var parameters = 'wpSave=1'
    + '&wpTextbox1=' + encodeURIComponent(document.getElementById('article').value)
    + '&wpStarttime=' + encodeURIComponent(document.wpStarttime)
    + '&wpEdittime=' + encodeURIComponent(document.wpEdittime)
    + '&wpEditToken=' + encodeURIComponent(document.wpEditToken)
    + '&wpSummary=' + encodeURIComponent('[[Discussion utilisateur:Arkanosis/turboEdit.js|turboEdit]] : ' + document.getElementById('summary').value)
    + '&wpMinoredit=on&wpWatchthis=on';
  
  var xhr = new XMLHttpRequest();
 
  with (xhr)
  {
    open('POST', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + encodeURIComponent(document.articles[document.articleId]) + '&action=submit', false);
 
    setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    setRequestHeader('Content-length', parameters.length);
    setRequestHeader('Connection', 'close');
 
    send(parameters);
  }

  turboEditSkip();
}

function turboEditNextArticle()
{
  if (document.articleId > document.articles.length)
  {
    alert('Fini');
    return;
  }

  var xhr = new XMLHttpRequest();
  xhr.open('GET', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + encodeURIComponent(document.articles[document.articleId]) + '&action=edit', false);
  xhr.send('');
 
  var parser = new DOMParser();
  var editForm = parser.parseFromString(xhr.responseText, 'application/xhtml+xml');

  var inputs = editForm.getElementsByTagName('input');
  for (inputId = 0; inputId < inputs.length; ++inputId)
    switch (inputs[inputId].name)
    {
      case 'wpStarttime':
        document.wpStarttime = inputs[inputId].value;
        break;
      case 'wpEdittime':
        document.wpEdittime = inputs[inputId].value;
        break;
      case 'wpEditToken':
        document.wpEditToken = inputs[inputId].value;
        break;
      default:
        break;
    }

  var text = editForm.getElementById('wpTextbox1');
  if (text)
    document.getElementById('article').value = text.value;
  else
    turboEditSkip();
}

function turboEditIterArticles()
{
  var content = document.getElementById('bodyContent');
  content.innerHTML = '<form><textarea id="article" cols="80" rows="50"></textarea><input class="summary" id="summary" maxlength="200" size="60" type="text" value="" /><a onClick="javascript:turboEditPublish();return false;">Publier</a> | <a onClick="javascript:turboEditSkip();return false;">Passer</a></form>';

  document.articleId = 0;
  turboEditNextArticle();
}

function turboEdit()
{
  if (mw.config.get('wgTitle').indexOf('Portails/Articles sans portail/') != -1)
  {
    document.articles = [];
    var sections = document.getElementsByTagName('ol');
    // FIXME starting at 1 to skip references
    for (var sectionId = 1; sectionId < sections.length; ++sectionId)
    {
      var entries = sections[sectionId].getElementsByTagName('li');
      for (var entryId = 0; entryId < entries.length; ++entryId)
      {
        var article = entries[entryId].getElementsByTagName('a')[0];
        document.articles.push(article.getAttribute('href').replace('/wiki/', ''));
      }
    }

    turboEditIterArticles();
  }
}
addOnloadHook(turboEdit);