Module:ISO 3166/data
Appearance
The subpages of this module contain the ISO 3166 codes used by Module:ISO 3166. This module itself is for maintenance/internal use and should not be used in articles.
Subpages
Script error: The function "list" does not exist.
Problem reports
Script error: The function "testall" does not exist.
local p = {}
function p.subpagetest(frame)
--Returns a table cell indicating the existence of a data page (see [[User:SiBr4/sandbox#Data subpage test]])
local data = mw.loadData("Module:ISO 3166/data/National")
local code = frame.args[1]
local sdata
if not data[code] then
return "" --Unassigned or reserved 3166-1 code
else
local sname = "Module:ISO 3166/data/"..code
if not (frame.args[2]=="1" or mw.title.new(sname).exists) then
return "title=\""..data[code].name.."\" style=\"background:#fee;\"|[["..sname.."|-]]" --Data subpage doesn't exist
else
sdata = mw.loadData(sname)
end
end
for _,_ in pairs(sdata) do
return "title=\""..data[code].name.."\" style=\"background:#efe;\"|n" --Non-empty 3166-2 entry
end
return "title=\""..data[code].name.."\" style=\"background:#eef;\"|e" --Empty 3166-2 entry
end
function p.finddupes(frame)
--Search for names that are used multiple times
function testname(names,dnames,page,name)
if name then
if not names[name] then names[name] = true
else dnames[#dnames+1] = "*"..page..": "..name
end
end
return names, dnames
end
function testentry(names,dnames,page,edata)
names, dnames = testname(names,dnames,page,edata.name)
names, dnames = testname(names,dnames,page,edata.isoname)
if edata.altnames then for _,name in ipairs(edata.altnames) do
names, dnames = testname(names,dnames,page,name)
end end
return names, dnames
end
local dnames = {}
--ISO 3166-1
local data = mw.loadData("Module:ISO 3166/data/National")
local names = {}
for _,cdata in pairs(data) do
names, dnames = testentry(names,dnames,"National",cdata)
end
--ISO 3166-2
for code,_ in pairs(data) do
names = {}
local spage = "Module:ISO 3166/data/"..code
if mw.title.new(spage).exists then
local sdata = mw.loadData(spage)
for _,cdata in pairs(sdata) do
names, dnames = testentry(names,dnames,code,cdata)
end
end
end
return table.concat(dnames,"\n")
end
return p