"" for i = 0, tabCount do tabberContent = tabberContent .. generateTabberLine(i) end local tabberFooter = [[
m (Software2 moved page ModuleTestPageMain to ModuleTable CompareLevels without leaving a redirect) |
No edit summary Tags: Reverted Visual edit: Switched |
||
Line 1: | Line 1: | ||
local p = {} | |||
local parsedArray = {} | |||
local function addToParsedArray(parsedTable) | |||
parsedArray[#parsedArray+1] = {} | |||
for i=1,#parsedTable do | |||
parsedArray[#parsedArray][i] = parsedTable[i] | |||
end | |||
end | |||
local function parseCSV(csvString) -- csvString is one line | |||
local result = {} | |||
for value in string.gmatch(csvString, '([^,]+)') do | |||
table.insert(result, value) | |||
end | |||
return result | |||
end | |||
local function generateTabberLine(element_level) | |||
local tabTitle = "|-|Level " .. tostring(element_level) .. "\n" | |||
local tabContent = "This is the content of the tab.\n" | |||
return tabTitle .. tabContent | |||
end | |||
function p.process(frame) | |||
local csvText = frame.args[1] or "" | |||
-- Put all the CSV lines into an array | |||
for line in csvText:gmatch("[^\r\n]+") do | |||
local parsedLine = parseCSV(line) | |||
if #parsedLine > 0 then | |||
addToParsedArray(parsedLine) | |||
end | |||
end | |||
if #parsedArray == 0 then | |||
return "Error: ModuleLevelTable had no results. Report this to Discord!" | |||
end | |||
-- IMPORTANT! This assumes data is structured EXACTLY in this order! | |||
--1 Nonsensical invoking ID | |||
--2 |?Module:Name | |||
--3 |?Module:Rarity | |||
--4 |?Module:Socket | |||
--5 |?Module:Class | |||
--6 |?Module:MaxEnhancementLevel | |||
--7 |?Module:CapacityCost0 | |||
--8 |?Module:ExclusiveCategory | |||
--9 |?Module:Effect0 | |||
--10 |?Module:Effect1 | |||
--11 |?Module:Effect2 | |||
--12 |?Module:Effect3 | |||
--13 |?Module:Effect4 | |||
--14 |?Module:Effect5 | |||
--15 |?Module:Effect6 | |||
--16 |?Module:Effect7 | |||
--17 |?Module:Effect8 | |||
--18 |?Module:Effect9 | |||
--19 |?Module:Effect10 | |||
return #parsedArray | |||
local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1 | |||
local tabberHeadder = [[ | |||
<tabber> | |||
]] | |||
local tabberContent = "" | |||
for i = 0, tabCount do | |||
tabberContent = tabberContent .. generateTabberLine(i) | |||
end | |||
local tabberFooter = [[ | |||
</tabber> | |||
]] | |||
return tabberHeadder .. tabberContent .. tabberFooter | |||
end | |||
return p | |||
--Debug lines | |||
-- local csvText = "ModuleTestPage#_9a88490adf412a0c81fe3a2fa2d78e3c,Test Module Name,Transcendent,Almandine,High-Power Rounds,10,6,Resource,,,,,,,,,," |
Revision as of 15:20, 4 June 2024
local p = {}
local parsedArray = {}
local function addToParsedArray(parsedTable)
parsedArray[#parsedArray+1] = {} for i=1,#parsedTable do parsedArray[#parsedArray][i] = parsedTable[i] end
end
local function parseCSV(csvString) -- csvString is one line
local result = {} for value in string.gmatch(csvString, '([^,]+)') do table.insert(result, value) end return result
end
local function generateTabberLine(element_level)
local tabTitle = "|-|Level " .. tostring(element_level) .. "\n" local tabContent = "This is the content of the tab.\n" return tabTitle .. tabContent
end
function p.process(frame)
local csvText = frame.args[1] or "" -- Put all the CSV lines into an array for line in csvText:gmatch("[^\r\n]+") do local parsedLine = parseCSV(line) if #parsedLine > 0 then addToParsedArray(parsedLine) end end if #parsedArray == 0 then return "Error: ModuleLevelTable had no results. Report this to Discord!" end
-- IMPORTANT! This assumes data is structured EXACTLY in this order! --1 Nonsensical invoking ID --2 |?Module:Name --3 |?Module:Rarity --4 |?Module:Socket --5 |?Module:Class --6 |?Module:MaxEnhancementLevel --7 |?Module:CapacityCost0 --8 |?Module:ExclusiveCategory --9 |?Module:Effect0 --10 |?Module:Effect1 --11 |?Module:Effect2 --12 |?Module:Effect3 --13 |?Module:Effect4 --14 |?Module:Effect5 --15 |?Module:Effect6 --16 |?Module:Effect7 --17 |?Module:Effect8 --18 |?Module:Effect9 --19 |?Module:Effect10 return #parsedArray
local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1 local tabberHeadder = [[
]] return tabberHeadder .. tabberContent .. tabberFooter
end
return p
--Debug lines
-- local csvText = "ModuleTestPage#_9a88490adf412a0c81fe3a2fa2d78e3c,Test Module Name,Transcendent,Almandine,High-Power Rounds,10,6,Resource,,,,,,,,,,"