The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 9: | Line 9: | ||
-- Check if the page content is available | -- Check if the page content is available | ||
if not wikitext then | if not wikitext then | ||
return "Error: Unable to fetch content for page '" .. pageTitle .. "'." | |||
end | end | ||
Line 15: | Line 15: | ||
PA = {}, | PA = {}, | ||
MD = {}, | MD = {}, | ||
Online = {} | |||
Online | |||
} | } | ||
local function processRow(row) | |||
-- Extract the campaign name which is in the form of a wiki link | |||
local campaign = row:match("|%[%[(.-)|'''") | |||
if not campaign then | |||
campaign = row:match("|'''%[%[(.-)%]%]'''") -- Fallback for rows without a pipe in the wiki link | |||
end | |||
-- Extract the location, which is the last element before the end of the row | -- Extract the location, which is the last element before the end of the row | ||
local location = row:match("[^\n | local location = row:match("|([^|]-)\n$") | ||
if | if campaign and location then | ||
location = mw.text.trim(location) -- Trim whitespace from the location string | |||
if location:find("PA") then | if location:find("PA") then | ||
table.insert(campaigns.PA, | table.insert(campaigns.PA, campaign) | ||
end | |||
if location:find("MD") then | if location:find("MD") then | ||
table.insert(campaigns.MD, | table.insert(campaigns.MD, campaign) | ||
end | |||
if location:find("Online") then | if location:find("Online") then | ||
table.insert(campaigns.Online, | table.insert(campaigns.Online, campaign) | ||
end | end | ||
end | end | ||
end | end | ||
-- Split the wikitext into rows and process each | -- Split the wikitext into rows and process each | ||
local rowPattern = "|- | local rowPattern = "|%-(.-)\n|%-" | ||
wikitext = wikitext .. '|- | wikitext = wikitext .. '|-' -- Append delimiter to capture the last row | ||
for row in wikitext:gmatch(rowPattern) do | for row in wikitext:gmatch(rowPattern) do | ||
processRow(row) | |||
end | end | ||
Line 72: | Line 56: | ||
end | end | ||
navbox = navbox .. '|}' | navbox = navbox .. '|}' | ||
return navbox | return navbox | ||
end | end | ||
return p | return p |