<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_rugby_biography_cleaner</id>
	<title>Module:Infobox rugby biography cleaner - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_rugby_biography_cleaner"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Infobox_rugby_biography_cleaner&amp;action=history"/>
	<updated>2026-07-26T18:39:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Infobox_rugby_biography_cleaner&amp;diff=472311&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Infobox_rugby_biography_cleaner&amp;diff=472311&amp;oldid=prev"/>
		<updated>2021-07-15T23:22:38Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local args = {}&lt;br /&gt;
&lt;br /&gt;
local function isnotblank(s)&lt;br /&gt;
	return s and s:match( '^%s*(.-)%s*$' ) ~= ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function argrename(n1, n2)&lt;br /&gt;
	if args[n1] or args[n2] then&lt;br /&gt;
		if( args[n1] and args[n1] ~= '' ) and ( args[n2] and args[n2] ~= '' ) then&lt;br /&gt;
			args[n2] = (args[n2] or '') .. '\n' .. (args[n1] or '')&lt;br /&gt;
		else&lt;br /&gt;
			args[n2] = (args[n2] or '') .. (args[n1] or '')&lt;br /&gt;
		end&lt;br /&gt;
		args[n1] = ''&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addparam(s, f)&lt;br /&gt;
	-- f = a, e, or nb&lt;br /&gt;
	local r = ''&lt;br /&gt;
	if f == 'a' then&lt;br /&gt;
		r = '\n| ' .. s .. ' = ' .. (args[s] or '')&lt;br /&gt;
	elseif f == 'e' then&lt;br /&gt;
		if args[s] then&lt;br /&gt;
			r = '\n| ' .. s .. ' = ' .. args[s]&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if isnotblank(args[s]) then&lt;br /&gt;
			r = '\n| ' .. s .. ' = ' .. args[s]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	args[s] = '&amp;lt;PROCESSED&amp;gt;'&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addseries(s, n)&lt;br /&gt;
	local r = ''&lt;br /&gt;
	local yname = s .. 'years'&lt;br /&gt;
	local cname = s .. 'clubs'&lt;br /&gt;
	local aname = s .. 'apps'&lt;br /&gt;
	local pname = s .. 'points'&lt;br /&gt;
	local showapps = true&lt;br /&gt;
	local showpts = true&lt;br /&gt;
	&lt;br /&gt;
	argrename(s .. 'caps', aname)&lt;br /&gt;
	for k=1,n do&lt;br /&gt;
		argrename(s .. 'caps' .. k, aname .. k)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (s == 'rl_youth') or (s == 'youth') then&lt;br /&gt;
		showapps = false&lt;br /&gt;
		showpts = false&lt;br /&gt;
	elseif (s == 'rl_club') then&lt;br /&gt;
		cname = 'rl_proclubs'&lt;br /&gt;
	elseif (s == 'city_vs_country_' or s == 'soo' or s == 'rl_national' &lt;br /&gt;
		or s == 'amat' or s == 'rep') then&lt;br /&gt;
		cname = s .. 'team'&lt;br /&gt;
	elseif ( s == 'ru_sevensnational' ) then&lt;br /&gt;
		cname = s .. 'team'&lt;br /&gt;
		aname = s .. 'comp'&lt;br /&gt;
	elseif (s == 'rl_coach' or s == 'ru_coach') then&lt;br /&gt;
		cname = s .. 'teams'&lt;br /&gt;
		showapps = false&lt;br /&gt;
		showpts = false&lt;br /&gt;
	elseif (s == 'rl_referee' or s == 'ru_referee') then&lt;br /&gt;
		cname = s .. 'comps'&lt;br /&gt;
		showpts = false&lt;br /&gt;
	elseif (s == 'ru_province') or (s == 'super') then&lt;br /&gt;
		cname = s&lt;br /&gt;
	end&lt;br /&gt;
	if args[yname] and args[yname]:match('^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|.*}}[%s]*$') then&lt;br /&gt;
		args[yname] = mw.ustring.gsub(args[yname], '^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|(.*)}}[%s]*$', '%1')&lt;br /&gt;
	end&lt;br /&gt;
	if args[cname] and args[cname]:match('^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|.*}}[%s]*$') then&lt;br /&gt;
		args[cname] = mw.ustring.gsub(args[cname], '^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|(.*)}}[%s]*$', '%1')&lt;br /&gt;
	end&lt;br /&gt;
	if args[aname] and args[aname]:match('^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|.*}}[%s]*$') then&lt;br /&gt;
		args[aname] = mw.ustring.gsub(args[aname], '^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|(.*)}}[%s]*$', '%1')&lt;br /&gt;
	end&lt;br /&gt;
	if args[pname] and args[pname]:match('^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|.*}}[%s]*$') then&lt;br /&gt;
		args[pname] = mw.ustring.gsub(args[pname], '^[%s]*{{[Nn][Oo][Ww][Rr][Pp][^%s]*|(.*)}}[%s]*$', '%1')&lt;br /&gt;
	end&lt;br /&gt;
	if isnotblank(args[cname]) or isnotblank(args[yname]) then&lt;br /&gt;
		local ylist = mw.text.split(args[yname] or '', '[%s]*&amp;lt;[\/\t ]*[Bb][Rr][^&amp;lt;&amp;gt;]*&amp;gt;')&lt;br /&gt;
		local clist = mw.text.split(args[cname] or '', '[%s]*&amp;lt;[\/\t ]*[Bb][Rr][^&amp;lt;&amp;gt;]*&amp;gt;')&lt;br /&gt;
		local alist = {}&lt;br /&gt;
		local plist = {}&lt;br /&gt;
		if showapps then&lt;br /&gt;
			alist = mw.text.split(args[aname] or '', '[%s]*&amp;lt;[\/\t ]*[Bb][Rr][^&amp;lt;&amp;gt;]*&amp;gt;')&lt;br /&gt;
		end&lt;br /&gt;
		if showpts then&lt;br /&gt;
			plist = mw.text.split(args[pname] or '', '[%s]*&amp;lt;[\/\t ]*[Bb][Rr][^&amp;lt;&amp;gt;]*&amp;gt;')&lt;br /&gt;
		end&lt;br /&gt;
		if ((#clist) &amp;gt;= (#ylist)) and ((#clist) &amp;gt;= (#alist)) and ((#clist) &amp;gt;= (#plist)) then&lt;br /&gt;
			for k = 1,(#clist) do&lt;br /&gt;
				r = r .. '\n| ' .. yname .. k .. ' = ' .. (ylist[k] or '')&lt;br /&gt;
				r = r .. '\n| ' .. cname .. k .. ' = ' .. (clist[k] or '')&lt;br /&gt;
				if showapps then&lt;br /&gt;
					r = r .. '\n| ' .. aname .. k .. ' = ' .. (alist[k] or '')&lt;br /&gt;
				end&lt;br /&gt;
				if showpts then&lt;br /&gt;
					r = r .. '\n| ' .. pname .. k .. ' = ' .. (plist[k] or '')&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			args[yname] = '&amp;lt;PROCESSED&amp;gt;'&lt;br /&gt;
			args[cname] = '&amp;lt;PROCESSED&amp;gt;'&lt;br /&gt;
			args[aname] = '&amp;lt;PROCESSED&amp;gt;'&lt;br /&gt;
			args[pname] = '&amp;lt;PROCESSED&amp;gt;'&lt;br /&gt;
		else&lt;br /&gt;
			r = r .. addparam(yname, 'e')&lt;br /&gt;
			r = r .. addparam(cname, 'e')&lt;br /&gt;
			r = r .. addparam(aname, 'e')&lt;br /&gt;
			r = r .. addparam(pname, 'e')&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		r = r .. addparam(yname, 'e')&lt;br /&gt;
		r = r .. addparam(cname, 'e')&lt;br /&gt;
		r = r .. addparam(aname, 'e')&lt;br /&gt;
		r = r .. addparam(pname, 'e')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for k=1,n do&lt;br /&gt;
		r = r .. addparam(yname .. k, 'e')&lt;br /&gt;
		r = r .. addparam(cname ..  k, 'e')&lt;br /&gt;
		r = r .. addparam(aname ..  k, 'e')&lt;br /&gt;
		r = r .. addparam(pname ..  k, 'e')&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local res = ''&lt;br /&gt;
	local offset = 0&lt;br /&gt;
	for k,v in pairs(frame.args) do&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- preprocess&lt;br /&gt;
	argrename('rl_coachclubs', 'rl_coachteams')&lt;br /&gt;
	argrename('ru_coachclubs', 'coachteams')&lt;br /&gt;
	argrename('ru_coachyears', 'coachyears')&lt;br /&gt;
	argrename('ru_youthclubs', 'youthclubs')&lt;br /&gt;
	argrename('ru_youthyears', 'youthyears')&lt;br /&gt;
	argrename('ru_amateurclubs', 'amatteam')&lt;br /&gt;
	argrename('ru_amateuryears', 'amatyears')&lt;br /&gt;
	argrename('ru_amateurcaps', 'amatcaps')&lt;br /&gt;
	argrename('ru_amateurpoints', 'amatpoints')&lt;br /&gt;
	argrename('ru_amupdate', 'amatupdate')&lt;br /&gt;
	argrename('ru_proclubs', 'clubs')&lt;br /&gt;
	argrename('ru_clubyears', 'years')&lt;br /&gt;
	argrename('ru_clubcaps', 'caps')&lt;br /&gt;
	argrename('ru_clubpoints', 'points')&lt;br /&gt;
	argrename('ru_clubupdate', 'clubupdate')&lt;br /&gt;
	argrename('super14', 'super')&lt;br /&gt;
	argrename('super14years', 'superyears')&lt;br /&gt;
	argrename('super14caps', 'supercaps')&lt;br /&gt;
	argrename('super14points', 'superpoints')&lt;br /&gt;
	argrename('super14update', 'superupdate')&lt;br /&gt;
	argrename('ru_nationalteam', 'repteam')&lt;br /&gt;
	argrename('ru_nationalyears', 'repyears')&lt;br /&gt;
	argrename('ru_nationalcaps', 'repcaps')&lt;br /&gt;
	argrename('ru_nationalpoints', 'reppoints')&lt;br /&gt;
	argrename('ru_ntupdate', 'repupdate')&lt;br /&gt;
	for k=1,10 do&lt;br /&gt;
		argrename('amatcaps' .. k, 'amatapps' .. k)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	res = res .. '{{Infobox rugby biography'&lt;br /&gt;
	res = res .. addparam('embed', 'nb')&lt;br /&gt;
	res = res .. addparam('name', 'e')&lt;br /&gt;
	res = res .. addparam('image', 'e')&lt;br /&gt;
	res = res .. addparam('image_size', 'e')&lt;br /&gt;
	res = res .. addparam('alt', 'e')&lt;br /&gt;
	res = res .. addparam('caption', 'e')&lt;br /&gt;
	res = res .. addparam('fullname', 'e')&lt;br /&gt;
	res = res .. addparam('birth_name', 'e')&lt;br /&gt;
	res = res .. addparam('nickname', 'e')&lt;br /&gt;
	res = res .. addparam('birth_date', 'e')&lt;br /&gt;
	res = res .. addparam('birth_place', 'e')&lt;br /&gt;
	res = res .. addparam('death_date', 'e')&lt;br /&gt;
	res = res .. addparam('death_place', 'e')&lt;br /&gt;
	res = res .. addparam('height', 'e')&lt;br /&gt;
	res = res .. addparam('height_cm', 'e')&lt;br /&gt;
	res = res .. addparam('height_ft', 'e')&lt;br /&gt;
	res = res .. addparam('height_in', 'e')&lt;br /&gt;
	res = res .. addparam('weight', 'e')&lt;br /&gt;
	res = res .. addparam('weight_kg', 'e')&lt;br /&gt;
	res = res .. addparam('weight_st', 'e')&lt;br /&gt;
	res = res .. addparam('weight_lb', 'e')&lt;br /&gt;
	res = res .. addparam('school', 'e')&lt;br /&gt;
	res = res .. addparam('university', 'e')&lt;br /&gt;
	res = res .. addparam('relatives', 'e')&lt;br /&gt;
	res = res .. addparam('spouse', 'e')&lt;br /&gt;
	res = res .. addparam('children', 'e')&lt;br /&gt;
	res = res .. addparam('occupation', 'e')&lt;br /&gt;
	res = res .. addparam('weight_update', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addparam('rl_position', 'e')&lt;br /&gt;
	res = res .. addparam('rl_currentposition', 'e')&lt;br /&gt;
	res = res .. addparam('rl_currentteam', 'e')&lt;br /&gt;
&lt;br /&gt;
	res = res .. addseries('rl_youth', 5)&lt;br /&gt;
&lt;br /&gt;
	res = res .. addseries('rl_amateur', 10)&lt;br /&gt;
	res = res .. addparam('rl_amupdate', 'e')&lt;br /&gt;
&lt;br /&gt;
	res = res .. addseries('rl_club', 20)&lt;br /&gt;
	res = res .. addparam('rl_totalyears', 'e')&lt;br /&gt;
	res = res .. addparam('rl_totalapps', 'e')&lt;br /&gt;
	res = res .. addparam('rl_totalpoints', 'e')&lt;br /&gt;
	res = res .. addparam('rl_clubupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('city_vs_country_', 10)&lt;br /&gt;
	res = res .. addparam('city_vs_country_update', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('soo', 10)&lt;br /&gt;
	res = res .. addparam('sooupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('rl_national', 10)&lt;br /&gt;
	res = res .. addparam('rl_ntupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('rl_coach', 20)&lt;br /&gt;
	res = res .. addparam('rl_coachupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('rl_referee', 20)&lt;br /&gt;
	res = res .. addparam('rl_refereeupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addparam('ru_currentposition', 'e')&lt;br /&gt;
	res = res .. addparam('ru_position', 'e')&lt;br /&gt;
	res = res .. addparam('position', 'e')&lt;br /&gt;
	res = res .. addparam('ru_currentteam', 'e')&lt;br /&gt;
	res = res .. addparam('currentclub', 'e')&lt;br /&gt;
	res = res .. addparam('allblackid', 'e')&lt;br /&gt;
	res = res .. addparam('allblackno', 'e')&lt;br /&gt;
&lt;br /&gt;
	res = res .. addseries('youth', 5)&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('amat', 10)&lt;br /&gt;
	res = res .. addparam('amatupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('', 20)&lt;br /&gt;
	res = res .. addparam('totalyears', 'e')&lt;br /&gt;
	res = res .. addparam('totalapps', 'e')&lt;br /&gt;
	res = res .. addparam('totalpoints', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('ru_province', 10)&lt;br /&gt;
	res = res .. addparam('ru_provinceupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('super', 10)&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addparam('ru_currentclub', 'e')&lt;br /&gt;
	res = res .. addparam('superupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('rep', 10)&lt;br /&gt;
	res = res .. addparam('repupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('ru_sevensnational', 10)&lt;br /&gt;
	res = res .. addparam('ru_sevensupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('coach', 20)&lt;br /&gt;
	res = res .. addparam('ru_coachupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addseries('ru_referee', 20)&lt;br /&gt;
	res = res .. addparam('ru_refereeupdate', 'e')&lt;br /&gt;
	&lt;br /&gt;
	res = res .. addparam('website', 'e')&lt;br /&gt;
	res = res .. addparam('url', 'e')&lt;br /&gt;
	&lt;br /&gt;
	for k,v in pairs(args) do&lt;br /&gt;
		if v == '' or v == '&amp;lt;PROCESSED&amp;gt;' then&lt;br /&gt;
			-- skip&lt;br /&gt;
		else&lt;br /&gt;
			res = res .. '| &amp;lt;!-- UNKNOWN --&amp;gt; ' .. k .. ' = ' .. v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	res = res .. '\n}}'&lt;br /&gt;
	&lt;br /&gt;
	return res&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>