Module:GetEventPageInfo

From Gears of War Esports Wiki
Jump to: navigation, search

To edit the documentation or categories for this module, click here.


local subpages = mw.loadData('Module:SubpageSettings').tournaments.names
local p = {}

function p.parseTitle(title)
	local titleparts = mw.text.split(title, '/')
	local event = {}
	local subpage = {}
	local parsed = {}
	for _,titlepart in ipairs(titleparts) do
		if subpages[titlepart] then
			-- event is everything leading up to here
			event = subpage
			-- subpage will be the rest
			subpage = {[1] = titlepart}
		else
			-- just keep adding to whichever part we are in
			subpage[#subpage+1] = titlepart
		end
	end
	
	-- case regular page
	if event[1] or subpages[titleparts[1]] then
		parsed.event = table.concat(event,'/')
		parsed.subpage = table.remove(subpage, 1)
		parsed.subsubpage = table.concat(subpage, '/')
	-- case overview page
	else
		parsed.event = table.concat(subpage, '/')
		parsed.subpage = ''
		parsed.subsubpage = ''
	end
	return parsed
end

function p.getEventPageInfo(frame)
	local title = mw.title.getCurrentTitle().text
	local parsed = p.parseTitle(title)
	
	local subpage = parsed.subpage .. (parsed.subsubpage ~= '' and '/' or '') .. parsed.subsubpage
	
	frame:callParserFunction{name='#vardefine:overviewpage', args={parsed.event} }
	frame:callParserFunction{name='#vardefine:subpage', args={subpage} }
	frame:callParserFunction{name='#vardefine:subpagetype', args={parsed.subpage} }
end

return p