Module:Infobox road/locations/sandbox
Appearance
![]() | This is the module sandbox page for Module:Infobox road/locations (diff). |
local p = {}
local roadDataModule = require('Module:Road data')
local format = mw.ustring.format
local frame = mw.getCurrentFrame()
local getArgs = require('Module:Arguments').getArgs
local function country(args)
local state = args.state or args.province
local country
local countryModule = mw.loadData("Module:Road data/countrymask")
local country = args.country or countryModule[state]
return country
end
local function state(args)
local state = args.state or args.province
local country
local countryModule = mw.loadData("Module:Road data/countrymask")
local country = args.country or countryModule[state]
if state == "GA" then
return "Georgia (U.S. state) |name=Georgia"
else
return frame:expandTemplate ({title='Country name', args = { country .. "-" .. state}})
end
end
local function lga(args)
local labels = {
SA = "[[Local government areas of South Australia|LGA(s)]]",
VIC = "[[Local government in Victoria|LGA(s)]]",
NSW = "[[Local government areas of New South Wales|LGA(s)]]",
QLD = "[[Local government areas of Queensland|LGA(s)]]",
NT = "[[Local government areas of the Northern Territory|LGA(s)]]",
WA = "[[Local government areas of Western Australia|LGA(s)]]",
TAS = "[[Local government areas of Tasmania|LGA(s)]]",
ACT = "District(s)"
}
local state = args.state or ''
local label = labels[state] or "[[Local government in Australia|LGA(s)]]"
return label, args.lga
end
local function locations(args)
local labels = {
highway = "Major settlements",
["rural road"] = "Major settlements",
freeway = "Major suburbs",
["city highway"] = "Major suburbs",
road = "Major suburbs",
street = "Suburb"
}
local type = args.type or ''
local label = labels[type] or "Primary<br>destinations"
return label, args.locations
end
local function location(args)
local infobox_args = {}
infobox_args['title'] = 'Location'
infobox_args['bodystyle'] = 'display:inline-table;'
infobox_args['child'] = 'yes'
------------- AUSTRALIA --------------
if country(args) == "AUS" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Australia]]"
if args.state then
if args.state == "NT" or args.state == "ACT" or args.state == "JBT" then
infobox_args['label2'] = 'Territory'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
infobox_args['label3'], infobox_args['data3'] = lga(args)
infobox_args['label4'], infobox_args['data4'] = locations(args)
------------- CANADA --------------
elseif country(args) == "CAN" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Canada]]"
if args.province then
if args.province == "YK" or args.province == "NT" or args.province == "NU" then
infobox_args['label2'] = 'Territory'
else
infobox_args['label2'] = 'Province'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'Provinces'
infobox_args['data2'] = args.provinces
end
if args.province == 'AB' then
infobox_args['label3'] = "Specialized and rural municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Special areas"
infobox_args['data4'] = args.areas
infobox_args['label5'] = "Improvement districts"
infobox_args['data5'] = args.districts
elseif args.province == 'BC' then
infobox_args['label3'] = "Regional districts"
infobox_args['data3'] = args.districts or args.rural_municipalities
elseif args.province == 'MB' or args.province == 'SK' then
infobox_args['label3'] = "Rural municipalities"
infobox_args['data3'] = args.rural_municipalities
elseif args.province == 'NB' or args.province == 'PE' then
infobox_args['label3'] = "Counties"
infobox_args['data3'] = args.counties
infobox_args['label4'] = "Parishes"
infobox_args['data4'] = args.parishes
elseif args.province == 'NS' then
infobox_args['label3'] = "Counties"
infobox_args['data3'] = args.counties
elseif args.province == 'ON' then
infobox_args['label3'] = "Municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Counties"
infobox_args['data4'] = args.counties
infobox_args['label5'] = "Regions"
infobox_args['data5'] = args.regions
infobox_args['label6'] = "Districts"
infobox_args['data6'] = args.districts
infobox_args['label7'] = "Divisions"
infobox_args['data7'] = args.divisions
elseif args.province == 'QC' then
infobox_args['label3'] = "Regional county municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Equivalent territories"
infobox_args['data4'] = args.territories
elseif args.province == 'NT' or args.province == 'NU' then
infobox_args['label3'] = "Regions"
infobox_args['data3'] = args.regions
end
------------- CHINA --------------
elseif country(args) == "CHN" or country(args) == "HKG" or country(args) == "MAC" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[China]]"
if country(args) == "HKG" then
infobox_args['label2'] = 'Special administrative region'
infobox_args['data2'] = "[[Hong Kong]]"
infobox_args['label3'] = 'Districts'
infobox_args['data3'] = args.districts
elseif country(args) == "MAC" then
infobox_args['label2'] = 'Special administrative region'
infobox_args['data2'] = "[[Macau]]"
else
infobox_args['label2'] = 'Provinces'
infobox_args['data2'] = args.provinces
infobox_args['label3'] = 'Autonomous regions'
infobox_args['data3'] = args.regions
end
------------- FRANCE --------------
elseif country(args) == "FRA" or country(args) == "GUF" or country(args) == "GLP" or country(args) == "MTQ" or country(args) == "MYT" or country(args) == "REU" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[France]]"
if country(args) == "GUF" then
infobox_args['label2'] = 'Overseas region'
infobox_args['data2'] = "[[French Guiana]]"
infobox_args['label3'] = 'Department'
infobox_args['data3'] = "[[Guyane]]"
elseif country(args) == "GLP" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Guadaloupe]]"
elseif country(args) == "MTQ" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Martinique]]"
elseif country(args) == "MYT" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Mayotte]]"
elseif country(args) == "REU" then
infobox_args['label2'] = 'Overseas region'
infobox_args['data2'] = "[[Réunion]]"
infobox_args['label3'] = 'Department'
infobox_args['data3'] = "[[La Réunion]]"
else
infobox_args['label2'] = 'Regions'
infobox_args['data2'] = args.regions
infobox_args['label3'] = 'Departments'
infobox_args['data3'] = args.departments
end
------------- MEXICO --------------
elseif country(args) == "MEX" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Mexico]]"
if args.state then
if args.state == "CMX" then
infobox_args['label2'] = 'Autonomous city'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
------------- NETHERLANDS --------------
elseif country(args) == "NLD" or country(args) == "ABW" or country(args) == "CUW" or country(args) == "SXM"then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Kingdom of the Netherlands]]"
if country(args) == "NLD" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Netherlands]]"
infobox_args['label3'] = 'Provinces'
infobox_args['data3'] = args.provinces
elseif country(args) == "ABW" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[ARUBA]]"
elseif country(args) == "CUW" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Curaçao]]"
elseif country(args) == "SXM" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Sint Maarten]]"
end
------------- RUSSIA --------------
elseif country(args) == "RUS" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Russia]]"
infobox_args['label2'] = 'Oblasts'
infobox_args['data2'] = args.oblasts
infobox_args['label3'] = 'Republics'
infobox_args['data3'] = args.republics
infobox_args['label4'] = 'Autonomous okrugs'
infobox_args['data4'] = args.okrugs
infobox_args['label5'] = 'Krais'
infobox_args['data5'] = args.krais
infobox_args['label6'] = 'Federal cities'
infobox_args['data6'] = args.federal_cities
------------- UNITED KINGDOM --------------
elseif country(args) == "GBR" or country(args) == "ENG" or country(args) == "NIR" or country(args) == "SCT" or country(args) == "WLS" or
country(args) == "GGY" or country(args) == "IMN" or country(args) == "JEY" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[United Kingdom]]"
if country(args) == "ENG" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[England]]"
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
infobox_args['label4'] = 'Boroughs'
infobox_args['data4'] = args.boroughs
elseif country(args) == "NIR" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Northern Ireland]]"
infobox_args['label3'] = 'Districts'
infobox_args['data3'] = args.districts
elseif country(args) == "SCT" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Scotland]]"
infobox_args['label3'] = 'Council areas'
infobox_args['data3'] = args.areas
elseif country(args) == "WLS" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Wales]]"
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
infobox_args['label4'] = 'County boroughs'
infobox_args['data4'] = args.boroughs
elseif country(args) == "GGY" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Guernsey]]"
infobox_args['label3'] = 'Parishes'
infobox_args['data3'] = args.parishes
elseif country(args) == "IMN" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Isle of Man]]"
infobox_args['label3'] = 'Sheadings'
infobox_args['data3'] = args.sheadings
elseif country(args) == "JER" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Jersey]]"
infobox_args['label3'] = 'Parishes'
infobox_args['data3'] = args.parishes
end
------------- UNITED STATES --------------
elseif country(args) == "USA" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[United States]]"
if args.state then
if args.state == "AS" or args.state == "GU" or args.state == "MP" or args.state == "PR" or args.state == "VI" then
infobox_args['label2'] = 'Territory'
elseif args.state == "DC" then
infobox_args['label2'] = 'Federal district'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
if args.county then
infobox_args['label3'] = 'County'
infobox_args['data3'] = args.county
else
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
end
if args.parish then
infobox_args['label4'] = 'Parish'
infobox_args['data4'] = args.parish
else
infobox_args['label4'] = 'Parishes'
infobox_args['data4'] = args.parishes
end
if args.borough then
infobox_args['label5'] = 'Borough'
infobox_args['data5'] = args.borough
else
infobox_args['label5'] = 'Boroughs'
infobox_args['data5'] = args.boroughs
end
if args.municipality then
infobox_args['label6'] = 'Municipality'
infobox_args['data6'] = args.municipality
else
infobox_args['label6'] = 'Municipalities'
infobox_args['data6'] = args.municipalities
end
else
------------- ALL OTHER COUNTRIES --------------
if country(args) ~= nil then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = frame:expandTemplate ({title='Flagcountry', args = { country(args)}})
else
infobox_args['label1'] = 'Countries'
infobox_args['data1'] = args.countries
end
infobox_args['label2'] = 'Island'
infobox_args['data2'] = args.island
infobox_args['label3'] = 'Communities'
infobox_args['data3'] = args.communities
infobox_args['label4'] = 'Regions'
infobox_args['data4'] = args.regions
infobox_args['label5'] = 'Provinces'
infobox_args['data5'] = args.provinces
infobox_args['label6'] = 'States'
infobox_args['data6'] = args.states
infobox_args['label7'] = 'Governorates'
infobox_args['data7'] = args.governorates
infobox_args['label8'] = 'Counties'
infobox_args['data8'] = args.counties
infobox_args['label9'] = 'Departments'
infobox_args['data9'] = args.departments
infobox_args['label10'] = 'Cantons'
infobox_args['data10'] = args.cantons
infobox_args['label11'] = 'Prefectures'
infobox_args['data11'] = args.prefectures
infobox_args['label12'] = 'Divisions'
infobox_args['data12'] = args.divisions
infobox_args['label13'] = 'Oblasts'
infobox_args['data13'] = args.oblasts
infobox_args['label14'] = 'Districts'
infobox_args['data14'] = args.districts
infobox_args['label15'] = 'Parishes'
infobox_args['data15'] = args.parishes
infobox_args['label16'] = 'Communes'
infobox_args['data16'] = args.communes
infobox_args['label17'] = 'Territories'
infobox_args['data17'] = args.territories
infobox_args['label18'] = args.label1
infobox_args['data18'] = args.location1
infobox_args['label19'] = args.label2
infobox_args['data19'] = args.location2
infobox_args['label20'] = args.label3
infobox_args['data20'] = args.location3
infobox_args['label21'] = args.label4
infobox_args['data21'] = args.location4
infobox_args['label22'] = args.label5
infobox_args['data22'] = args.location5
infobox_args['label23'] = 'Subregions'
infobox_args['data23'] = args.subregions
infobox_args['label24'] = 'Subcounties'
infobox_args['data24'] = args.subcounties
infobox_args['label25'] = 'Subprefectures'
infobox_args['data25'] = args.subprefectures
if country(args) == "USA" then
return nil
else
infobox_args['label25'] = 'Municipalities'
infobox_args['data25'] = args.municipalities
infobox_args['label27'] = 'Major cities'
infobox_args['data27'] = args.cities
infobox_args['label28'] = 'Towns'
infobox_args['data28'] = args.towns
infobox_args['label29'] = 'Villages'
infobox_args['data29'] = args.villages
end
end
if infobox_args == nil then
return nil
else
return frame:expandTemplate ({title='Infobox', args = infobox_args})
end
end
function p.location(frame)
local args = getArgs(frame)
return location(args)
end
return p