Usator:Ricordisamoa/SamoaBot.js
Nota: Post publicar, il pote esser necessari refrescar le cache de tu navigator pro vider le cambiamentos.
- Firefox / Safari: Tenente Shift clicca Reload (Recargar), o preme Ctrl-F5 o Ctrl-R (⌘-R sur Mac)
- Google Chrome: Preme Ctrl-Shift-R (⌘-Shift-R sur Mac)
- Internet Explorer / Edge: Tenente Ctrl clicca Refresh (Refrescar), o preme Ctrl-F5
- Opera: Preme Ctrl-F5.
/* <nowiki>
*
* WikidataHelper.bot.js by [[User:Ricordisamoa]]
* inspired by [[d:User:Tpt/slurpInterwiki.js]]
* optimized to run in a bot
*
*/
function remove(page,newD,ii,q){
$.post(
mw.util.wikiScript("api"),
{
action:"edit",
text:newD,
title:page,
summary:"Bot: interwikik eltávolítása ([[d:"+q+"|Wikidata]])",
minor:true,
bot:true,
token:mw.user.tokens.get("editToken")
}
)
.done(function(data){
if(data&&data.error&&data.error.info){
console.warn("Error! on "+page+": "+data.error.info);
}
else{
console.groupCollapsed((data===newD?"uguale ":"")+ii+" | "+page);
console.log(data);
console.log(newD);
console.groupEnd();
}
})
.fail(stopBot);
}
function interlinks(page,ii){
$.getJSON(mw.util.wikiScript("api"),
{
action:"query",
titles:page,
prop:"templates",
tltemplates:"Template:Nobots",
format:"json"
},
function(t){
if(typeof(t.query.pages[Object.keys(t.query.pages)[0]].templates)=="undefined"){
var lang=wgServer.split(/(\/\/|\.)/)[2];
$.ajax({
url:"http://wikidata.org/w/api.php",
data:{
format:"json",
action:"wbgetentities",
titles:page,
sites:lang.replace(/-/g,"_")+"wiki"
},
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([lang+":"+page]);
$.get(
mw.util.wikiScript("index"),
{title: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].trim()).replace(/_/g," ")];
});
ll_not_sl=$(ll).not(sl);// langlinks that are not in sitelinks (can be imported into Wikidata)
var newD=d.replace(/\[\[(simple|[a-z]{2,3}(\-[a-z]+){0,2}):[^\[\]\n\r]+\]\](\n\r?)?/g,"").replace(/\n\n$/,"\n");
if($.compareArray(sl,ll)||ll_not_sl.length==0){
remove(page,newD,ii,q);
} else {
console.log(ii+" "+page+" "+ll_not_sl.get());
$.each(ll_not_sl,function(i,e){
//console.log(e);
/*
$.post(
"http://wikidata.org/w/api.php",
{
format:"json",
site:lang.replace(/-/g,"_")+"wiki",
title:page,
linksite:e.split(":")[0].replace(/-/g,"_")+"wiki",
linktitle:e.split(":").slice(1).join(":"),
bot:true,
summary:"Bot: importing interwikis from "+lang+".wiki",
token:mw.user.tokens.get("editToken")
}
)
.done(function(data){
if(data.error&&data.error.info){
console.warn("Error importing interwikis: "+data.error.info);
document.location.reload();
return;
}
else if(i===ll_not_sl.length-1) remove(page,newD,ii);
})
.fail(function(){
console.warn("Error importing interwikis");
document.location.reload();
return;
});*/
});
}
}
});
}
});
} else stopBot();
})
.fail(stopBot);
}
function startTask(start,length,delay){
if(typeof(delay)==="undefined") var delay=60;
$.getJSON(
mw.util.wikiScript("api"),
{
action:"query",
format:"json",
apfrom:start,
aplimit:length,
list:"allpages",
apfilterredir:"nonredirects"
},
function(data){
if(data.query.allpages&&typeof(data.query.allpages)!="undefined"&&data.query.allpages.length>0){
var titles=$.map(data.query.allpages,function(e){
return [e.title];
});
var apstart=data["query-continue"].allpages.apcontinue;
console.log(titles);
console.log(apstart);
var ii=0;
var interval=setInterval(function(){
if(ii<length){
interlinks(titles[ii],ii);
ii+=1;
}
else return;
},delay*1000);
}
else console.warn("no query result!");
}
);
}
function startCat(cat,length,delay){
if(typeof(delay)==="undefined") var delay=60;
$.getJSON(
mw.util.wikiScript("api"),
{
action:"query",
format:"json",
cmlimit:length,
list:"categorymembers",
cmtitle:"Category:"+cat,
cmprop:"title",
cmtype:"page"
},
function(data){
if(data.query.categorymembers){
var titles=$.map(data.query.categorymembers,function(e){
return [e.title];
});
var ii=0;
var interval=setInterval(function(){
if(ii<length){
interlinks(titles[ii],ii);
ii+=1;
}
else return;
},delay*1000);
}
}
);
}
function stopBot(){
window.isBotStopped=true;
console.log("Bot Stopped!");
document.location.reload();
}