Utente:Salvatore Ingala/commandline.js

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/* <pre><nowiki> */

/**** Command Line Start ****/

/*
Commandline versione 1.0.3
Scritto da [[Utente:Salvatore Ingala]]; contiene alcuni spezzoni di codice di [[Utente:Timendum]].

Rilasciato ai sensi delle license GFDL e GPL.
*/

if (typeof(arrayArgument) == 'undefined'){ //non sovrascriviamo se è già stato definito
arrayArgument = new Array(" ", "aeronautica", "Africa", "agricoltura", "album musicali", "allevamento", "alpinismo", "animali", "anime e manga", "antropologia", "antroponimi", "apicoltura", "archeologia", "architettura", "arte", "arti divinatorie", "arti marziali", "astronomia", "atletica", "automobilismo", "aziende", "baseball", "Bisanzio", "biografie", "biologia", "blues", "botanica", "buddismo", "calcio", "canottaggio", "cattolicesimo", "chimica", "ciclismo", "cinema", "classica", "cristianesimo",
                "cucina", "curling", "danza", "diritto", "ebraismo", "ecologia", "economia", "editoria", "educazione", "Europa", "F1", "film", "filosofia", "fisica", "font", "fotografia", "fumetti", "funghi", "gastronomia", "GDR", "genetica", "geografia", "Giappone", "giochi", "golf", "guerra", "Guerre Stellari", "Harry Potter", "hockey", "informatica", "ingegneria", "hip hop", "jazz",
                "letteratura", "LGBT", "lingue", "linguistica", "mare", "matematica", "meccanica", "medicina", "metal", "mineralogia", "mitologia", "motociclismo", "musei", "musica", "musica elettronica", "nautica", "neopaganesimo", "numismatica", "nuoto", "paleontologia", "pallacanestro", "pallamano", "pallanuoto", "pallavolo", "pattinaggio", "pesca sportiva", "piante", "politica", "Pokémon", "psicologia", "pugilato", "punk", "radio", "religione", "rock", "rugby", "santi", "scacchi", "scienza", "scherma", "sci", "sicurezza",  
                "skeleton", "sociologia", "software libero", "solidarietà", "sport", "sport invernali", "stadi", "Star Trek", "storia", "storia antica", "storia contemporanea", "storia medievale", "storia moderna", "subacquea", "Taoismo", "teatro", "telecomunicazioni", "televisione", "tennis", "tiro con l'arco", "Tolkien", "trasporti", "turismo", "vela", "videogiochi", "vini","voci comuni", "Walt Disney", "wrestling", "zoologia");
}


arrayLingue = new Array("bulgara", "catalana", "cinese", "danese", "esperanto", "finlandese", "francese", "giapponese", "greca", "inglese",
              "islandese",  "italiana", "latina", "lettone", "maltese", "moldava", "norvegese", "olandese", "polacca", "portoghese", "rumena",
              "russa", "slovena", "spagnola", "svedese", "tedesca", "ucraina", "ungherese");


