Utente:Salvatore Ingala/commandline.js: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m versione fixata da Jalo |
Versione 2.0 |
||
Riga 4:
/*
Commandline versione
Scritto da [[Utente:Salvatore Ingala]]; contiene alcuni spezzoni di codice di Timendum e Jalo.
Rilasciato ai sensi delle
*/
Riga 24:
//IMPOSTAZIONI PREDEFINITE
if (typeof(cmdHotKey) == 'undefined') cmdHotKey = 'z';
if (typeof(cmdQuickHotKey) == 'undefined') cmdQuickHotKey = 'x';
if (typeof(cmdCookieExpiration) == 'undefined') cmdCookieExpiration = 20;
if (typeof(fixformat_list) == 'undefined'){
//nessuna sostituzione impostata, usa quelle standard
Riga 111 ⟶ 118:
//FINE IMPOSTAZIONI PREDEFINITE
// Funzioni di utilità generale
//Codice preso inizialmente da http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js
function cmdGetCookie(name) {
var cookie = ' ' + document.cookie;
var search = ' ' + name + '=';
var setStr = '';
var offset = 0;
var end = 0;
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(';', offset)
if (end == -1)
end = cookie.length;
setStr = cookie.substring(offset, end);
setStr = setStr.replace(/\\+/g, ' ');
setStr = decodeURIComponent(setStr);
}
return(setStr);
}
//Codice preso inizialmente da http://en.wikipedia.org/wiki/User:Cacycle/wikEd.js
function cmdSetCookie(name, value, expires, path, ___domain, secure) {
var cookie = name + '=' + encodeURIComponent(value);
if (expires != null){
var date = new Date();
date.setTime(date.getTime()+expires*1000);
cookie += "; expires="+date.toGMTString();
}
if (path != null)
cookie += '; path=' + path;
else
cookie += "; path=/";
if (___domain != null)
cookie += '; ___domain=' + ___domain;
if (secure != null)
cookie += '; secure';
document.cookie = cookie;
}
function cmdDeleteCookie(name) {
document.cookie = (name + "=0; expires=Fri, 27 Jul 2001 10:10:10 UTC; path=/");
}
/* Fine Funzioni gestione cookie */
// recupera un parametro dall'URL
function cmdGetParam(name, h){
if (h == null) h = window.___location.href;
var qmarkpos = h.indexOf('?');
if (qmarkpos == -1) return '';
var a = h.substring(qmarkpos+1).split('&');
for(var i = 0; i < a.length; i++){
var eq = a[i].indexOf('=');
if (eq == -1) continue;
if(a[i].substring(0, eq) == name) return a[i].substring(eq + 1);
}
return '';
}
//mette in maiuscolo il primo carattere di str
function cmdUpFirst(str){
if (str)
return str.substring(0,1).toUpperCase() + str.substring(1);
else
return str;
}
//Rimuove i blank spaces iniziali e finali
function cmdTrim(str){return str.replace(/^\s+|\s+$/, '');}
function cmdGetPageTitle(){
return wgPageName;
}
//Funzioni di Timendum
Riga 117 ⟶ 200:
//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) {
cmdWEUpdateTextarea();
var wpTextbox1 =document.getElementById("wpTextbox1");
wpTextbox1.value = text+wpTextbox1.value;
cmdWEUpdateFrame();
}
//Aggiungi testo dopo
function TimenDp(text) {
cmdWEUpdateTextarea();
var wpTextbox1 = document.getElementById("wpTextbox1");
wpTextbox1.value += text;
cmdWEUpdateFrame();
}
function
var today = new Date(); return today.getDate();
}
function cmdMese(){
var today = new Date();
return (new Array("gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto",
Riga 157 ⟶ 232:
}
function
//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
var found = ''
if ((string == "")||(string==null)) return string;
for (var x in dict)
if (x.indexOf(string) == 0){
Riga 172 ⟶ 246:
if (found == '')
found = x;
else
return -1;
}
if (found != '') return found;
return 0;
}
//Versione per dizionario di tipo array
function
var found = ''
var i;
if ((string == "")||(string==null)) return "";
for (i = 0; i < dict.length; i++)
if (dict[i].indexOf(string) == 0){
Riga 193 ⟶ 264:
if (found == '')
found = dict[i];
else
return -1;
}
if (found != '')
Riga 205 ⟶ 275:
//Prova ad auto-completare l'argomento usando arrayArgument[] come dizionario;
//In caso di fallimento restituisce arg
function
var completed =
if ((completed == -1) || (completed == 0))
return arg;
Riga 230 ⟶ 300:
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"'];
cmd['goto'] = [cmd_goto, 'Va ad un\'altra pagina di wiki; richiede destinazione ed action'];
cmd['eval'] = [cmd_eval, 'Esegue del codice javascript'];
cmd['evalvar'] = [cmd_evalvar, 'Esegue del codice javascript e assegna il risultato ad una variabile. Richiede variabile e codice da eseguire.'];
cmd['setvar'] = [cmd_setvar, 'Imposta il valore di una variabile'];
cmd['process'] = [cmd_process, 'Processa la parte restante di commandline'];
cmd['processn'] = [cmd_processn, 'Processa i successivi n blocchi. Richiede n'];
cmd['insertbefore'] = [cmd_insertbefore, 'Inserisce del testo all\'inizio; richiede il testo da inserire'];
cmd['insertafter'] = [cmd_insertafter, 'Inserisce del testo alla fine; richiede il testo da inserire'];
cmd['setsummary'] = [cmd_setsummary, 'Imposta il campo oggetto della modifica; richiede il testo'];
cmd['setminor'] = [cmd_setminor, 'Selezione o deseleziona la checkbox "modifica minore"; richiede 0 o 1'];
cmd['prompt'] = [cmd_prompt, 'Imposta una variabile richiedendo input di tipo stringa all\'utente'];
cmd['alert'] = [cmd_alert, 'Mostra un messaggio'];
cmd['skip'] = [cmd_skip, 'Salta i successivi n blocchi; richiede n'];
cmd['label'] = [cmd_label, 'Indica una label nel codice. Prende un argomento e non fa nulla'];
cmd['jump'] = [cmd_jump, 'Salta ad una label'];
cmd['stop'] = [cmd_stop, 'Interrompe definitivamente l\'esecuzione dello script'];
cmd['ifvoidpage'] = [cmd_ifvoidpage, 'Se la casella di editing è vuota, passa al blocco successivo, altrimenti salta 2 blocchi'];
cmd['iftrue'] = [cmd_iftrue, 'Valuta un\'espressione fra due valori, salta 2 blocchi se è falsa'];
cmd['nop'] = [cmd_nop, 'No Operation'];
cmd['add'] = [cmd_add, 'Somma; richiede la variabile di destinazione e il numero o il nome della variabile da sommare'];
cmd['sub'] = [cmd_sub, 'Sottrazione; richiede la variabile di destinazione e il numero o il nome della variabile da sottrarre'];
cmd['mul'] = [cmd_mul, 'Moltiplicazione; richiede la variabile di destinazione e il numero o il nome della variabile per cui moltiplicare'];
cmd['div'] = [cmd_div, 'Divisione intera; richiede la variabile di destinazione e il valore/nome del divisore'];
cmd['mod'] = [cmd_mod, 'Resto della divisione intera; richiede la variabile di destinazione e il valore/nome del divisore'];
cmd['runscript'] = [cmd_runscript, 'Esegue uno script'];
cmd['_rv'] = [cmd_restorevar, 'Rispristina il valore di una variabile. Per usi interni'];
cmdScript = new Object();
//Proposta di cancellazione per una pagina.
cmdScript['vfd'] = "prompt#Sarà proposta per la cancellazione la voce \"$$plaintitle\".\n" +
"Inserire il motivo della richiesta (non dimenticare la firma!)#Motivo#" +
"iftrue#@$$$Motivo#==##stop#nop#iftrue#@$$$Motivo#==#null#stop#nop#" +
"goto#Wikipedia:Pagine da cancellare/$$title#edit#setvar#Temp1##setvar#Temp2##setvar#Temp3##" +
"ifvoidpage#jump#Inizializzato#" +
"goto#Wikipedia:Pagine da cancellare/$$title/2#edit#setvar#Temp1#|/2#setvar#Temp2#|2#setvar#Temp3#/2#" +
"ifvoidpage#jump#Inizializzato#" +
"goto#Wikipedia:Pagine da cancellare/$$title/3#edit#setvar#Temp1#|/3#setvar#Temp2#|3#setvar#Temp3#/3#" +
"ifvoidpage#jump#Inizializzato#" +
"alert#Impossibile proseguire. Continuare manualmente.#stop#" +
"label#Inizializzato#" +
"goto#$$title#edit#insertbefore#@{{da cancellare$$$Temp1}}%0A#setsummary#proposta di cancellazione#" +
"save#" +
"goto#@Wikipedia:Pagine da cancellare/$$title$$$Temp3#edit#" +
"insertbefore#@{{richiesta cancellazione|$$plaintitle$$$Temp2}}%0A%0A$$$Motivo%0A#setsummary#proposta di cancellazione#" +
"save#" +
"goto#Wikipedia:Pagine da cancellare/Log/$$currentyear $$currentmonthname $$currentday#edit#" +
"replace#\\n*<!--inizio procedure interrotte-->#@\\n{{Wikipedia:Pagine da cancellare/$$plaintitle$$$Temp3}}\\n\\n<!--inizio procedure interrotte-->#" +
"save#" +
"goto#@Wikipedia:Pagine da cancellare/$$title$$$Temp3#view#" +
"alert#Completato. Ricordati, se è il caso, di avvisare della proposta di cancellazione il contributore principale della voce.";
//Preleva un argomento dalla commandline se possibile, altrimenti preleva tramite prompt()
function
if (cmdline_command_array[cmdline_next_argument] != null)
return cmdPreprocessBlock(cmdline_command_array[cmdline_next_argument++]);
else{
var retval = prompt(text,"");
if (retval == null)
return "";
Riga 247 ⟶ 375:
}
//Ritorna una stringa con i comandi ancora da eseguire
function cmdReencodeCmdLine(){
if (typeof(cmdline_next_argument) == 'undefined') return "";
var res = "";
var cna = cmdline_next_argument;
var command;
while((command = cmdline_command_array[cna++]) != null)
res = res + "#" + command;
return res == "" ? res : res.substring(1); //rimuoviamo il "#" di troppo
}
//Salva su cookie i comandi non ancora eseguiti e distrugge quella corrente
//Salva anche lo stato delle variabili di runtime, se ce ne sono
//L'esecuzione ripartirà solo alla pagina title (quella corrente se title non viene fornito)
function cmdSaveCmdLine(title){
if(typeof(title) == 'undefined') title = cmdGetPageTitle();
var c = "";
if (typeof(cmd_savevars) != 'undefined') for(x in cmd_savevars)
c += "_rv#" + x + "#" + cmd_vars[x] + "#"; //rimane un # in più
var t = cmdReencodeCmdLine(); //parte rimanente di commandline
c += t;
cmdline_command_array = new Array();
if (t != "")
for (var i = 0; i < 5; i++)
if (cmdGetCookie("cmdAutoRunPage" + i) == ''){
cmdSetCookie("cmdAutoRunPage" + i, title, cmdCookieExpiration);
cmdSetCookie("cmdAutoRunCommand" + i, c, cmdCookieExpiration);
break;
}
}
function cmdIsEditing(){return document.getElementById("wpTextbox1") != null;}
//Se la pagina non è aperta in modifica, salva la commandline (compreso l'ultimo comando) e apre la pagina in modifica.
function cmdEnsureEditing(){
if (!cmdIsEditing()){
cmdline_next_argument--;
cmdSaveCmdLine();
___location.href = wgServer + "/w/index.php?title=" + wgPageName + "&action=edit";
return true;
}
return false;
}
//Template:A
function cmd_a(){
if (
TimenPr('{{A|motivo='+(
TimenSA('+da aiutare; '); TimenME();
}
//Template:W
function cmd_w(){
if (
TimenPr('{{W|argomento='+(
TimenSA('+wikificare; '); TimenME();
}
//Template:E
function cmd_e(){
if (
TimenPr('{{E|'+(
TimenSA('+avviso enciclopedicità dubbia; '); TimenME();
}
//Template:P
function cmd_p(){
if (
TimenPr('{{P|motivo='+(
TimenSA('+avviso nNPOV; '); TimenME();
}
//Template:C
function cmd_c(){
if (
TimenPr('{{C|motivo='+(
TimenSA('+da controllare; '); TimenME();
}
//Template {{S}}
function cmd_s(){
if (
var arg =
var pipepos = arg.indexOf("|");
if (pipepos == -1)
var argomento =
else
var argomento =
TimenPr('{{S' + (((argomento != null)&&(argomento!='')) ? ('|' + argomento + '}}\n') : '}}\n'));
Riga 295 ⟶ 468:
//Template:T
function cmd_t(){
if (
var lingua =
var argomento =
TimenPr('{{T|lingua=' + lingua + '|argomento=' + argomento +'|data='+
TimenSA('+da tradurre; '); TimenME();
}
//Template:O
function cmd_o(){
if (
TimenPr('{{O|'+
TimenSA('+avviso orfana; '); TimenME();
}
Riga 312 ⟶ 485:
//Template {{categorizzare}}
function cmd_categorizzare(){
if (
}
//Template {{Da unire}}
function cmd_unire(){
if (
TimenPr('{{Da unire|' +
TimenSA('+da unire; '); TimenME();
}
Riga 323 ⟶ 496:
//Benvenuto ai nuovi utenti
function cmd_benvenuto(){
if (
}
Riga 334 ⟶ 507:
if (x.children) x = x.children[0];
else x = x.childNodes[0];
cmdSaveCmdLine();
___location.href=x.href.replace(/action=history/g, "action=purge");
}
Riga 339 ⟶ 515:
//Sostituzioni automatiche
function cmd_fixformat(){
if (
if (typeof(fixformat_list) == 'undefined') return;
cmdWEUpdateTextarea();
var wpTextbox1 = document.getElementById("wpTextbox1");
Riga 352 ⟶ 525:
wpTextbox1.value = wpTextbox1.value.replace(fixformat_list[i][0], fixformat_list[i][1]);
cmdWEUpdateFrame();
if (wpTextbox1.value != prev){
Riga 363 ⟶ 534:
//Cerca e sostituisci
function cmd_replace(){
if (
var s =
if(s){
var r =
if(!r && r != '') return;
cmdWEUpdateTextarea();
var wpTextbox1 = document.getElementById("wpTextbox1");
wpTextbox1.value = wpTextbox1.value.replace(new RegExp(s, "g"), r);
cmdWEUpdateFrame();
}
}
//Premi "Salva"
function cmd_save(){
if (! cmdSaveCmdLine(); document.getElementById("wpSave").click(); } //Premi "Visualizza anteprima"
function cmd_preview(){
if (! cmdSaveCmdLine(); document.getElementById("wpPreview").click(); } //Premi "Mostra cambiamenti"
function cmd_diff(){
if (! cmdSaveCmdLine(); document.getElementById("wpDiff").click(); } //Vai ad un'altra pagina
function cmd_goto(){
var dst = cmdGetArg("Destinazione");
var action = cmdGetArg("action");
cmdSaveCmdLine(dst.replace(/ /g, "_"));
___location.href = wgServer + "/w/index.php?title=" + encodeURIComponent(dst) + "&action=" + action;
}
//Esegue codice JavaScript
function cmd_eval(){
var jscode = cmdGetArg("Comando JavaScript:");
eval(jscode);
}
//Esegue codice JavaScript e salva il risultato in una variabile
function cmd_evalvar(){
var name = cmdGetArg("Nome della variabile:");
var jscode = cmdGetArg("Comando JavaScript:");
cmdSetVar(name, eval(jscode));
}
//Esegue codice JavaScript
function cmd_setvar(){
var n = cmdGetArg("Nome variabile:");
var v = cmdGetArg("Valore:");
cmdSetVar(n, v);
}
//Esegue codice JavaScript
function cmd_process(){
var c = cmdPreprocess(cmdReencodeCmdLine());
//WARNING: variabile globale
cmdline_command_array = c.split('#');
//WARNING: variabile globale: indice del prossimo argomento da leggere
cmdline_next_argument = 0;
}
//Processa solo i successivi n blocchi
function cmd_processn(){
var n = parseInt(cmdGetArg("Numero di blocchi:"));
if (isNaN(n) || (n == 0)) return;
var c1 = "", c2 = "";
for(var i = 0; i < n; i++)
c1 += cmdline_command_array[cmdline_next_argument+i] + "#";
cmdline_next_argument += n;
c2 = cmdReencodeCmdLine();
//alert("c1 = " + c1 + "; c2 = " + c2);
c1 = cmdPreprocess(c1) + c2;
cmdline_command_array = c1.split("#");
cmdline_next_argument = 0;
}
//Ripristina una variabile al vecchio valore.
function cmd_restorevar(){
var n = cmdGetArg("Nome variabile:");
var v = cmdGetArg("Valore:");
cmdSetVar(n, v);
}
//Inserisce del testo all'inizio
function cmd_insertbefore(){
var text = cmdGetArg("Testo da inserire");
TimenPr(unescape(text));
}
//Inserisce del testo alla fine
function cmd_insertafter(){
var text = cmdGetArg("Testo da inserire");
TimenDp(unescape(text));
}
//Imposta l'oggetto della modifica
function cmd_setsummary(){
var txt = cmdGetArg("Oggetto:");
var summ=document.getElementById("wpSummary");
if (summ == null) return;
summ.value=unescape(txt);
}
//Imposta come modifica minore
function cmd_setminor(){
var t = cmdGetArg("inserire 0 (deselezionato) o 1 (selezionato):");
var m = document.getElementById("wpMinoredit");
if (m){
if (t == "0") m.checked = 0;
if (t == "1") m.checked = 1;
}
}
//Chiede input all'utente
function cmd_prompt(){
var text = cmdGetArg("Testo da mostrare all'utente:");
var varname = cmdGetArg("Nome della variabile da impostare:");
cmdSetVar(varname, escape(prompt(text, "")));
}
//Mostra un messaggio
function cmd_alert(){
var t = cmdGetArg("Testo da mostrare all'utente:");
if(t != null) alert(unescape(t));
}
//Salta i successivi n blocchi
function cmd_skip(){
var n = parseInt(cmdGetArg("Blocchi da saltare:"));
if(!isNaN(n))
cmdline_next_argument += n;
}
//Label nel codice. Prende un argomento ma non fa nulla.
function cmd_label(){
var arg = cmdGetArg("Nome label:");
}
//Salta all'istruzione successiva ad una label
function cmd_jump(){
var dst = cmdGetArg("Label di destinazione:");
while(cmdline_command_array[cmdline_next_argument]){
var b1 = cmdTrim(cmdline_command_array[cmdline_next_argument]);
var b2 = cmdTrim(cmdline_command_array[cmdline_next_argument+1]);
if((b1 == 'label') && (b2 == dst)){
cmdline_next_argument += 2; return;
}
cmdline_next_argument++;
}
alert("Errore: Label '" + dst + "' non trovata.");
stop();
}
//Se la casella di modifica non è vuota, salta avanti di 2 blocchi
function cmd_ifvoidpage(){
cmdWEUpdateTextarea();
if(document.getElementById("wpTextbox1").value)
cmdline_next_argument += 2;
}
//Confronta due valori come interi o, se non è possibile, come float o, infine, come stringhe.
function cmd_iftrue(){
var v1 = cmdGetArg("Primo valore:");
var op = cmdGetArg("Operando (<, <=, ==, >, >=, !=):");
var v2 = cmdGetArg("Secondo valore:");
var v1i = parseInt(v1);
var v2i = parseInt(v2);
var v1f = parseFloat(v1);
var v2f = parseFloat(v2);
if (!isNaN(v1i) && !isNaN(v2i))
switch(op){ //Confronto fra stringhe
case '<' : cmdline_next_argument += v1i < v2i ? 0 : 2; break;
case '<=': cmdline_next_argument += v1i <= v2i ? 0 : 2; break;
case '==': cmdline_next_argument += v1i == v2i ? 0 : 2; break;
case '>=': cmdline_next_argument += v1i >= v2i ? 0 : 2; break;
case '>' : cmdline_next_argument += v1i > v2i ? 0 : 2; break;
case '!=': cmdline_next_argument += v1i != v2i ? 0 : 2; break;
}
else if (!isNaN(v1f) && !isNaN(v2f))
switch(op){ //Confronto tra float
case '<' : cmdline_next_argument += v1f < v2f ? 0 : 2; break;
case '<=': cmdline_next_argument += v1f <= v2f ? 0 : 2; break;
case '==': cmdline_next_argument += v1f == v2f ? 0 : 2; break;
case '>=': cmdline_next_argument += v1f >= v2f ? 0 : 2; break;
case '>' : cmdline_next_argument += v1f > v2f ? 0 : 2; break;
case '!=': cmdline_next_argument += v1f != v2f ? 0 : 2; break;
}
else
switch(op){ //Confronto tra stringhe
case '<' : cmdline_next_argument += v1 < v2 ? 0 : 2; break;
case '<=': cmdline_next_argument += v1 <= v2 ? 0 : 2; break;
case '==': cmdline_next_argument += v1 == v2 ? 0 : 2; break;
case '>=': cmdline_next_argument += v1 >= v2 ? 0 : 2; break;
case '>' : cmdline_next_argument += v1 > v2 ? 0 : 2; break;
case '!=': cmdline_next_argument += v1 != v2 ? 0 : 2; break;
}
}
//No OPeration
function cmd_nop(){ }
//Fine forzata script
function cmd_stop(){
cmdline_command_array = new Array(); cmdline_next_argument = 0;
}
//Esegui uno script
function cmd_runscript(){
var name = cmdGetArg("Nome dello script:");
if((name)&&(cmdScript[name])){
cmd_stop();
cmdRunCommand(cmdScript[name], true);
}
}
//Aggiunge un valore ad una variabile
function cmd_add(){
var varname = cmdGetArg("Nome della variabile:");
var n = cmdGetArg("Valore o nome della variabile da aggiungere:");
if (isNaN(n))
n = cmd_vars[n];
cmd_vars[varname] = "" + (parseInt(cmd_vars[varname]) + parseInt(n));
}
//Sottrae un valore ad una variabile
function cmd_sub(){
var varname = cmdGetArg("Nome della variabile:");
var n = cmdGetArg("Valore o nome della variabile da sottrarre:");
if (isNaN(n))
n = cmd_vars[n];
cmd_vars[varname] = "" + (parseInt(cmd_vars[varname]) - parseInt(n));
}
//Moltiplica una variabile intera per un valore
function cmd_mul(){
var varname = cmdGetArg("Nome della variabile:");
var n = cmdGetArg("Valore o nome della variabile da sottrarre:");
if (isNaN(n))
n = cmd_vars[n];
cmd_vars[varname] = "" + (parseInt(cmd_vars[varname]) * parseInt(n));
}
//Divisione intera tra una variabile e un valore
function cmd_div(){
var varname = cmdGetArg("Nome del dividendo:");
var n = cmdGetArg("Valore o nome del divisore:");
if (isNaN(parseInt(n)))
n = cmd_vars[n];
else
n = parseInt(n);
cmd_vars[varname] = "" + (parseInt(cmd_vars[varname] - cmd_vars[varname]%n ) / n);
}
//Resto della divisione intera
function cmd_mod(){
var varname = cmdGetArg("Nome del dividendo:");
var n = cmdGetArg("Valore o nome del divisore:");
if (isNaN(parseInt(n)))
n = cmd_vars[n];
cmd_vars[varname] = "" + (parseInt(cmd_vars[varname]) % parseInt(n));
}
function cmdPreprocess(cmd){
//Parsing variabili predefinite
cmd = " " + cmd + " "; //un carattere qualsiasi diverso da '$'
cmdSetVar("title", cmdGetPageTitle(), false);
cmdSetVar("plaintitle", cmdGetPageTitle().replace(/_/g," "), false);
cmdSetVar("currentyear", "" + cmdAnno(), false);
cmdSetVar("currentmonthname", "" + cmdMese(), false);
cmdSetVar("currentmonth", "" + (new Date()).getMonth()+1, false);
cmdSetVar("currentday", "" + cmdGiorno(), false);
cmdSetVar("null", "", false);
//Parsing variabili di runtime
if (typeof(cmd_vars) != 'undefined'){
for(x in cmd_vars)
cmd = cmd.replace(new RegExp("([^$])\\$\\$" + x + "([^a-zA-Z])", "g"), "$1"+"<<substitution><" + x +">>"+"$2");
for(x in cmd_vars){
var tmp = cmd_vars[x].replace(/\$/g, "<<<dollar>>>");
cmd = cmd.replace(new RegExp("<<substitution><" + x +">>", "g"), tmp).replace(/<<<dollar>>>/g, "$");
}
}
//Trasformiamo ogni $$.(n).$ in $$.(n-1).$ (es.: $$$$variabile --> $$$variabile)
cmd = cmd.replace(/(\$*)\$\$\$()/g,"$1"+"$$$");
return cmd.substring(1, cmd.length-1);
}
//Processa un singolo blocco se il suo primo carattere è "@"
function cmdPreprocessBlock(txt){
if(txt.charAt(0) != '@')
return txt;
return cmdPreprocess(txt.substring(1));
}
function cmdSetVar(variabile, valore, toSave){
if(typeof(toSave) == 'undefined') toSave = true;
if(typeof(cmd_vars) == 'undefined') cmd_vars = new Object();
if(typeof(cmd_savevars) == 'undefined') cmd_savevars = new Object();
cmd_vars[variabile] = unescape(valore);
if (toSave) cmd_savevars[variabile] = unescape(valore);
}
function
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;
//Ripristina variabili di runtime
while(cmdline_command_array[cmdline_next_argument] == "_rv"){
cmdline_next_argument++;
cmd_restorevar();
}
commandline = mustprocess ? cmdPreprocess(cmdReencodeCmdLine()) : cmdReencodeCmdLine();
cmdline_command_array = commandline.split('#');
cmdline_next_argument = 0;
while((command = cmdline_command_array[cmdline_next_argument++]) != null){
command = cmdPreprocessBlock(cmdTrim(command));
if (command.indexOf("#") != -1){
cmdline_command_array = (command + cmdReencodeCmdLine()).split("#");
command = cmdline_command_array[0];
cmdline_next_argument = 1;
}
command = cmdTrim(command);
if (cmd[command] != null){
//alert("Comando: " + command);
cmd[command][0](command);
continue;
}
//Cerchiamo se è prefisso univoco di un comando
var completed =
if ((completed != 0)&&(completed != -1))
cmd[completed][0](); //tutto a posto, eseguiamo
else
alert("Comando sconosciuto: " + command + ". Ignoro e continuo.");
}
}
function showCommandLine(){
var c = prompt("Comando:", "" if (c && cmdScript[c]) cmdRunCommand(cmdScript[c], true);
else cmdRunCommand(c, true);
}
function addCommandLine(){
Riga 426 ⟶ 920:
tb.appendChild(li);
window.onkeypress =
}
addOnloadHook(addCommandLine);
function
e = (e) ? e : ((window.event) ? window.event : null);
if ((e) && (e.altKey || e.metaKey)) {
var charCode = (e.charCode) ? e.charCode : ((e.which) ? e.which : e.keyCode);
switch
case cmdHotKey: showCommandLine(); return false;
case cmdQuickHotKey: cmdRunCommand(cmdQuickCommand, true); return false;
}
}
}
function
//AutoRun via URL
if (cmdGetParam("fakeaction") == "runcommand"){
cmdRunCommand(commandline, true);
}
//AutoRun via cookies
for(var i = 0; i < 4; i++){
var title = cmdGetCookie("cmdAutoRunPage"+i);
var commandline = cmdGetCookie("cmdAutoRunCommand"+i);
if (cmdGetPageTitle() == title){
cmdDeleteCookie("cmdAutoRunPage"+i);
cmdDeleteCookie("cmdAutoRunCommand"+i);
cmdRunCommand(commandline, false);
break;
}
}
}
addOnloadHook(cmdLineAutoRunCommands);
//CODICE DI COMPATIBILITA' CON wikEd
// WikEdKeyFrame: Ridefinito il metodo che, altrimenti, trapperebbe ogni tasto schiacciato impedendo
// l'uso di 'Alt+z' quando ci si trova sulla finestra di modifica
function cmdWEUpdateTextarea(){
if (typeof(wikEdUseWikEd) != 'undefined')
if (wikEdUseWikEd == true)
WikEdUpdateTextarea();
}
function cmdWEUpdateFrame(){
if (typeof(wikEdUseWikEd) != 'undefined')
if (wikEdUseWikEd == true)
WikEdUpdateFrame();
}
function WikEdKeyFrame(event) {
if (wikEdUseWikEd == true) {
if (event.type == 'keypress')
switch (event.type) {
Riga 496 ⟶ 1 013:
return;
}
/**** Command Line End ****/
/* </nowiki></pre> */
|