Utente:Ricordisamoa/WikidataHelper.bot.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.
/* <nowiki>
*
* WikidataHelper.bot.js by [[User:Ricordisamoa]]
* inspired by [[wikidata:User:Tpt/slurpInterwiki.js]]
* optimized to run in a bot on it.wiki
*
*/
function interlinks(page){
$.ajax({
url:"http://wikidata.org/w/api.php",
data:{
format:"json",
action:"wbgetentities",
titles:page,
sites:"itwiki"
},
dataType:"jsonp"
})
.done(function(data){
if(data.success&&data.entities[Object.keys(data.entities)[0]]){
var q=$.ucFirst(Object.keys(data.entities)[0]);
var sl=$($.map(data.entities[Object.keys(data.entities)[0]].sitelinks,function(e){
return [e.site.replace(/_/g,"-").replace(/wiki$/g,"")+":"+e.title];
})).not(["it:"+page]);
$.get(
mw.util.wikiGetlink(page),
{action:"raw"}
)
.done(function(d){
var regex=/\[\[(simple|[a-z]{2,3}(\-[a-z]+){0,2}):([^\[\]\n\r]+)\]\]/g;
if(d.match(regex)!=null){
var ll=$.map(d.match(regex),function(e){
return [e.match(/\[\[(simple|[a-z]{2,3}(\-[a-z]+){0,2}):/)[1]+":"+e.match(/:([^\[\]\n\r]+)\]\]/)[1]];
});
ll_not_sl=$(ll).not(sl);// langlinks that are not in sitelinks (can be imported into Wikidata)
if($.compareArray(sl,ll)||ll_not_sl.length==0){
$.ajax({
type:"POST",
url:"/w/api.php",
data:{
action:"edit",
text:d.replace(/\[\[(simple|[a-z]{2,3}(\-[a-z]+){0,2}):[^\[\]\n\r]+\]\](\n\r?)?/g,"").replace(/\n\n$/,"\n"),
title:page,
summary:"[[Utente:Ricordisamoa/WikidataHelper|WikidataHelper]]: rimozione interlink perché già presenti su Wikidata"+
(q?" ([[wikidata:"+q+"|qui]])":""),
minor:"true",
bot:"true",
watchlist:"watch",
token:mw.user.tokens.get("editToken")
}
})
.done(function(){
console.log("WikidataHelper-bot: successfully edited page '"+page+"'");
return;
})
.fail(stopBot);
} else return;
}
});
} else stopBot();
})
.fail(stopBot);
}
function startTask(length){
$.getJSON(
"/w/api.php",
{
action:"query",
format:"json",
uclimit:500,// i 500 (il massimo)
list:"usercontribs",// contributi
ucdir:"older",// più nuovi (attenzione, "older" non è un errore!)
ucuser:"JarektBot",// di JarektBot
ucprop:"title"// senza altre opzioni superflue (come pagina, ecc.)
},
function(data){
if(data.query.usercontribs){
$.getJSON(
"/w/api.php",
{
action:"query",
format:"json",
uclimit:500,// i 500 (il massimo)
list:"usercontribs",// contributi
ucdir:"older",// più nuovi (attenzione, "older" non è un errore!)
ucuser:"SamoaBot",// di SamoaBot
ucprop:"title"// senza altre opzioni superflue (come pagina, ecc.)
},
function(d){
if(d.query.usercontribs){
var titles=$.map(data.query.usercontribs,function(e){
return [e.title];
}).not(
$.map(d.query.usercontribs,function(e){
return [e.title];
})
);
for(i=0;i<length;i++){
if(window.isBotStopped==false) interlinks(titles[i]);
}
}
}
);
}
}
);
}
function stopBot(){
window.isBotStopped=true;
console.log("Bot Stopped!");
}
$(document).ready(function(){
if(wgCanonicalNamespace==""||wgNamespaceNumber==0){
$(mw.util.addPortletLink("p-tb","#","WikidataHelper","WikidataHelper","Procedura guidata di integrazione e rimozione degli interlink"))
.click(function(event){
event.preventDefault();
$(mw.util.addPortletLink("p-tb","#","BOT:STOP","BotStop","Fermate quel bot!"))
.click(function(event){
event.preventDefault();
stopBot();
});
window.isBotStopped=false;
startTask(10);
});
}
});
//</nowiki>