<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thegoonshow.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias</id>
	<title>Module:Country alias - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.thegoonshow.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias"/>
	<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Country_alias&amp;action=history"/>
	<updated>2026-05-14T12:57:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Country_alias&amp;diff=1688&amp;oldid=prev</id>
		<title>Kurt: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Country_alias&amp;diff=1688&amp;oldid=prev"/>
		<updated>2022-07-20T18:16:47Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:16, 20 July 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Kurt</name></author>
	</entry>
	<entry>
		<id>https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Country_alias&amp;diff=1687&amp;oldid=prev</id>
		<title>en&gt;Primefac: update notes</title>
		<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Country_alias&amp;diff=1687&amp;oldid=prev"/>
		<updated>2022-04-06T14:55:27Z</updated>

		<summary type="html">&lt;p&gt;update notes&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module returns the country name or the flag name for a country,&lt;br /&gt;
-- based on the three-letter IOC/CGA/FINA alias.&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The following country code is used for multiple countries:&lt;br /&gt;
    ANG (workaround: added ANG_CGF for use with Commonwealth Games)&lt;br /&gt;
&lt;br /&gt;
The following names have different names/flags based on sport/year&lt;br /&gt;
    Great Britain (and N.I.)         GBR, GBR_WCA (latter added to add text in parens)&lt;br /&gt;
    Hong Kong                        HKG, HKG_CGF (latter added to keep colonial flag)&lt;br /&gt;
    Individual Olympic Athletes      IOA, IOA_2000 (IOA changed to Independent Olympic Athletes in 2012)&lt;br /&gt;
    Russian Athletes				 OAR (2018), ROC_2020 (2020 Summer, 2022 Winter)&lt;br /&gt;
    SWZ                              Swaziland became Eswatini after the 2018 Commonwealth Games&lt;br /&gt;
    MKD								 Macedonia became North Macedonia in 2019&lt;br /&gt;
    ART								 No &amp;quot;Athlete&amp;quot; before Refugee Team @ 2017 AIMAG&lt;br /&gt;
&lt;br /&gt;
The following countries have multiple aliases due to CGF/IOC/FINA/IAAF/etc differences, or deprecated uses&lt;br /&gt;
    Anguilla                         AIA, ANG_CGF&lt;br /&gt;
    Antigua and Barbuda              ANT, ATG&lt;br /&gt;
    Bahrain                          BHN, BHR, BRN&lt;br /&gt;
    Curaçao                          CUR, CUW&lt;br /&gt;
    East Timor						 TLS, TMP&lt;br /&gt;
    Falkand Islands					 FAI, FLK&lt;br /&gt;
    Faroe Islands                    FAR, FRO&lt;br /&gt;
    Guernsey                         GGY, GUE&lt;br /&gt;
    Iran                             IRI, IRN&lt;br /&gt;
    Ireland                          IRE, IRL - IRE is *only* for CGF apps&lt;br /&gt;
    Jersey                           JER, JEY&lt;br /&gt;
    Lebanon                          LBN, LIB&lt;br /&gt;
    Montserrat                       MNT, MSR&lt;br /&gt;
    Nicaragua                        NCA, NIC&lt;br /&gt;
    Norfolk Island                   NFI, NFK&lt;br /&gt;
    Oman                             OMA, OMN&lt;br /&gt;
    Refugee Olympic Team             ROA, ROT, EOR&lt;br /&gt;
    Romania                          ROM, ROU&lt;br /&gt;
    Saint Helena                     SHE, SHN&lt;br /&gt;
    Saint Vincent and the Grenadines SVG, VIN&lt;br /&gt;
    Sarawak                          SAR, SWK&lt;br /&gt;
    Singapore                        SGP, SIN&lt;br /&gt;
    South Africa                     RSA, SAF&lt;br /&gt;
    Tonga                            TGA, TON&lt;br /&gt;
    Trinidad and Tobago              TRI, TTO&lt;br /&gt;
    Turks and Caicos Islands         TCA, TCI, TKS&lt;br /&gt;
