<?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%3ACountry_alias</id>
	<title>Module:Country alias - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACountry_alias"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Country_alias&amp;action=history"/>
	<updated>2026-06-12T23:59:19Z</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:Country_alias&amp;diff=471418&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:Country_alias&amp;diff=471418&amp;oldid=prev"/>
		<updated>2021-07-15T21:13:19Z</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;-- 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;
    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' then&lt;br /&gt;
		if year and year &amp;gt; 1963 then&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;
		end&lt;br /&gt;
	elseif alias == 'MKD' then&lt;br /&gt;
		if year and year &amp;gt;= 2019 then&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 == 'ROC' or alias == 'RUS' then&lt;br /&gt;
		if 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;
		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;
	return (('[[File:{flag}|22x20px|border|alt=|link=]]&amp;amp;nbsp;[[{name} at the {games}|{name}]]{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;
		}))&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 == '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;
	local dispName = stripToNil(args.name)&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;
	&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>Zoran</name></author>
	</entry>
</feed>