Module:Jct/city/sandbox: Difference between revisions
Appearance
< Module:Jct | city
Content deleted Content added
No edit summary |
optimizing |
||
Line 62: | Line 62: | ||
areadab = args["areadab" .. num] |
areadab = args["areadab" .. num] |
||
countydab = args["countydab" .. num] |
countydab = args["countydab" .. num] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
if pageContainsLink == false then |
if pageContainsLink == false then |
||
Line 70: | Line 74: | ||
local firstPosition = strfind(page, linkString) |
local firstPosition = strfind(page, linkString) |
||
⚫ | |||
if firstPosition then |
if firstPosition then |
||
local secondPosition = strfind(page, linkString, firstPosition) |
local secondPosition = strfind(page, linkString, firstPosition) |
||
end |
|||
⚫ | |||
if firstPosition then |
|||
if secondPosition or string.find(page, jctString) then |
if secondPosition or string.find(page, jctString) then |
||
pageContainsLink = true |
pageContainsLink = true |
||
end |
|||
end |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
Revision as of 12:08, 26 August 2021
![]() | This is the module sandbox page for Module:Jct/city (diff). |
local p = {}
local concat = table.concat
local insert = table.insert
local city
local location
local areadab
local countydab
local state
local pageContainsLink
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 generateText(num)
local parts
if num == 1 then
parts = {"– "}
else
parts = {", "}
end
if location then
insert(parts, location)
return concat(parts)
end
if not pageContainsLink then
insert(parts, "[[" .. city)
end
if areadab then
insert(parts, " (" .. areadab .. ")")
end
if countydab then
insert(parts, ", " .. countydab .. " County")
end
if state then
insert(parts, ", " .. state)
end
if not pageContainsLink then
insert(parts, "|" .. city .. "]]")
end
return concat(parts)
end
local function _location(args, num, page)
city = args["city" .. num]
location = args["location" .. num]
areadab = args["areadab" .. num]
countydab = args["countydab" .. num]
if not(city or location) then
return ''
end
if pageContainsLink == false then
local place = city or location
local jctString = "{{jct/sandbox|" .. ".+" .. place .. ".+" .. "}}"
local linkString = generateText(num)
local firstPosition = strfind(page, linkString)
if firstPosition then
local secondPosition = strfind(page, linkString, firstPosition)
if secondPosition or string.find(page, jctString) then
pageContainsLink = true
end
end
end
return generateText(num)
end
function p.city(args, page)
state = stateName(args)
local cities = {}
local locationCount = 1
repeat
local location = _location(args, locationCount, page)
insert(cities, location)
local empty = (location == '')
locationCount = locationCount + 1
until empty
return concat(cities)
end
return p