Usuario:Emijrp/DescriptionsToCommons.js

De Wikipedia, la enciclopedia libre

Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.

// ==UserScript==
// @name           DescriptionsToCommons
// @namespace      CheckAvailability
// @description Move image descriptions from Wikipedia articles to Commons
// @include     *
// @exclude
//
// @homepage    http://es.wikipedia.org/wiki/Usuario:Emijrp/DescriptionsToCommons
// @source      http://es.wikipedia.org/wiki/Usuario:Emijrp/DescriptionsToCommons.js
// @author      emijrp (http://es.wikipedia.org/wiki/Usuario:Emijrp)
// @license     GPL 3
// ==/UserScript==

function getParameter(par){
	regex = new RegExp ("[\\?&]"+par+"=([^&#]*)");
	result = regex.exec(unescape(window.location.href));
	if (result == null)
		return "";
	return result[1];
}

excluded_images=/((commons|wikinews|wikisource|wikispecies|wikiversity)\-logo\.svg)/i;
//excluded_images=/\.(pne?g|svg)/i;

//estamos en una wikipedia?
//alert(window.location.href);
url=unescape(window.location.href);
if (url.search(/[a-z][a-z]\.wikipedia\.org\/wiki/)!=-1)
{
	lang=url;
	lang=lang.replace(/http:\/\//, '');
	lang=lang.replace(/\.wikipedia\.org.*/, '');
	
	var html = document.body.innerHTML; 
	
	article='';
	m=html.match(/\<h1 id\=\"firstHeading\" class\=\"firstHeading\"\>[^\<]*?\<\/h1\>/g);
	if (m)
	{
		for (i=0;i<m.length;i++)
		{
			article=m[i];
			article=article.replace(/.*?\>/, '');
			article=article.replace(/\<.*/, '');
		}
	}
	
	var reg = /\<a href\=\"\/wiki\/[^\: ]*?\:([^\"]*?)\" class\=\"image\" title\=\"([^\"]*?)\"\>/g;
	m=html.match(reg);
	
	if (m)
	{
		for (i=0;i<m.length;i++)
		{
			a=m[i];
			
			imagen=desc=a;
			imagen=imagen.replace(/\<a href\=\"\/wiki\/[^\:]*?\:/g, '');
			imagen=imagen.replace(/\" class\=\"image\".*/g, '');
			imagen_=imagen;
			imagen=imagen.replace(/_/g, ' ');
			
			desc=desc.replace(/.*class\=\"image\" title\=\"/g, '');
			desc=desc.replace(/\"\>/g, '');
			
			//metemos enlace a commons
			if (imagen!=desc && desc.length>15 && imagen.search(excluded_images)==-1) {
				urlcommons='http://commons.wikimedia.org/w/index.php?title=File:'+imagen_+'&action=edit&lang='+lang+'&article='+escape(article)+'&desc='+escape(desc)
				html=html.replace('px;">'+a, 'px;"><small><a href="'+urlcommons+'">Send description</a> to Commons</small>'+a);
			}
		}
	}
	
	document.body.innerHTML = html;
}

//estamos en commons?
if (url.search(/commons\.wikimedia\.org\/w/)!=-1)
{
	lang=getParameter("lang");
	desc=getParameter("desc");
	article=getParameter("article");
	
	if (lang!="" && desc!="" && article!="")
	{
		text=document.getElementById("wpTextbox1").value;
		text="{{"+lang+"|"+desc+"}}\n"+text;
		document.getElementById("wpTextbox1").value=text;
		document.getElementById("wpSummary").value="Adding description from [[:"+lang+":"+article+"]] using [[:es:User:Emijrp/DescriptionsToCommons|DescriptionsToCommons]]";
	}
}