Utente:ArcheoBot/WikidataHelper.bot.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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(
				"/w/index.php",
				{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]];
					});
					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];
								})
							).get();
							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(40);
		});
	}
});
//</nowiki>