Module:ISO 3166/sandbox: Difference between revisions

Content deleted Content added
fix replace order, add accented characters
Don't display script warnings if nocat is set to true
 
(11 intermediate revisions by the same user not shown)
Line 9:
local data = mw.loadData("Module:ISO 3166/data/National/sandbox")
 
--[[----------CE AR TR O R S----------]]-- -- Assign error categories and display warnings
local function catserrors(caterrType, args, code, alpha2)
if not (args.nocat and args.nocat == 'true') and mw.title.getCurrentTitle().namespace == 0 then
if cat == 'nocountry'code then
local warningText = code .. ' ("%s") is not a recognized ' .. errType .. ' in [[ISO 3166-%s]] ([[Module:ISO 3166]]).'
return '[[Category:Wikipedia articles with obscure country]]'
elseif if caterrType == 'nosubdivisioncountry' then
mw.addWarning(string.format(warningText, args[1], '1'))
return '[[Category:Wikipedia articles with obscure subdivision]]'
elseif errType == 'subdivision' and alpha2 then
mw.addWarning(string.format(warningText, args[2], '2:' .. alpha2))
end
end
return mw.title.getCurrentTitle().namespace == 0 and ('[[Category:Wikipedia articles with obscure country' .. errType .. 'subdivision]]') or ''
end
return ''
Line 80 ⟶ 84:
["Ğ"]="G",["Ģ"]="G",["Ĝ"]="G",["Ġ"]="G",["Ĥ"]="H",
["Ħ"]="H",["Ĭ"]="I",["İ"]="I",["Ī"]="I",["Į"]="I",
["Ĩ"]="I",["IJ"]="IjIJ",["Ĵ"]="J",["Ķ"]="K",["Ĺ"]="L",
["Ľ"]="L",["Ļ"]="L",["Ŀ"]="L",["Ł"]="L",["Ń"]="N",
["Ň"]="N",["Ņ"]="N",["Ŏ"]="O",["Ő"]="O",["Ō"]="O",
["Œ"]="OeOE",["Ŕ"]="R",["Ř"]="R",["Ŗ"]="R",["Ś"]="S",
["Š"]="S",["Ş"]="S",["Ŝ"]="S",["Ť"]="T",["Ţ"]="T",
["Ŧ"]="T",["Ŭ"]="U",["Ű"]="U",["Ū"]="U",["Ų"]="U",
Line 91 ⟶ 95:
local remove = {"NATION OF","COUNTRY OF","TERRITORY OF", -- text to be removed list
"FLAG OF","FLAG","KINGDOM OF","STATE OF"," STATE ",
"PROVINCE OF","PROVINCE","TERRITORY","COUNTY","CITY OFGOVERNORATE"
}
local patterns = {"(%a)%.(%a)%.",".+:","|.+","%(.-%)", -- patterns to follow (order may matter)
"%.%S.*","^THE ","%_","%-","%d%d?%d?PX"
}
local replacements = {["(%a)%.(%a)%."]="%1%2", -- Replacements for patterns above (order does not matter)
[".+:"]="",["|.+"]="",["%(.-%)"]="",
["%.%S.*"]="",["^THE "]="",["%_"]=" ",["%-"]=" ",
["%d%d?%d?PX"]="",
}
Line 118 ⟶ 122:
text = mw.ustring.gsub(text,"%W","") -- Remove non alpha-numeric
return mw.text.trim(text)
end
Line 135 ⟶ 139:
 
function p.luacode(args)
args[1], args[2] = args[1] or '', args[2] or ''
 
local code1 = p.strip(args[1])
local code2 = p.strip(args[2])
Line 143 ⟶ 147:
local eot = args.error or ""
if (code1 or "") == "" then
if not (args.nocat and args.nocat == 'true') then
return cats('nocountry', args), '<span style="font-size:100%" class="error">"No parameter for the country given"</span>'
mw.addWarning((args[1] ~= "" and ('Invalid parameter "' .. args[1] .. '"') or 'No parameter') ..
' for the country given ([[Module:ISO 3166]]).')
end
return catserrors('nocountrycountry', args), '<span style="font-size:100%" class="error">"No parameter for the country given"</span>'
end
if (code2 or "") == "" then --3166-1 code
for alpha2,cdata in pairs(data) do
if findname(alpha2,cdata,code1) then
Line 157 ⟶ 165:
end
end
if string.find(args[1] or '',"%-") then
args[1], args[2] = string.match(args[1] or '',"^([^%-]*)%-(.*)$")
if args[2] then return p.luacode(args) end
end
return catserrors('nocountrycountry', args, code1)
else --3166-2 code
for alpha2,cdata in pairs(data) do
Line 183 ⟶ 191:
return p.luacode(args)
end
return catserrors('nosubdivisionsubdivision', args, code2, alpha2)
end
end
if string.find(args[1] or '',"%-") then
args[1] = string.match(args[1] or '',"^([^%-]*)%-(.*)$")
return p.luacode(args)
end
return catserrors('nocountrycountry', args, code1)
end
return errors('country', args, code1)
 
end
 
Line 232 ⟶ 240:
or (data[code1]["displayname"] or data[code1]["name"])
else
return catserrors('nocountrycountry', args)
end
else --3166-2 code
Line 239 ⟶ 247:
sdata = mw.loadData("Module:ISO 3166/data/"..code1)
else
return catserrors('nocountrycountry', args)
end
if sdata[code2] then
Line 245 ⟶ 253:
or (sdata[code2]["displayname"] or sdata[code2]["name"])
else
return catserrors('nocountrycountry', args)
end
end
Line 288 ⟶ 296:
region = p.luacode({country, nocat = 'true'})
if region == '' then
tracking = tracking .. catserrors('nocountrycountry', args)
elseif subdivisionqueried == true then
tracking = tracking .. catserrors('nosubdivisionsubdivision', args)
end
end