See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Utilisateur:Stef48/DR.js - Wikipédia

Utilisateur:Stef48/DR.js

Un article de Wikipédia, l'encyclopédie libre.

Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.

if(wgUserName == 'Stef48') 
{
	if (wgTitle == "Stef48/DR" && wgAction == "view")
	{
		//constante pour les messages
		var DR_END = 0
		var DR_START = 1
		var DR_EMPTY_LIST = 2
		var DR_DOMPARSER_FAILURE = 3
		var DR_USERPAGE = 4
		var DR_CANT_EXTRACT_PAGENAME_FROM_HREF = 5
		var DR_FAILURE_P1_NOT_REDIRECT = 6
		var DR_FAILURE_P2_NOT_REDIRECT = 7
		var DR_FAILURE_PI_DOESNT_POINT_P2 = 8
		var DR_SUCCESS = 9
		var DR_DONT_FIND_TWO_ANCHORS = 10
 
		var DR_list
 
 
		addLoadEvent(DR_launch)
	}
 
}
 
 
function DR_launch()
{
	var req=new XMLHttpRequest()
 
	document.getElementById('contentSub').style.whiteSpace='nowrap'
 
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
			if(req.status==200)
				DR_solve(req.responseText)
	}
 
	req.open("GET","/w/index.php?title=Special:DoubleRedirects&limit=5000&offset=0", true)
	req.send(null)
}
 
function DR_getAnchorPage(Page)
{
	var a = document.createElement('a')
 
	a.textContent = Page
	a.href = "/w/index.php?title=" + encodeURIComponent(Page) 
 
	return a
}
 
 
function DR_getAnchorPageDiff(Page)
{
	var a = document.createElement('a')
 
	a.textContent = "(diff)"
	a.href = "/w/index.php?title=" + encodeURIComponent(Page) + "&diff=cur&oldid=prev"
 
	return a
}
 
function DR_getAnchorPageNoRedirect(Page)
{
	var a = document.createElement('a')
 
	a.textContent = "(nr)"
	a.href = "/w/index.php?title=" + encodeURIComponent(Page) + "&redirect=no"
 
	return a
}
 
function DR_newMessage(type, args)
{
	var div = document.getElementById('contentSub')
 
	switch(type)
	{
		case (DR_DOMPARSER_FAILURE):
		{
			div.appendChild(document.createTextNode('erreur lors du parsing de la page de redirection'))
			break
		}
		case (DR_EMPTY_LIST):
		{
			div.appendChild(document.createTextNode('liste de double redirection vide'))
			break
		}
		case (DR_START):
		{
			div.appendChild(document.createTextNode('Job commencé:' + DR_list.length + " à traiter"))
			break
		}
		case (DR_END):
		{
			div.appendChild(document.createTextNode('Job fini!'))
			break
		}
		case (DR_USERPAGE):
		{
			div.appendChild(document.createTextNode(args.i + ": La page à modifier est une page utilisateur: "))
			div.appendChild(DR_getAnchorPage(args.target1))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target1))
			break
		}
		case (DR_CANT_EXTRACT_PAGENAME_FROM_HREF):
		{
			div.appendChild(document.createTextNode(args.i + ": href bizzare: "))
			div.appendChild(DR_getAnchorPage(args.anchor1.cloneNode(true)))
			div.appendChild(document.createTextNode(" et "))
			div.appendChild(DR_getAnchorPageNoRedirect(args.anchor2.cloneNode(true)))
			break
		}
 
		case (DR_FAILURE_P1_NOT_REDIRECT):
		{
			div.appendChild(document.createTextNode(args.i + ": La page à modifier n'est pas une redirection: "))
			div.appendChild(DR_getAnchorPage(args.target1))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target1))
			div.appendChild(document.createTextNode(" text:" + args.text1))
 
			break
		}
		case (DR_FAILURE_P2_NOT_REDIRECT):
		{
			div.appendChild(document.createTextNode(args.i + ": La page pointée n'est pas une redirection: "))
			div.appendChild(DR_getAnchorPage(args.target2))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target2))
			div.appendChild(document.createTextNode(" text:" + args.text2))
			break
		}
 
		case (DR_FAILURE_PI_DOESNT_POINT_P2):
		{
			div.appendChild(document.createTextNode(args.i + ": La page à modifier "))
			div.appendChild(DR_getAnchorPage(args.target1))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target1))
			div.appendChild(document.createTextNode(" pointe sur "))
			div.appendChild(DR_getAnchorPage(args.page1Target))
			div.appendChild(DR_getAnchorPageNoRedirect(args.page1Target))
			div.appendChild(document.createTextNode(" et non sur "))
			div.appendChild(DR_getAnchorPage(args.target2))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target2))
			break
		}
 
		case (DR_DONT_FIND_TWO_ANCHORS):
		{
			div.appendChild(document.createTextNode(args.i + ": "))
			div.appendChild(document.createTextNode(" ligne non valide: "))
			div.innerHTML = div.innerHTML + args.initialLine.innerHTML
			break;
 
		}
 
		case (DR_SUCCESS):
		{
			div.appendChild(document.createTextNode(args.i + ": "))
			div.appendChild(DR_getAnchorPage(args.target1))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target1))
			div.appendChild(document.createTextNode(" pointe vers "))
			div.appendChild(DR_getAnchorPage(args.target2))
			div.appendChild(DR_getAnchorPageNoRedirect(args.target2))
			div.appendChild(document.createTextNode(" qui pointe vers "))
			div.appendChild(DR_getAnchorPage(args.page2Target))
			div.appendChild(DR_getAnchorPageNoRedirect(args.page2Target))
 
			div.appendChild(document.createTextNode("corrigé:"))
			div.appendChild(DR_getAnchorPageDiff(args.target1))
			break
		}
 
		default:
			div.appendChild(document.createTextNode("Unknow message type: " + type))
	}
 
	div.appendChild(document.createElement('br'))
 
	return false
}
 
 
 