&lt;br /&gt;
Oddity that needs to be revisited&lt;br /&gt;
    French Polynesia                 PYF, TAH - TAH has been converted to Tahiti per SILENCE&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function stripToNil(text)&lt;br /&gt;
	-- If text is a string, return its trimmed content, or nil if empty.&lt;br /&gt;
	-- Otherwise return text (which may, for example, be nil).&lt;br /&gt;
	if type(text) == 'string' then&lt;br /&gt;
		text = text:match('(%S.-)%s*$')&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function yes(parameter)&lt;br /&gt;
	-- Return true if parameter should be interpreted as &amp;quot;yes&amp;quot;.&lt;br /&gt;
	return ({ y = true, yes = true, on = true, [true] = true })[parameter]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAlias(args)&lt;br /&gt;
	-- Return alias parameter, possibly modified for exceptional cases.&lt;br /&gt;
	local alias = stripToNil(args.alias)&lt;br /&gt;
	local games = stripToNil(args.games)&lt;br /&gt;
	local year = tonumber(args.year)&lt;br /&gt;
	local fullName = stripToNil(args.fullName)&lt;br /&gt;
	if fullName then&lt;br /&gt;
		year = tonumber(fullName:match('^%d+'))  -- ignore args.year&lt;br /&gt;
	end&lt;br /&gt;
	if alias == 'ANG' then&lt;br /&gt;
		if games == 'Commonwealth Games' then&lt;br /&gt;
			alias = 'ANG_CGF'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'ART' then&lt;br /&gt;
		if games == 'Asian Indoor and Martial Arts Games' then&lt;br /&gt;
			alias = 'ART_AIMAG'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'GBR' then&lt;br /&gt;
		if games == 'World Championships in Athletics' or games == 'World Athletics Championships' or games == 'European Athletics Championships' then&lt;br /&gt;
			alias = 'GBR_WCA'&lt;br /&gt;
		elseif games == 'European Championships' then&lt;br /&gt;
			if year == 2018 then&lt;br /&gt;
				alias = 'GBR_WCA'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'HKG' then&lt;br /&gt;
		if games == 'Commonwealth Games' then&lt;br /&gt;
			alias = 'HKG_CGF'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'IOA' then&lt;br /&gt;
		if year == 2000 then&lt;br /&gt;
			alias = 'IOA_2000'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'MAL' or alias == 'MAS' then&lt;br /&gt;
		if year and year &amp;lt; 1963 then&lt;br /&gt;
			alias = 'MAL'&lt;br /&gt;
		else&lt;br /&gt;
			alias = 'MAS'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'SWZ' then&lt;br /&gt;
		if fullName then&lt;br /&gt;
			if year and year &amp;gt;= 2018 and fullName ~= '2018 Commonwealth Games' then&lt;br /&gt;
				alias = 'SWZ_YO2018'&lt;br /&gt;
			end&lt;br /&gt;
		elseif year and year &amp;gt;= 2018 and games ~= 'Commonwealth Games' then&lt;br /&gt;
			alias = 'SWZ_YO2018'&lt;br /&gt;
		else&lt;br /&gt;
			alias = 'SWZ_YO2018'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'MKD' then&lt;br /&gt;
		if year and year &amp;lt; 2019 then&lt;br /&gt;
			alias = 'MKD'&lt;br /&gt;
		else&lt;br /&gt;
			alias = 'MKD_2019'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'VNM' then&lt;br /&gt;
		if year and year &amp;lt;= 1954 then&lt;br /&gt;
			alias = 'VIE'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'RUS' then&lt;br /&gt;
		if year and year==2020 then&lt;br /&gt;
			if games=='Summer Olympics' then&lt;br /&gt;
				alias = 'ROC_2020'&lt;br /&gt;
			elseif games=='Summer Paralympics' then&lt;br /&gt;
				alias = 'RPC'&lt;br /&gt;
			end&lt;br /&gt;
		elseif year and year==2022 and games=='Winter Olympics' then&lt;br /&gt;
			alias = 'ROC_2020'&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'ROC' then&lt;br /&gt;
		if year and year==1960 and games=='Summer Olympics' then&lt;br /&gt;
			alias = 'ROC_Formosa'&lt;br /&gt;
		elseif year and ( year==1964 or year==1968 ) and games=='Summer Olympics' then&lt;br /&gt;
			alias = 'ROC_Taiwan'&lt;br /&gt;
		elseif year and year==2020 and games=='Summer Olympics' then&lt;br /&gt;
			alias = 'ROC_2020'&lt;br /&gt;
		elseif year and year==2022 and games=='Winter Olympics' then&lt;br /&gt;
			alias = 'ROC_2020'&lt;br /&gt;
		elseif year and year==2020 and games=='Summer Paralympics' then&lt;br /&gt;
			alias = 'RPC'&lt;br /&gt;
		else&lt;br /&gt;
			local pageName = mw.title.getCurrentTitle().text&lt;br /&gt;
			if pageName == 'Russian Olympic Committee athletes at the Olympics' then&lt;br /&gt;
				alias = 'ROC_2020'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif alias == 'YUG' or alias == 'SCG' then&lt;br /&gt;
		if year and year &amp;gt; 1992 and year &amp;lt; 2004 and games ~= 'Summer Paralympics' then&lt;br /&gt;
			alias = 'FR_YUG'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return alias&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getFlag(args, country)&lt;br /&gt;
	-- Return name of flag selected from country data (nil if none defined).&lt;br /&gt;
	local year = tonumber(args.year)&lt;br /&gt;
	local games = stripToNil(args.games)&lt;br /&gt;
	if games then&lt;br /&gt;
		local gdata = country[games]&lt;br /&gt;
		if gdata then&lt;br /&gt;
			if type(gdata) == 'string' then&lt;br /&gt;
				return gdata&lt;br /&gt;
			end&lt;br /&gt;
			if gdata[year] then&lt;br /&gt;
				return gdata[year]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for _, item in ipairs(country) do&lt;br /&gt;
		if type(item) == 'string' then&lt;br /&gt;
			return item&lt;br /&gt;
		end&lt;br /&gt;
		if year and year &amp;lt;= item[1] then&lt;br /&gt;
			return item[2]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local data = mw.loadData('Module:Country alias/data')&lt;br /&gt;
