Module:ISO 3166/sandbox: Difference between revisions

Content deleted Content added
expand accents, add to remove
Don't display script warnings if nocat is set to true
 
(12 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 103 ⟶ 111:
text = mw.ustring.gsub(text,"[À-Ż]",accents) -- Deaccent
for pattern_,valuepattern in pairsipairs(patterns) do -- Follow patterns
local value = replacements[pattern]
text = mw.ustring.gsub(text,pattern,value)
end
Line 130 ⟶ 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 138 ⟶ 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 152 ⟶ 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 178 ⟶ 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 227 ⟶ 240:
or (data[code1]["displayname"] or data[code1]["name"])
else
return catserrors('nocountrycountry', args)
end
else --3166-2 code
Line 234 ⟶ 247:
sdata = mw.loadData("Module:ISO 3166/data/"..code1)
else
return catserrors('nocountrycountry', args)
end
if sdata[code2] then
Line 240 ⟶ 253:
or (sdata[code2]["displayname"] or sdata[code2]["name"])
else
return catserrors('nocountrycountry', args)
end
end
Line 283 ⟶ 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