Utente:LoStrangolatore/Script/Apri Puntano Qui/Codice

// Apre un elenco di voci copiate dall'elenco dei PuntanoQui. By User:LoStrangolatore. //

Per approfondire, vedi Utente:LoStrangolatore/Script/Apri Puntano Qui.


Tool_ApriPuntanoQui = {};

// input: una sequenza di titoli di voci intervallate da scritte "(← collegamenti)", il tutto con un numero imprecisato di spazi in mezzo. // restituisce: un array di pagine. Tool_ApriPuntanoQui.estraiArrayDiPagineDaInput = function(input) {

   // Step 1 - Ottengo un array di titoli dall'input
   temp = input.split("(← collegamenti)");
   
   // Step 2 - Ripulisco l'array dalle stringhe vuote.
   risultato = [];
   for(i = 0; i < temp.length; i++)
       if (temp[i] != "") risultato[risultato.length] = temp[i];
   
   // Step 3 - restituisco l'array al chiamante.
   return risultato;

} Tool_ApriPuntanoQui.urlDiModifica = function(pagina) {

   return wgServer + "/w/index.php?title=" + pagina.replace(/ /g, "_") + "&action=edit";

} Tool_ApriPuntanoQui.urlDeiPuntanoQui = function(pagina) {

   return wgServer + "/wiki/Speciale:PuntanoQui/" +
       pagina.replace(/^ */g, "").replace(/ *$/g, "")    // rimuovo gli spazi all'inizio e alla fine, lasciando quelli in mezzo
   ;

} Tool_ApriPuntanoQui.apriPagina = function(url) {

   window.open(url);

}

// input: un array di titoli di pagine. // risultato: apre tutte le pagine in modalità di modifica. Tool_ApriPuntanoQui.apriPagineDiModifica = function(pagine) {

   for(i = 0; i < pagine.length; i++)
       Tool_ApriPuntanoQui.apriPagina(Tool_ApriPuntanoQui.urlDiModifica(pagine[i]));

}


Tool_ApriPuntanoQui.esegui = function() {

   msg = "Passo 1: Apri la pagina dei Puntano Qui.\n" +
         "\n" +
         "Passo 2: copia tutte le righe dell'elenco.\n" + 
         "\n" +
         "Passo 3: incolla nella casella di testo che segue.";
   input = prompt(msg, "");
   
   // A questo punto, input contiene una sequenza di titoli di voci intervallate da scritte "(← collegamenti)", il tutto con un numero imprecisato di spazi in mezzo.
   
   pagine = Tool_ApriPuntanoQui.estraiArrayDiPagineDaInput(input);
   Tool_ApriPuntanoQui.apriPagineDiModifica(pagine);

}