function DR_solve(htmlPage)
{
	var parser = new DOMParser();
	var doc = parser.parseFromString(htmlPage, "text/xml");
	var div
 
	if(!doc) return DR_newMessage(DR_DOMPARSER_FAILURE) 
 
	div = doc.getElementById("bodyContent")
	DR_list = div.getElementsByTagName("ol")
 
	if(DR_list.length == 0) return DR_newMessage(DR_EMPTY_LIST)
 
	DR_list = DR_list[0].getElementsByTagName("li")
 
	DR_newMessage(DR_START)
 
	DR_solveNumber(0)
}
 
function DR_getPageFromHref(href)
{
	var reg = new RegExp(/\/w\/index.php\?title=([^&]+)&redirect=no/)
	var match = reg.exec(href)
 
	if(match) return decodeURIComponent(match[1]).replace(/_/g, " ")
 
	return false
}
 
function DR_solveNumber(i)
{
	if(i>=DR_list.length) return DR_newMessage(DR_END)
 
	var anchors = DR_list[i].getElementsByTagName("a")
	var data = new Object()
	var nexti = i+1
 
	if(anchors)
	{
		data.initialLine = DR_list[i]
		data.anchor1 = anchors[0]
		data.anchor2 = anchors[2]
		data.i = i
 
		if(anchors[0] && anchors[2])
		{
			data.target1 = DR_getPageFromHref(data.anchor1.href)
			data.target2 = DR_getPageFromHref(data.anchor2.href)
 
 
			if(data.target1 != false && data.target2 != false) 
			{
				if(data.target1.indexOf("Utilisateur:") == -1) 
					DR_solveRedirection(data)
				else
				{
					DR_newMessage(DR_USERPAGE, data)
					setTimeout("DR_solveNumber(" + nexti + ")", 0)
				}
 
			}
			else
			{
				DR_newMessage(DR_CANT_EXTRACT_PAGENAME_FROM_HREF, data)
				setTimeout("DR_solveNumber(" + nexti + ")", 0)
			}
		}
		else
		{
			DR_newMessage(DR_DONT_FIND_TWO_ANCHORS, data)
			setTimeout("DR_solveNumber(" + nexti + ")", 0)
		}
	}
}
 
 
function DR_solveRedirection(data)
{
	var req1=new XMLHttpRequest()
	var req2=new XMLHttpRequest()
 
	data.text1 = false
	data.text2 = false
 
	req1.data=data
	req2.data=data
 
	req1.onreadystatechange = function()
	{
		if(req1.readyState == 4)
			if(req1.status==200)
			{
				req1.data.text1 = req1.responseText
				if(req1.data.text2 != false) DR_compareData(req1.data)
			}
	}
 
	req2.onreadystatechange = function()
	{
		if(req2.readyState == 4)
			if(req2.status==200)
			{
				req2.data.text2 = req2.responseText
				if(req2.data.text1 != false) DR_compareData(req2.data)
			}
	}
 
	req1.open("GET","/w/index.php?title=" + encodeURIComponent(data.target1) + "&action=raw", true)
	req2.open("GET","/w/index.php?title=" + encodeURIComponent(data.target2) + "&action=raw", true)
 
	req1.send(null)
	req2.send(null)
}
 
function DR_getPageFromRedirection(redir)
{
	var reg = new RegExp(/#(REDIRECT|Redirect|redirect)[ ]?\[\[([^\]]+)\]\]/)
	var match = reg.exec(redir)
 
	if(match) return decodeURIComponent(match[2]).replace(/_/g, " ")
 
	return false
}
 
function DR_compareData(data)
{
	var nexti = data.i+1
 
	data.page2Target = DR_getPageFromRedirection(data.text2)
	data.page1Target = DR_getPageFromRedirection(data.text1)
 
	if(data.page1Target == false)
	{
		setTimeout("DR_solveNumber(" + nexti + ")", 0)
		return DR_newMessage(DR_FAILURE_P1_NOT_REDIRECT, data) 
	}
 
	if(data.page2Target == false)
	{
		setTimeout("DR_solveNumber(" + nexti + ")", 0) 
		return DR_newMessage(DR_FAILURE_P2_NOT_REDIRECT, data)
	}
 
	if(data.page1Target != data.target2)
	{
		setTimeout("DR_solveNumber(" + nexti + ")", 0) 
		return DR_newMessage(DR_FAILURE_PI_DOESNT_POINT_P2, data) 
	}
 
	wpEditPage(data.target1, {}, DR_editFoo, DR_saveFoo, {_text : "[[" + data.page2Target + "]]" , DR_args:data})
 
}
 
function DR_editFoo(wpTextbox1, wpSummary, doc, data)
{
 
	wpTextbox1 =  "#REDIRECT " + data._text
	wpSummary = "Résolution de double redirection vers " + data._text
 
	return { wpTextbox1: wpTextbox1, wpSummary: wpSummary, data: data };
}
 
function DR_saveFoo(doc, data)
{
	var nexti = data.DR_args.i+1
 
	DR_newMessage(DR_SUCCESS, data.DR_args)
	setTimeout("DR_solveNumber(" + nexti + ")", 30000) 
}


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -