Fortnite Esports Wiki

Power Rankings of Brazil and Oceania are not yet fully updated. Currently all our efforts are on the C2S8 competitive season. We will aim to have all regions updated before the end of the year.

READ MORE

Fortnite Esports Wiki
Advertisement
Fortnite Esports Wiki

Documentation for this module may be created at Module:PageUtil/doc

local util_cargo = require("Module:CargoUtil")
local util_map = require("Module:MapUtil")
local util_table = require('Module:TableUtil')
local util_text = require('Module:TextUtil')
local util_title = require("Module:TitleUtil")
local util_vars = require('Module:VarsUtil')

local p = {}
local h = {}

function p.whatRedirectsHereAndSelf(title)
	title = title or mw.title.getCurrentTitle().text
	return h.runPagedataQuery(h.pagedataQuery(h.getWhatRedirectsHereWhere(title, false)))
end

function p.whatRedirectsHere(title)
	title = title or mw.title.getCurrentTitle().text
	return h.runPagedataQuery(h.pagedataQuery(h.getWhatRedirectsHereWhere(title, true)))
end

function p.getListOfPages(where)
	return h.runPagedataQuery(h.pagedataQuery(where))
end

function h.runPagedataQuery(query)
	return util_cargo.getOrderedList(query, '_pageName')
end

function h.pagedataQuery(where)
	local ret = {
		tables = '_pageData',
		fields = '_pageData._pageName',
		where = where
	}
	return ret
end

function h.getWhatRedirectsHereWhere(title, excludeself)
	local tbl = {
		('_pageNameOrRedirect="%s"'):format(title),
		excludeself and ('_isRedirect="1"')
	}
	return util_cargo.concatWhere(tbl)
end

function p.getSubpageList(title, nottag)
	local basepage = util_title.titleparts(title, 1, 1)
	return h.runPagedataQuery(h.getSubpageQuery(basepage,nottag))
end

function h.getSubpageQuery(basepage, nottag)
	local tbl = {
		tables = 'IgnorePagedata=IP',
		join = '_pageData._pageName=IP._pageName',
		where = h.getSubpageWhere(basepage, nottag),
		groupBy = '_pageData._pageName',
	}
	local ret = util_cargo.concatQueriesAnd(h.pagedataQuery(), tbl)
	return ret
end

function h.getSubpageWhere(basepage, nottag)
	local tbl = {
		('(_pageData._pageName LIKE "%s/%%" OR _pageData._pageName="%s")'):format(basepage, basepage),
		util_cargo.whereFromArg('(IP.TypeOfIgnore != "%s" OR IP.TypeOfIgnore IS NULL)', nottag)
	}
	return util_cargo.concatWhere(tbl)
end

function p.whichPagesExist(tbl)
	return p.getListOfPages(
		util_table.concat(tbl, ' OR ', h.pageToWhere)
	)
end

function h.pageToWhere(str)
	return ('_pageName="%s"'):format(str)
end

return p
Advertisement