Usuari:Anskar/scripts/redireccionsdobles.js

De la Viquipèdia, l'enciclopèdia lliure

Nota: Després de desar, heu de netejar la memòria cau del navegador per veure els canvis. En la majoria de navegadors amb Windows o Linux, premeu Ctrl+F5 o bé premeu Shift i cliqueu el botó "Actualitza" (Ctrl i "Actualitza" amb Internet Explorer). Vegeu més informació i instruccions per a cada navegador a Viquipèdia:Neteja de la memòria cau.

//<pre>

/* mòdul implementat per l'usuari Pasqual el dilluns 7 de maig de 2007 a la 1:01
 * http://ca.wikipedia.org/wiki/Usuari:Pasqual/viquiestris
 */


if(document.URL.indexOf("Especial:DoubleRedirects")!=-1){
   mostra=window.open(wgServer+"/wiki/Usuari:Pasqual/Viquiestris/DoblesRedireccions");
   mostra.focus()
}

if(document.URL.indexOf("Usuari:Pasqual/Viquiestris/DoblesRedireccions")!=-1 ) {

  function editaRedirecció(dblRedir, artDestí){
    if (artDestí != '' && artDestí != dblRedir){

      topaz.wputil.setpagecontent(dblRedir,
                                  "#REDIRECT [["+artDestí+"]]",
                                  "Redireccionant a \"[["+artDestí+"]]\" a causa d'una "+
                                  "[[Usuari:Pasqual/Viquiestris/DoblesRedireccions|"+ 
                                  "redirecció doble]] emprant els "+
                                  "[[Usuari:Pasqual/viquiestris|Viquiestris]]",
                                  false);
    } else {
      finalAvís="\nNo s'executarà cap acció";
      if ( artDestí == '') alert ("El nom de la pàgina destí és buid"+finalAvís);
      if ( artDestí == dblRedir ) alert ("Els noms d'ambdues pàgines són idèntics"+finalAvís);
    }
  }

  addOnloadHook(function(){
    redireccionsDobles=topaz.wputil.getspecialpagecontent("Especial:DoubleRedirects&limit=500&offset=0")
    if(redireccionsDobles!=""){

      troballa=0; troballes='<div id="regRedirDbl">';
      dobleRedirecció=[]; redireccióCorrecta=[]; articleDestí=[];
      afegix=[];

      for(i=0;i<=redireccionsDobles.length;i++) {
        iniciResultat = redireccionsDobles.indexOf("<li>",i);
        if(iniciResultat!=-1) {
          fiResultat    = redireccionsDobles.indexOf("</li>",i)+5;
          resultat      = redireccionsDobles.substring(iniciResultat,fiResultat);
          dblRdirTractada   = resultat.indexOf("<s>");
          if (dblRdirTractada==-1){
            troballa++;
            trobaPàgina   = 1; 
            for(j=0;j<resultat.length;j++){
              iniciObreTagA=resultat.indexOf("<a",j);
              if(iniciObreTagA!=-1) {
                fiObreTagA=resultat.indexOf("\">",j)+2;
                tancaTagA=resultat.indexOf("</a>",j);
                nomPàgina=resultat.substring(fiObreTagA,tancaTagA);
                if(trobaPàgina==4)
                  {articleDestí[troballa]       = nomPàgina; j=tancaTagA;}
                if(trobaPàgina==3)
                  {redireccióCorrecta[troballa] = nomPàgina; trobaPàgina++; j=tancaTagA;}
                if(trobaPàgina==2)
                  {trobaPàgina++; j=tancaTagA;} //correspon a l'enllaç (Edita)
                if(trobaPàgina==1)
                  {dobleRedirecció[troballa]    = nomPàgina; trobaPàgina++; j=tancaTagA;}
              }
            }


            function article_i_historial(article, color){
              url = "http://ca.wikipedia.org/w/index.php?title=";
              if (color =='') color='#000000'; if (color=='blau') color='blue';
              estilText=' style="color:'+color+'; font-weight:bold;"'

              var html = '<a href="'+url+article+'" title="Vegeu l\'article"'
                       + estilText + '>' + article + '</a> ['
                       + '<a href="'+url+article+'&action=history" title="vegeu '
                       + 'l\'historial">h</a>]';
              return html;
            }
            codificaDblRdir = dobleRedirecció[troballa].replace(/'/g,"%39")
            troballes += '<small>' + troballa + '.- '
                      +  '<input type="checkbox" name="edita" id="editaCas'+troballa+'" '
                      +  'onclick="if(checked==true){inserixValor('
                      +  troballa+', \''+codificaDblRdir+'\', '
                      +  'document.getElementById(\'artDest'+troballa+'\').value)'
                      +  '}else{inserixValor('+troballa+',\'\',\'\')}"/>'
                      +  article_i_historial(dobleRedirecció[troballa],'')
                      +  ' <font color="red"><b>⇒</b></font> '
                      +  article_i_historial(redireccióCorrecta[troballa],'')
                      +  ' <font color="darkgreen"><b>⇒</b></font> '
                      +  article_i_historial(articleDestí[troballa],'blau')
                      +  '&bull; L\'article ' + dobleRedirecció[troballa] 
                      +  '<b> ha de remetre a: </b> <input type="text" '
                      +  'id="artDest'+troballa+'" name="artDest"'
                      +  'value="'+articleDestí[troballa]+'"/>'
                      +  ' <input type="button" value="edita" '
                      +  'onclick="editaRedirecció(\''+dobleRedirecció[troballa]+'\', '
                      +  'document.getElementById(\'artDest'+troballa+'\').value)"/></small>'
                      +  '<br/>';
          }
          i=fiResultat
        }
        afegix.push([])
      }

      títols ='<b><font color="red">doble redirecció</font> '
             +  '⇒ redirecció correcta '
             +  '⇒ <font color="blue">article destí</font></b><br />';
      window.focus(wgServer+"/wiki/Usuari:Pasqual/Viquiestris/DoblesRedireccions");
      omplePàgina = títols + troballes;
      fiPàgina    = '<br /><input type="button" value="edita selecció" '
                  + 'onclick="editaSelecció()"/></small></div>';

    } else {
      omplePàgina  = '<div id="regRedirDbl">';
      omplePàgina += 'Actualment no hi ha cap registre sobre articles que remeten a d\'altres '
                   + 'redireccions.';
      fiPàgina     = '</div>';
    }
    if (omplePàgina!=''){
      window.focus(cawiki+"Usuari:Pasqual/Viquiestris/DoblesRedireccions");
      ep=document.getElementById("toolbar")
      if (ep==null){
        afegixContingut=document.getElementById("content");
        afegixContingut.innerHTML += omplePàgina + fiPàgina;
      }
    }
  });

  function inserixValor(atÍndex,atDblRdir, atArtDest){
    afegix[atÍndex][0]=atDblRdir.replace(/%39/g,"'");
    afegix[atÍndex][1]=atArtDest;
  }

  function editaSelecció(){
    var seleccionat = 0;
    for (k=0;k<troballa+1;k++){
      if((afegix[k][0]!='' && afegix[k][0] != null) || (afegix[k][1]!='' && afegix[k][1]!= null)){
        if (confirm("Aneu a redireccionar «"+afegix[k][0]+"» cap a «"+afegix[k][1]
         +"»\nN'esteu segur?")) editaRedirecció(afegix[k][0], afegix[k][1]);
        seleccionat++  
      }
    }
    if (seleccionat==0) alert("No heu seleccionat cap element.");
  }
};

//</pre>