local function countryAlias(args)&lt;br /&gt;
	local alias = getAlias(args)&lt;br /&gt;
	local country = data.countries[alias] or data.countries[data.countryAliases[alias]]&lt;br /&gt;
	local function quit(message)&lt;br /&gt;
		return args.error or error(message)&lt;br /&gt;
	end&lt;br /&gt;
	if not country then&lt;br /&gt;
		return quit('Invalid country alias: ' .. tostring(alias))&lt;br /&gt;
	end&lt;br /&gt;
	if yes(args.flag) then&lt;br /&gt;
		return getFlag(args, country) or quit('No flag defined for ' .. alias)&lt;br /&gt;
	else&lt;br /&gt;
		return country.name or quit('No name defined for ' .. alias)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagIOC(frame)&lt;br /&gt;
	-- Implement {{flagIOC}} which previously called this module three times.&lt;br /&gt;
	-- Returns &amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt; &amp;lt;athletes&amp;gt;, with the third value optional&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local code = stripToNil(args[1]) or error('flagIOC parameter 1 should be a country code')&lt;br /&gt;
	local games = stripToNil(args[2])&lt;br /&gt;
	local athletes = stripToNil(args[3])&lt;br /&gt;
	games = games and (games .. ' Olympics') or 'Olympics'&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match('^%d+'),&lt;br /&gt;
		games = games:gsub('^%d+ ?', ''),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	local dispName = fullName&lt;br /&gt;
	if fullName == 'ROC' then&lt;br /&gt;
		fullName = 'Russian Olympic Committee athletes'&lt;br /&gt;
	end&lt;br /&gt;
	return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{athletes}')&lt;br /&gt;
		:gsub('{(%w+)}', {&lt;br /&gt;
			athletes = athletes and&lt;br /&gt;
				('&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(' .. athletes .. ')&amp;lt;/span&amp;gt;') or&lt;br /&gt;
				'',&lt;br /&gt;
			flag = countryAlias(parms),&lt;br /&gt;
			games = games,&lt;br /&gt;
			name = fullName,&lt;br /&gt;
			dispName = dispName,&lt;br /&gt;
		}))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function flagXYZ(frame)&lt;br /&gt;
	-- Implement {{flagIOC2}} and its variants which previously called this module three times.&lt;br /&gt;
	-- Returns one of four possible outputs:&lt;br /&gt;
	--	from flagIOC2:			&amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt; &amp;lt;athletes&amp;gt;, with the third value optional&lt;br /&gt;
	--	from flagIOC2team:		&amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt; &amp;lt;country alias&amp;gt;&lt;br /&gt;
	--	from flagIOC2athlete:	&amp;lt;flag&amp;gt; &amp;lt;athlete(s)&amp;gt; &amp;lt;country alias/link&amp;gt;&lt;br /&gt;
	--	from flagIOC2medalist:	&amp;lt;athlete(s)&amp;gt;&amp;lt;br&amp;gt;&amp;lt;flag&amp;gt; &amp;lt;country link&amp;gt;&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local dispType = stripToNil(frame.args['type'])&lt;br /&gt;
	local code=''&lt;br /&gt;
	local games=''&lt;br /&gt;
	local athletes=''&lt;br /&gt;
	if dispType == 'athlete-O' then&lt;br /&gt;
		-- Implement [[Template:FlagIOCathlete]].&lt;br /&gt;
		dispType = 'athlete'&lt;br /&gt;
		args[3] = (args[3] or '') .. ' Olympics'&lt;br /&gt;
	end&lt;br /&gt;
	if dispType == 'name' or dispType == 'team' then&lt;br /&gt;
		code = stripToNil(args[1]) or error('Parameter 1 should be a country code')&lt;br /&gt;
		games = stripToNil(args[2]) or error('Parameter 2 should be a competition name')&lt;br /&gt;
		athletes = stripToNil(args[3])&lt;br /&gt;
	elseif dispType == 'athlete' or dispType == 'medalist' then&lt;br /&gt;
		athletes = stripToNil(args[1]) or error('Parameter 1 should be the name(s) of the athlete(s)')&lt;br /&gt;
		code = stripToNil(args[2]) or error('Parameter 2 should be a country code')&lt;br /&gt;
		games = stripToNil(args[3]) or error('Parameter 3 should be a competition name')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local parms = {&lt;br /&gt;
		alias = code,&lt;br /&gt;
		fullName = games,&lt;br /&gt;
		year = games:match('^%d+'),&lt;br /&gt;
		games = games:gsub('^%d+ ?', ''),&lt;br /&gt;
	}&lt;br /&gt;
	local fullName = countryAlias(parms)&lt;br /&gt;
	parms.flag = true&lt;br /&gt;
	local dispName = stripToNil(args.name)&lt;br /&gt;
	if fullName == 'ROC' then&lt;br /&gt;
		fullName = 'Russian Olympic Committee athletes'&lt;br /&gt;
		dispName = 'ROC'&lt;br /&gt;
		if dispType == 'team' then dispType = 'name' end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if dispType == 'name' then&lt;br /&gt;
		return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{athletes}')&lt;br /&gt;
			:gsub('{(%w+)}', {&lt;br /&gt;
				athletes = athletes and&lt;br /&gt;
					('&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(' .. athletes .. ')&amp;lt;/span&amp;gt;') or&lt;br /&gt;
					'',&lt;br /&gt;
				flag = countryAlias(parms),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				dispName = dispName or fullName,&lt;br /&gt;
			}))&lt;br /&gt;
	elseif dispType == 'team' then&lt;br /&gt;
		return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]{alias}')&lt;br /&gt;
			:gsub('{(%w+)}', {&lt;br /&gt;
				alias = ('&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;(' .. code .. ')&amp;lt;/span&amp;gt;'),&lt;br /&gt;
				flag = countryAlias(parms),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				dispName = dispName or fullName,&lt;br /&gt;
			}))&lt;br /&gt;
	elseif dispType == 'athlete' then&lt;br /&gt;
		return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;{athletes}&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;([[{name} at the {games}|{dispName}]])&amp;lt;/span&amp;gt;')&lt;br /&gt;
			:gsub('{(%w+)}', {&lt;br /&gt;
				athletes = athletes,&lt;br /&gt;
				flag = countryAlias(parms),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				dispName = code,&lt;br /&gt;
			}))&lt;br /&gt;
	elseif dispType == 'medalist' then&lt;br /&gt;
		return (('{athletes}&amp;lt;br&amp;gt;[[File:{flag}|23x15px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{dispName}]]')&lt;br /&gt;
			:gsub('{(%w+)}', {&lt;br /&gt;
				athletes = athletes,&lt;br /&gt;
				flag = countryAlias(parms),&lt;br /&gt;
				games = games,&lt;br /&gt;
				name = fullName,&lt;br /&gt;
				dispName = dispName or fullName,&lt;br /&gt;
			}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
local function main(frame)&lt;br /&gt;
	return countryAlias(frame.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	flagIOC = flagIOC,&lt;br /&gt;
	flagXYZ = flagXYZ,&lt;br /&gt;
	main = main,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>en&gt;Primefac</name></author>
	</entry>
</feed>