Module:ISO 3166/sandbox: Difference between revisions

Content deleted Content added
add mw.Warning, simplify code
Don't display script warnings if nocat is set to true
 
(9 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 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","GOVERNORATE"
}
local patterns = {"(%a)%.(%a)%.",".+:","|.+","%(.-%)", -- patterns to follow (order may matter)
Line 144 ⟶ 148:
if code1 == "" 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
Line 161 ⟶ 169:
if args[2] then return p.luacode(args) end
end
mw.addWarningreturn errors('ISO 3166: Unrecognized country ', ..args, code1 .. ' ("' .. args[1] .. '")')
return cats('nocountry', args)
else --3166-2 code
for alpha2,cdata in pairs(data) do
Line 184 ⟶ 191:
return p.luacode(args)
end
return errors('subdivision', args, code2, alpha2)
if args[2] ~= "" then
mw.addWarning('ISO 3166: Unrecognized subdivision ' .. code2 .. ' ("' .. args[2] .. '")')
end
return cats('nosubdivision', args)
end
end
Line 194 ⟶ 198:
return p.luacode(args)
end
return catserrors('nocountrycountry', args, code1)
end
return catserrors('nocountrycountry', args, code1)
 
end
 
Line 236 ⟶ 240:
or (data[code1]["displayname"] or data[code1]["name"])
else
return catserrors('nocountrycountry', args)
end
else --3166-2 code
Line 243 ⟶ 247:
sdata = mw.loadData("Module:ISO 3166/data/"..code1)
else
return catserrors('nocountrycountry', args)
end
if sdata[code2] then
Line 249 ⟶ 253:
or (sdata[code2]["displayname"] or sdata[code2]["name"])
else
return catserrors('nocountrycountry', args)
end
end
Line 292 ⟶ 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