Zelda Wiki

OoT Navi.png
Hey! Listen!

This wiki contains spoilers! Read at your own risk!

READ MORE

Zelda Wiki
Advertisement
Zelda Wiki
10,148
pages

Lua error in package.lua at line 80: module 'Module:UtilsGame' not found.


local p = {}
local cargo = mw.ext.cargo
local utilsCode = require("Module:UtilsCode")
local utilsGame = require("Module:UtilsGame")
local utilsText = require('Module:UtilsText')
local utilsTable = require('Module:UtilsTable')

function p.Main( frame )
	local args = frame:getParent().args
	local returnedValue = ""
	
	local term = p.fetchRow(args[1], args[2])
	if utilsCode.IsEmpty(term) then
		return "<span style='color:red;'>INVALID OR MISSING TERM</span>[[Category:Pages With Invalid or Missing Terms]]"
	else
		if args[3] == "link" then
			local gameSub = utilsGame.AbbToGame(args[1], true)
			returnedValue = returnedValue .. "[[" .. term["term"]
			if gameSub ~= "Unknown" then
				returnedValue = returnedValue .. "#" .. gameSub
			end
			returnedValue = returnedValue .. "|"
		else
			returnedValue = returnedValue .. "<span class='term'>"
		end
		
		if args[4] == "plural" then
			returnedValue = returnedValue .. term["plural"]
		else
			returnedValue = returnedValue .. term["term"]
		end
		
		if args[3] == "link" then
			returnedValue = returnedValue .. "]]"
		else
			returnedValue = returnedValue .. "</span>"
		end
	end
	return returnedValue
end

function p.fetchTerm(game, page)
	return p.fetchRow(game, page)["term"]
end

function p.fetchPlural(game, page)
	return p.fetchRow(game, page)["plural"]
end

-- Returns the table row of the specified game for the specified page.
-- Returns the entry for "Series" if not found.
function p.fetchRow(game, page)
    tables = 'Terminologies'
    fields = 'games, term, plural'
    local queryArgs = {
        where = '_pageName = "' .. page .. '"'
    }
    local result = cargo.query( tables, fields, queryArgs )
    
    --Looks for the game
	for _, row in pairs(result) do
		local games = utilsText.split(row.games)
		if utilsTable.keyOf(games, game) then
			return row
		end
	end
	
	--Else, looks for "Series"
	for _, row in pairs(result) do
		local games = utilsText.split(row.games)
		if utilsTable.keyOf(games, "Series") then
			return row
		end
	end
	
	return nil
end

return p