Потребител:Metrónomo/common.js: Разлика между версии
Изтрито е съдържание Добавено е съдържание
Редакция без резюме |
Премахване на цялото съдържание на страницата |
||
Ред 1: | Ред 1: | ||
//<nowiki> |
|||
//CATEGORIZAR |
|||
function cargarCategorizar() |
|||
{ |
|||
var tmp=''; |
|||
//tmp += agregarBoton('Coleópteros', 'autoedit', 's~[Cc]ategoría:[Ii]nsectos~ategoría:Coleópteros~g&autoclick=wpSave&autominor=true&autosummary=Cambio de categorías'); |
|||
//tmp += agregarBoton('Mantodeos', 'autoedit', 's~[Cc]ategoría:[Ii]nsectos~ategoría:Mantodeos~g&autoclick=wpSave&autominor=true&autosummary=Cambio de categorías'); |
|||
// tmp += agregarBoton('#REDIRECCIÓN [[Plantilla:babel]]', "subst"); |
|||
return tmp; |
|||
} |
|||
//DESTRUIR |
|||
function cargarDestruir() |
|||
{ |
|||
var tmp=''; |
|||
// tmp += agregarBoton('Pruebas de edición', "FBdest"); |
|||
// tmp += agregarBoton('Redirección innecesaria', "FBdest"); |
|||
// tmp += agregarBoton('Categoría vacía', "cat"); |
|||
//tmp += agregarBotonMenu("Usuario inexistente, página creada por","leerInformacionBoton('Usuario','dest');"); |
|||
//tmp += agregarBotonMenu("Plagio","leerInformacionBoton('URL','FBplagio');"); |
|||
// tmp += agregarBotonMenu("Otro","leerInformacionBoton('Motivo','FBdest');"); |
|||
return tmp; |
|||
} |
|||
//PLANTILLAS |
|||
function cargarPlantillas() |
|||
{ |
|||
var tmp=''; |
|||
//tmp += agregarBoton('SRA', 'FBplant', '{{sinrelevancia|{{subst:CURRENTDAY}}|{{subst:CURRENTMONTHNAME}}}}'); |
|||
//tmp += agregarBoton('Consulta de borrado', 'borrado', '{{subst:cdb}}'); |
|||
//tmp += agregarBoton('Aviso de consulta', 'aviso', '{{subst:aviso cdb|{{subst:FULLPAGENAME}}}} ~~~~'); |
|||
return tmp; |
|||
} |
|||
//SUSTITUIR |
|||
function cargarSustituir() |
|||
{ |
|||
var tmp=''; |
|||
//tmp += agregarBoton('Huracán', 'autoedit', 's~{{Saffir~{{subst:Saffir~g&autoclick=wpSave&autominor=false&autosummary=Reemplazando plantilla por tabla'); |
|||
tmp += agregarBoton('(bordered)', 'autoedit', 's~[_ ]\(bordered\)~~g&autominor=true&autosummary=Ненужно защото [[Шаблон:Флагче]] който използвате параметър "border" (if I make a mistake, please [[User Talk:Metrónomo|let me know]])&autoclick=wpSave'); |
|||
//tmp += agregarBoton('doméstica/os', 'autoedit', 's~dom[eé]stic[ao]s~nacionales~g&autominor=true&autosummary=Corrigiendo [[falso amigo]]. Véanse http://www.wordreference.com/es/translation.asp?tranword=flight y http://www.linguee.es/ingles-espanol/traduccion/domestic+flight.html&autoclick=wpSave'); |
|||
return tmp; |
|||
} |
|||
//OTROS |
|||
function cargarOtros() |
|||
{ |
|||
var tmp=''; |
|||
var advertenciaMenu = encodeURI("Aviso:\n(nada): Prueba\n0a: Etiqueta\n0b: Estilo\n0c: Spam\n2: Ediciones sin sentido\n2a: Blanqueo\n3: Detente\n4: Última advertencia\n5: Bloqueo"); |
|||
//tmp += agregarBotonMenu("Advertencia","leerInformacionBoton(\'"+advertenciaMenu+"\','FBwarn');"); |
|||
return tmp; |
|||
} |
|||
//********************************************************************************************************************************* |
|||
//Funciones generales |
|||
//********************************************************************************************************************************* |
|||
//agregarPlantilla: añade una plantilla al inicio de la página y guarda. |
|||
function agregarPlantilla(plantilla,resumen) |
|||
{ |
|||
document.getElementById("wpTextbox1").value = plantilla + '\n' + document.getElementById("wpTextbox1").value; |
|||
document.editform.wpSummary.value = resumen; |
|||
document.editform.submit(); |
|||
} |
|||
//agregarPlantillaFinal: añade una plantilla al final de la página y guarda. |
|||
function agregarPlantillaFinal(plantilla,resumen) |
|||
{ |
|||
document.getElementById("wpTextbox1").value = document.getElementById("wpTextbox1").value + '\n' + plantilla; |
|||
document.editform.wpSummary.value = resumen; |
|||
document.editform.submit(); |
|||
} |
|||
//borrarCategoria: añade una plantilla al final de la página y guarda. |
|||
function borrarCategoria(plantilla,resumen) |
|||
{ |
|||
document.getElementById("wpTextbox1").value = plantilla; |
|||
document.editform.wpSummary.value = resumen; |
|||
document.editform.submit(); |
|||
} |
|||
//agregarBoton: genera la cadena para añadir un botón, tomando ciertos parámetros. |
|||
function agregarBoton(buttonLabel, buttonType, typeParam, wikiAction ) |
|||
{ |
|||
if (!typeParam) var typeParam = buttonLabel; |
|||
if (!wikiAction) var wikiAction = 'edit'; |
|||
return '<span class="keyboard-key" style="font-size:smaller; border:1px solid; border-color: #fff #bbb #bbb #fff; outline:1px solid #ddd; background:#F5DEB3; padding: 0.1em 0.3em; white-space:nowrap"><a href='+wikiURL+ wikiAction + '&' + buttonType + '='+encodeURI(typeParam)+'>'+buttonLabel+'</a></span> '; |
|||
} |
|||
//agregarBotonMenu: genera la cadena para añadir un botón de acción. |
|||
function agregarBotonMenu(buttonLabel, accion) |
|||
{ |
|||
return '<a onclick='+accion+'><span class="keyboard-key" style="font-size:smaller; border:1px solid; border-color: #fff #bbb #bbb #fff; outline:1px solid #ddd; background:#FFFACD; padding: 0.1em 0.3em; white-space:nowrap">'+buttonLabel+'</span></a> '; |
|||
} |
|||
//leerInformacionBoton: ejecuta el código de un botón de acción que lee datos. Lee un dato del usuario. |
|||
function leerInformacionBoton(mensaje, buttonType, wikiAction) |
|||
{ |
|||
if (!wikiAction) var wikiAction='edit'; |
|||
var input = prompt(decodeURI(mensaje)); |
|||
if (input!=null) location.href=wikiURL+wikiAction+'&'+buttonType+'='+encodeURI(input); |
|||
} |
|||
//********************************************************************************************************************************* |
|||
//Añadir los botones |
|||
//********************************************************************************************************************************* |
|||
var PAGENAME=''; |
|||
var USERNAME=''; |
|||
var FBList=''; |
|||
var wikiURL = 'https://bg.wikipedia.org/w/index.php?title='; |
|||
//Extraer datos de la página |
|||
PAGENAME=encodeURI(wgPageName); |
|||
if (PAGENAME.match("&")) |
|||
{ |
|||
PAGENAME=PAGENAME.replace("&","%26"); |
|||
} |
|||
wikiURL=wikiURL+PAGENAME+"&action="; |
|||
USERNAME=PAGENAME.split(":")[1]; |
|||
//Botones de categorizar |
|||
{ |
|||
if (typeof botonesCategorizar=='function') { |
|||
tmp = botonesCategorizar(); |
|||
} else { |
|||
tmp = cargarCategorizar(); |
|||
} |
|||
if (tmp!='') { |
|||
FBList = FBList + 'Categorías: ' + tmp + '<br>'; |
|||
} |
|||
} |
|||
//Botones de destruir |
|||
{ |
|||
if (typeof botonesDestruir=='function') { |
|||
tmp = botonesDestruir(); |
|||
} else { |
|||
tmp = cargarDestruir(); |
|||
} |
|||
if (tmp!='') { |
|||
FBList = FBList + 'Destruir: ' + tmp + '<br>'; |
|||
} |
|||
} |
|||
//Plantillas |
|||
{ |
|||
if (typeof botonesPlantillas=='function') { |
|||
tmp = botonesPlantillas(); |
|||
} else { |
|||
tmp = cargarPlantillas(); |
|||
} |
|||
if (tmp!='') { |
|||
FBList = FBList + 'Plantillas: ' + tmp + '<br>'; |
|||
} |
|||
} |
|||
//Sustituir |
|||
{ |
|||
if (typeof botonesSustituir=='function') { |
|||
tmp = botonesSustituir(); |
|||
} else { |
|||
tmp = cargarSustituir(); |
|||
} |
|||
if (tmp!='') { |
|||
FBList = FBList + 'Sustituir: ' + tmp + '<br>'; |
|||
} |
|||
} |
|||
//Otros |
|||
{ |
|||
if (typeof botonesOtros=='function') { |
|||
tmp = botonesOtros(); |
|||
} else { |
|||
tmp = cargarOtros(); |
|||
} |
|||
if (tmp!='') { |
|||
FBList = FBList + 'Otros: ' + tmp; |
|||
} |
|||
} |
|||
/* Mostrar los botones en la página */ |
|||
addOnloadHook(function () |
|||
{ |
|||
if (wgCanonicalNamespace == "Special") return; |
|||
if (document.getElementById('contentSub').innerHTML!='') document.getElementById('contentSub').innerHTML += '<br>'; |
|||
document.getElementById('contentSub').innerHTML += FBList; |
|||
if (location.href.match("FBdest=")) |
|||
{ |
|||
var plantilla = decodeURI(location.href.substring(location.href.indexOf("FBdest=")+7)); |
|||
agregarPlantilla("{{destruir|"+plantilla+"}}" , "Destruir: "+plantilla); |
|||
} |
|||
if (location.href.match("FBplant=")) |
|||
{ |
|||
var plantilla = decodeURI(location.href.substring(location.href.indexOf("FBplant=")+8)); |
|||
agregarPlantilla(plantilla , "Plantilla: "+plantilla); |
|||
} |
|||
if (location.href.match("borrado=")) |
|||
{ |
|||
var articulo = decodeURI(location.href.substring(location.href.indexOf("borrado=")+8)); |
|||
agregarPlantilla(articulo , "Nominada para su borrado: véase [[Wikipedia:Consultas de borrado/"+PAGENAME+"]]"); |
|||
} |
|||
if (location.href.match("FBplagio=")) |
|||
{ |
|||
var url = decodeURI(location.href.substring(location.href.indexOf("FBplagio=")+9)); |
|||
agregarPlantilla('{{plagio|1='+url+'|2=~~~~}}', "Plagio desde "+url); |
|||
} |
|||
if (location.href.match("dest=")) |
|||
{ |
|||
var usuario = decodeURI(location.href.substring(location.href.indexOf("dest=")+5)); |
|||
agregarPlantilla('{{destruir|Usuario inexistente, página creada por [[Usuario:'+usuario+']].}}', "Destruir: Usuario inexistente"); |
|||
} |
|||
if (location.href.match("cat=")) |
|||
{ |
|||
var plantilla = decodeURI(location.href.substring(location.href.indexOf("cat=")+4)); |
|||
borrarCategoria('{{destruir|'+plantilla+'}}', "Destruir: Categoría vacía"); |
|||
} |
|||
if (location.href.match("subst=")) |
|||
{ |
|||
var texto = decodeURI(location.href.substring(location.href.indexOf("subst=")+6)); |
|||
borrarCategoria('#REDIRECCIÓN [[Plantilla:babel]]', "Redirigiendo a [[Plantilla:babel]]"); |
|||
} |
|||
if (location.href.match("aviso=")) |
|||
{ |
|||
var aviso= decodeURI(location.href.substring(location.href.indexOf("aviso=")+6)); |
|||
agregarPlantillaFinal(aviso,'Aviso al usuario'); |
|||
} |
|||
else if (location.href.match("FBwarn=")) |
|||
{ |
|||
var advertencia= decodeURI(location.href.substring(location.href.indexOf("FBwarn=")+7)); |
|||
agregarPlantillaFinal('{{subst:prueba'+decodeURI(advertencia)+'}} --~~~~','Aviso al usuario'); |
|||
} |
|||
}); |
|||
//********************************************************************************************************************************* |
|||
//Autoedit |
|||
//********************************************************************************************************************************* |
|||
function getParamValue(paramName) { |
|||
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)'); |
|||
var h=document.location; |
|||
var m; |
|||
if (m=cmdRe.exec(h)) { |
|||
try { |
|||
return decodeURI(m[1]); |
|||
} catch (someError) {} |
|||
} |
|||
return null; |
|||
}; |
|||
function substitute(data,cmdBody) { |
|||
// alert('sub\nfrom: '+cmdBody.from+'\nto: '+cmdBody.to+'\nflags: '+cmdBody.flags); |
|||
var fromRe=RegExp(cmdBody.from, cmdBody.flags); |
|||
return data.replace(fromRe, cmdBody.to); |
|||
}; |
|||
function execCmds(data, cmdList) { |
|||
for (var i=0; i<cmdList.length; ++i) { |
|||
data=cmdList[i].action(data, cmdList[i]); |
|||
} |
|||
return data; |
|||
} |
|||
function parseCmd(str) { |
|||
// returns a list of commands |
|||
if (!str.length) return []; |
|||
var p=false; |
|||
switch (str.charAt(0)) { |
|||
case 's': |
|||
p=parseSubstitute(str); |
|||
break; |
|||
case 'j': |
|||
p=parseJavascript(str); |
|||
break; |
|||
default: |
|||
return false; |
|||
} |
|||
if (p) return [p].concat(parseCmd(p.remainder)); |
|||
return false; |
|||
}; |
|||
function unEscape(str, sep) { |
|||
return str.split('\\\\').join('\\') |
|||
.split('\\'+sep).join(sep) |
|||
.split('\\n').join('\n'); |
|||
}; |
|||
function runJavascript(data, argWrapper) { |
|||
// flags aren't used (yet) |
|||
// from the user's viewpoint, |
|||
// data is a special variable may appear inside code |
|||
// and gets assigned the text in the edit box |
|||
// alert('eval-ing '+argWrapper.code); |
|||
return eval(argWrapper.code); |
|||
}; |
|||
function parseJavascript(str) { |
|||
// takes a string like j/code/;othercmds and parses it |
|||
var tmp,code,flags; |
|||
if (str.length<3) return false; |
|||
var sep=str.charAt(1); |
|||
str=str.substring(2); |
|||
tmp=skipOver(str,sep); |
|||
if (tmp) { code=tmp.segment.split('\n').join('\\n'); str=tmp.remainder; } |
|||
else return false; |
|||
flags=''; |
|||
if (str.length) { |
|||
tmp=skipOver(str,';') || skipToEnd(str, ';'); |
|||
if (tmp) {flags=tmp.segment; str=tmp.remainder; } |
|||
} |
|||
return { action: runJavascript, code: code, flags: flags, remainder: str }; |
|||
}; |
|||
function parseSubstitute(str) { |
|||
// takes a string like s/a/b/flags;othercmds and parses it |
|||
var from,to,flags,tmp; |
|||
if (str.length<4) return false; |
|||
var sep=str.charAt(1); |
|||
str=str.substring(2); |
|||
tmp=skipOver(str,sep); |
|||
if (tmp) { from=tmp.segment; str=tmp.remainder; } |
|||
else return false; |
|||
tmp=skipOver(str,sep); |
|||
if (tmp) { to=tmp.segment; str=tmp.remainder; } |
|||
else return false; |
|||
flags=''; |
|||
if (str.length) { |
|||
tmp=skipOver(str,';') || skipToEnd(str, ';'); |
|||
if (tmp) {flags=tmp.segment; str=tmp.remainder; } |
|||
} |
|||
return {action: substitute, from: from, to: to, flags: flags, remainder: str}; |
|||
}; |
|||
function skipOver(str,sep) { |
|||
var endSegment=findNext(str,sep); |
|||
if (endSegment<0) return false; |
|||
var segment=unEscape(str.substring(0,endSegment), sep); |
|||
return {segment: segment, remainder: str.substring(endSegment+1)}; |
|||
} |
|||
function skipToEnd(str,sep) { |
|||
return {segment: str, remainder: ''}; |
|||
} |
|||
function findNext(str, ch) { |
|||
for (var i=0; i<str.length; ++i) { |
|||
if (str.charAt(i)=='\\') i+=2; |
|||
if (str.charAt(i)==ch) return i; |
|||
} |
|||
return -1; |
|||
}; |
|||
function runOnLoad(f) { |
|||
if (window.addEventListener) { |
|||
window.addEventListener("load",f,false); |
|||
} |
|||
else if (window.attachEvent) { |
|||
window.attachEvent("onload",f); |
|||
} |
|||
else { |
|||
window._old_popup_autoedit_onload = window.onload; |
|||
window.onload = function() { |
|||
window._old_popup_autoedit_onload(); |
|||
f(); |
|||
} |
|||
} |
|||
}; |
|||
window.autoEdit=function() { |
|||
if (window.autoEdit.alreadyRan) return false; |
|||
window.autoEdit.alreadyRan=true; |
|||
var cmdString=getParamValue('autoedit'); |
|||
if (cmdString) { |
|||
try { |
|||
var editbox=document.editform.wpTextbox1; |
|||
} catch (dang) { return; } |
|||
var cmdList=parseCmd(cmdString); |
|||
var input=editbox.value; |
|||
var output=execCmds(input, cmdList); |
|||
editbox.value=output; |
|||
// wikEd user script compatibility |
|||
if (typeof(wikEdUseWikEd) != 'undefined') { |
|||
if (wikEdUseWikEd == true) { |
|||
WikEdUpdateFrame(); |
|||
} |
|||
} |
|||
} |
|||
var summary=getParamValue('autosummary'); |
|||
if (summary) document.editform.wpSummary.value=summary; |
|||
var minor=getParamValue('autominor'); |
|||
if (minor) { |
|||
switch (minor) { |
|||
case '1': |
|||
case 'yes': |
|||
case 'true': |
|||
document.editform.wpMinoredit.checked=true; |
|||
break; |
|||
case '0': |
|||
case 'no': |
|||
case 'false': |
|||
document.editform.wpMinoredit.checked=false; |
|||
} |
|||
} |
|||
var watch = getParamValue('autowatch'); |
|||
if (watch) { |
|||
switch (watch) { |
|||
case '1': |
|||
case 'yes': |
|||
case 'true': |
|||
document.editform.wpWatchthis.checked = true; |
|||
break; |
|||
case '0': |
|||
case 'no': |
|||
case 'false': |
|||
document.editform.wpWatchthis.checked = false; |
|||
} |
|||
} |
|||
var btn=getParamValue('autoclick'); |
|||
if (btn) { |
|||
if (document.editform && document.editform[btn]) { |
|||
var headings=document.getElementsByTagName('h1'); |
|||
if (headings) { |
|||
var div=document.createElement('div'); |
|||
var button=document.editform[btn]; |
|||
div.innerHTML='<font size=+1><b>The "' + button.value + |
|||
'" button has been automatically clicked.' + |
|||
' Please wait for the next page to load.</b></font>'; |
|||
document.title='('+document.title+')'; |
|||
headings[0].parentNode.insertBefore(div, headings[0]); |
|||
button.click(); |
|||
} |
|||
} else { |
|||
alert('autoedit.js\n\nautoclick: could not find button "'+ btn +'".'); |
|||
} |
|||
} |
|||
}; |
|||
runOnLoad(autoEdit); |
|||
//</nowiki> |