Módulo:Jct/city

Origem: Wikipédia, a enciclopédia livre.
local p = {}

local concat = table.concat
local insert = table.insert

local state

local function stateName(args)
    local AUSabbrs = {NT = "Northern Territory", WA = "Western Australia"}
    
    local data = mw.loadData("Module:Jct/statename")
    local abbr = args.state or args.province
    local country = args.country
    if country == 'AUS' then
        return AUSabbrs[abbr] or data[abbr]
    else
        return data[abbr]
    end
end

local function location(args, num)
    local city = args["city" .. num]
    local location = args["location" .. num]
    local areadab = args["areadab" .. num]
    local countydab = args["countydab" .. num]
    
    if not(city or location) then
        return ''
    end
    
    local parts
    if num == 1 then
        parts = {" – "}
    else
        parts = {", "}
    end
    
    if location then
        insert(parts, location)
        return concat(parts)
    end
    
    insert(parts, "[[" .. city)
    if areadab then
        insert(parts, " (" .. areadab .. ")")
    end
    if countydab then
        insert(parts, ", " .. countydab .. " County")
    end
    if state then
        insert(parts, ", " .. state)
    end
    
    insert(parts, "|" .. city .. "]]")
    return concat(parts)
end

function p.city(args)
    state = stateName(args)
    local cities = {}
    local locationCount = 1
    repeat
        local location = location(args, locationCount)
        insert(cities, location)
        local empty = (location == '')
        locationCount = locationCount + 1
    until empty
    return concat(cities)
end

return p