Zelda Wiki

OoT Navi.png

Hey! Listen!

This wiki contains spoilers! Read at your own risk!

READ MORE

Zelda Wiki
Zelda Wiki
10,148
pages
Line 49: Line 49:
 
function p._fetchTerm(frame)
 
function p._fetchTerm(frame)
 
local args = frame:getParent().args
 
local args = frame:getParent().args
return p.fetchRow(args[1], args[2])["term"]
+
return p.fetchTerm(args[1], args[2])
 
end
 
end
   

Revision as of 23:11, 1 May 2019

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.AbbToBaseGame(args[1], true)
			returnedValue = returnedValue .. "[[" .. args[2]
			if (gameSub ~= "Unknown" and args[1] ~= "Series") then
				returnedValue = returnedValue .. "#" .. gameSub
			end
			returnedValue = returnedValue .. "|"
		else
			returnedValue = returnedValue .. "<span class='term'>"
		end
		
		if not utilsCode.IsEmpty(args["display"]) then
			returnedValue = returnedValue .. args["display"]
		elseif 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

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

function p._fetchTerm(frame)
	local args = frame:getParent().args
	return p.fetchTerm(args[1], args[2])
end

-- Returns raw plural
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