//IMPOSTAZIONI PREDEFINITE
if (typeof(fixformat_list) == 'undefined'){
//nessuna sostituzione impostata, usa quelle standard
fixformat_list = new Array(
  [/\’/g, "'"],
  [/ '([\w\ ]+)' /g, ' "$1" '],
  [/“/g,'"'],
  [/”/g,'"'],
  [/–/g, '-'],
  [/,,/g, ','],
  [/ m2 /g, ' m² '],
  [/a' /g, "à "],
  [/([^p])o' /g, "$1ò "],
  [/u' /g, "ù "],
  [/i' /g, "ì "],
  [/ anzich(è|e')/g, "anziché"],
  [/ affinch(è|e')/g, "affinché"],
  [/ bench(è|e')/g, " benché"],
  [/ cioé/g, " cioè"],
  [/ Dè /g, " De' "],
  [/ dè /g, " de' "],
  [/ dò/g, " do"],
  [/E' /g, "È "],
  [/É /g, "È "],
  [/ e' /g, " è "],
  [/ é/g, " è"],
  [/ fà /g, " fa "],
  [/ fè /g, " fe' "],
  [/ Frà /g, " Fra' "],
  [/ fù /g, " fu "],
  [/ mò /g, " mo' "],
  [/ nè /g, " né "],
  [/ ne' /g, " né "],
  [/ nonch(è|e')/g, " nonché"],
  [/ pè /g, " pe' "],
  [/ perch(è|e')/g, " perché"],
  [/ per(ó|o') /g,' però '],
  [/ piu' /g, " più "],
  [/ pò/g, " po'"],
  [/ poich(è|e') /g, " poiché "],
  [/ propio/g, " proprio"],
  [/ (puo|puo') /gi,' può '],
  [/ quì /gi, " qui "],
  [/ quà /gi, " qua "],
  [/ qual'è /gi, " qual è"],
  [/ sà /gi, " sa "],
  [/ sè /gi, " sé "],
  [/si' /g, "sì"],
  [/ sò /g, " so "],
  [/ sù /g, " su "],
  [/ tr(è|e'|é) /g, " tre "],
  [/ sucessivo /gi, " successivo "],
  [/&lt;/g,'<'],
  [/&gt;/g,'>'],
  [/&amp;/g,'&'],
  [/&quot;/g,'"'],
  [/&agrave;/g,'à'],
  [/&egrave;/g,'è'],
  [/&eacute;/g,'é'],
  [/&igrave;/g,'ì'],
  [/&iexcl;/g,'¡'],
  [/&cent;/g,'¢'],
  [/&pound;/g,'£'],
  [/&yen;/g,'¥'],
  [/&acute;/g,"'"],
  [/&plusmn;/g,'±'],
  [/&times;/g,'×'],
  [/&divide;/g,'÷'],
  [/&micro;/g,'µ'],
  [/&deg;/g,'°'],
  [/&frac14;/g,'¼'],
  [/&frac12;/g,'½'],
  [/&frac34;/g,'¾'],
  [/&sup1;/g,'¹'],
  [/&sup2;/g,'²'],
  [/&sup3;/g,'³'],
  [/&sect;/g,'§'],
  [/<br>\n\n/g,'\n\n'],
  [/<br>/gi,'<br />'],
  [/\n<hr[ \/]*>\n/gi, '\n----\n'],
  [/ +<hr[ \/]*> +/gi, '\n----\n'],
  [/<hr ([^>\/]+?)>/gi,'<hr $1 />']
);
}

if (typeof(fixformat_subject) == 'undefined') fixformat_subject = 'correzioni automatiche; ';

//FINE IMPOSTAZIONI PREDEFINITE

//Funzioni di Timendum
//Segna "modifica minore"
function TimenME() {document.getElementById("wpMinoredit").checked=1;}
//Aggiungi all'oggetto (ma evita i duplicati)
function TimenSA(text) {
  var summ=document.getElementById("wpSummary");
  if (summ == null) return;
  if (summ.value.indexOf(text) == -1)
    summ.value=summ.value+text;
}

//Aggiungi testo prima
function TimenPr(text) {
  // copia il frame di wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) nella wpTextbox1 textarea
  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateTextarea();

  var wpTextbox1=document.getElementById("wpTextbox1");
  wpTextbox1.value=text+wpTextbox1.value;

  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateFrame();
}

//Aggiungi testo dopo
function TimenDp(text) {
  // copia il frame di wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) nella wpTextbox1 textarea
  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateTextarea();
  var wpTextbox1=document.getElementById("wpTextbox1");
  wpTextbox1.value=wpTextbox1.value+text;
  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateFrame();
}

function mese(){
  var today = new Date();
  return (new Array("gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto",
                      "settembre","ottobre","novembre","dicembre"))[today.getMonth()];
}

function anno(){var today = new Date(); return today.getFullYear();}

//Prova a completare string usando dict come  dizionario.
//Restituisce -1 se c'è ambiguità, 0 se non trova nessuna corrispondenza, o la stringa completa se trova una sola occorrenza
//Versione per dizionario di tipo object
function autoComplete1(dict, string, failIfAmbiguous){
  var found = ''
  if ((string == "")||(string==null))
    return string;
  for (var x in dict)
    if (x.indexOf(string) == 0){
      if (!failIfAmbiguous)
        return x;
      if (found == '')
        found = x;
      else {
        return -1;
      }
    }
  if (found != '')
    return found;
  return 0;
}

//Versione per dizionario di tipo array
function autoComplete2(dict, string, failIfAmbiguous){
  var found = ''
  var i;
  if ((string == "")||(string==null))
    return "";
  for (i = 0; i < dict.length; i++)
    if (dict[i].indexOf(string) == 0){
      if (!failIfAmbiguous)
        return dict[i];
      if (found == '')
        found = dict[i];
      else {
        return -1;
      }
    }
  if (found != '')
    return found;
  return 0;
}


//Prova ad auto-completare l'argomento usando arrayArgument[] come dizionario;
//In caso di fallimento restituisce arg
function autoCompleteArgument(arg){
  var completed = autoComplete2(arrayArgument, arg, false);
  if ((completed == -1) || (completed == 0))
    return arg;
  else
   return completed;
}

//Comandi
//cmd['nome comando'] = [funzione, 'commento'];
cmd = new Object();
cmd['a']             = [cmd_a, 'Da aiutare; richiede motivo e argomento'];
cmd['c']             = [cmd_c, 'Da aiutare; richiede motivo e argomento'];
cmd['e']             = [cmd_e, 'Avviso enciclopedicità dubbia; richiede motivo e argomento'];
cmd['p']             = [cmd_p, 'Avviso nNPOV; richiede motivo e argomento'];
cmd['w']             = [cmd_w, 'Da wikificare; richiede argomento'];
cmd['s']             = [cmd_s, 'Stub; richiede argomento (opzionale)'];
cmd['t']             = [cmd_t, 'Da tradurre; richiede lingua e argomento'];
cmd['o']             = [cmd_o, 'Pagina orfana; richiede argomento (opzionale)'];
cmd['categorizzare'] = [cmd_categorizzare, 'Da categorizzare'];
cmd['unire']         = [cmd_unire, 'Da unire; richiede la voce simile'];
cmd['purge']         = [cmd_purge, 'Aggiorna la cache'];
cmd['fixformat']     = [cmd_fixformat, 'Sostituzioni automatiche'];
cmd['replace']       = [cmd_replace, 'Cerca e sostituisci'];
cmd['benvenuto']     = [cmd_benvenuto, 'Messaggio di benvenuto'];
cmd['save']          = [cmd_save, 'Simula la pressione del tasto di salvataggio'];
cmd['preview']       = [cmd_preview, 'Simula la pressione del tasto "Visualizza anteprima"'];
cmd['diff']          = [cmd_diff, 'Simula la pressione del tasto "Mostra cambiamenti"'];

//Preleva un argomento dalla commandline se possibile, altrimenti preleva tramite prompt()
function getArg(text){
  if (cmdline_command_array[cmdline_next_argument] != null)
    return cmdline_command_array[cmdline_next_argument++];
  else{
    var retval = prompt(text);
    if (retval == null)
      return "";
    else
      return retval;
  }
}

function isEditing(){return document.getElementById("wpTextbox1") != null;}

//Template:A
function cmd_a(){
  if (!isEditing()) return;
  TimenPr('{{A|motivo='+(getArg("Motivo"))+'|argomento='+(autoCompleteArgument(getArg("Argomento"),false))+'|mese='+mese()+' '+anno()+'|firma=~~~~}}\n');
  TimenSA('+da aiutare; '); TimenME();
}
//Template:W
function cmd_w(){
  if (!isEditing()) return;
  TimenPr('{{W|argomento='+(autoCompleteArgument(getArg("Argomento"),false))+'|mese='+mese()+' '+anno()+'|firma=~~~~}}\n');
  TimenSA('+wikificare; '); TimenME();
}
//Template:E
function cmd_e(){
  if (!isEditing()) return;
  TimenPr('{{E|'+(getArg("Motivo"))+'|'+(autoCompleteArgument(getArg("Argomento"),false))+'|'+mese()+' '+anno()+'|~~~~}}\n');
  TimenSA('+avviso enciclopedicità dubbia; '); TimenME();
}
//Template:P
function cmd_p(){
  if (!isEditing()) return;
  TimenPr('{{P|motivo='+(getArg("Motivo"))+'|argomento='+(autoCompleteArgument(getArg("Argomento"),false))+'|mese='+mese()+' '+anno()+'|firma=~~~~}}\n');
  TimenSA('+avviso nNPOV; '); TimenME();
}
//Template:C
function cmd_c(){
  if (!isEditing()) return;
  TimenPr('{{C|motivo='+(getArg("Motivo"))+'|argomento='+(autoCompleteArgument(getArg("Argomento"),false))+'|mese='+mese()+' '+anno()+'|firma=~~~~}}\n');
  TimenSA('+da controllare; '); TimenME();
}
//Template {{S}}
function cmd_s(){
  if (!isEditing()) return;

  var arg = getArg("Argomento");
  var pipepos = arg.indexOf("|");
  if (pipepos == -1)
    var argomento = autoCompleteArgument(arg, false);
  else
    var argomento = autoCompleteArgument(arg.substring(0,pipepos), false) + "|" + autoCompleteArgument(arg.substring(pipepos+1), false);

  TimenPr('{{S' + (((argomento != null)&&(argomento!='')) ? ('|' + argomento + '}}\n') : '}}\n'));
  TimenSA('+stub; '); TimenME();
}
//Template:T
function cmd_t(){
  if (!isEditing()) return;

  var lingua = autoComplete2(arrayLingue, getArg("Lingua"), false);
  var argomento = autoCompleteArgument(getArg("Argomento"));

  TimenPr('{{T|lingua=' + lingua + '|argomento=' + argomento +'|data='+mese()+' '+anno()+ '}}\n');
  TimenSA('+da tradurre; '); TimenME();
}
//Template:O
function cmd_o(){
  if (!isEditing()) return;
  TimenPr('{{O|'+autoCompleteArgument(getArg("Argomento"),false)+'|mese='+mese()+' '+anno()+'|firma=~~~~}}\n');
  TimenSA('+avviso orfana; '); TimenME();
}

//Template {{categorizzare}}
function cmd_categorizzare(){
  if (!isEditing()) return; TimenDp('{{Categorizzare}}\n'); TimenSA('da categorizzare; '); TimenME();
}
//Template {{Da unire}}
function cmd_unire(){
  if (!isEditing()) return;
  TimenPr('{{Da unire|' + getArg("Voce:") + '}}\n');
  TimenSA('+da unire; '); TimenME();
}

//Benvenuto ai nuovi utenti
function cmd_benvenuto(){
  if (!isEditing()) return; TimenDp('{{benve|nome={{subst:PAGENAME}}|~~~ ~~~~~}}'); TimenSA('Benvenuto su it.wiki!'); TimenME();
}

//Aggiorna cache
function cmd_purge(){
  if (!document.getElementById) return;
  var x = document.getElementById('ca-history');
  var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
  if (!x) return;
  if (x.children) x = x.children[0];
  else x = x.childNodes[0];
  ___location.href=x.href.replace(/action=history/g, "action=purge");
}

//Sostituzioni automatiche
function cmd_fixformat(){
  if (!isEditing()) return;
  if (typeof(fixformat_list) == 'undefined') return;

  // copia il frame di wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) nella wpTextbox1 textarea
  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateTextarea();

  var wpTextbox1 = document.getElementById("wpTextbox1");
  var prev = wpTextbox1.value;
  for (i = 0; i < fixformat_list.length; i++)
    wpTextbox1.value = wpTextbox1.value.replace(fixformat_list[i][0], fixformat_list[i][1]);

  if (typeof(wikEdUseWikEd) != 'undefined')
    if (wikEdUseWikEd == true)
      WikEdUpdateFrame();

  if (wpTextbox1.value != prev){
    TimenSA(fixformat_subject); TimenME();
  }
}

//Cerca e sostituisci
function cmd_replace(){
  if (!isEditing()) return;
  var s = getArg("Regexp da cercare?");
  if(s){
    var r = getArg("Sostituire con?");
    if(!r && r != '') return;

    // copia il frame di wikEd (http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js) nella wpTextbox1 textarea
    if (typeof(wikEdUseWikEd) != 'undefined')
      if (wikEdUseWikEd == true)
        WikEdUpdateTextarea();

    var wpTextbox1 = document.getElementById("wpTextbox1");
    wpTextbox1.value = wpTextbox1.value.replace(new RegExp(s, "g"), r);

    if (typeof(wikEdUseWikEd) != 'undefined')
      if (wikEdUseWikEd == true)
        WikEdUpdateFrame();

  }
}

//Premi "Salva"
function cmd_save(){if (!isEditing()) return; document.getElementById("wpSave").click();}

//Premi "Visualizza anteprima"
function cmd_preview(){if (!isEditing()) return; document.getElementById("wpPreview").click();}

//Premi "Mostra cambiamenti"
function cmd_diff(){ if (!isEditing()) return; document.getElementById("wpDiff").click(); }

function runCommand(command){
  if ((command == null)||(command == "")) return;
  var commandline = command;
  //WARNING: variabile globale
  cmdline_command_array = commandline.split('#');

  //WARNING: variabile globale: indice del prossimo argomento da leggere
  cmdline_next_argument = 0;
  while((command = cmdline_command_array[cmdline_next_argument++]) != null){
    var wpTextbox1=document.getElementById("wpTextbox1");
    if (cmd[command] != null){
      cmd[command][0]();
      continue;
    }
    //Cerchiamo se è prefisso univoco di un comando
    var completed = autoComplete1(cmd, command, true)
    if ((completed != 0)&&(completed != -1))
      cmd[completed][0](); //tutto a posto, eseguiamo
  }
}

function showCommandLine(){runCommand(prompt("Comando:", ""));}

function addCommandLine(){
  var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
  var na = document.createElement('a');
  na.href = "javascript:showCommandLine()";
  na.appendChild(document.createTextNode('Command line'));
  var li = document.createElement('li');
  li.id = 'tb-cmdline';
  li.appendChild(na);
  tb.appendChild(li);

  window.onkeypress = manageHotKey;
}
addOnloadHook(addCommandLine);

function manageHotKey (e) {
  e = (e) ? e : ((window.event) ? window.event : null);
  if (e)
    if (e.altKey || e.metaKey) {
      var charCode = (e.charCode) ? e.charCode : ((e.which) ? e.which : e.keyCode);
      if (String.fromCharCode (charCode).toLowerCase() == 'z')
        showCommandLine();
    }
}

function fakeActionRunCommands(){
  if (getParamValue("fakeaction") == "runcommand"){
    var commandline = getParamValue("command");
    runCommand(commandline);
  }
}

/**** Command Line End ****/

/* </nowiki></pre> */