Zelda Wiki

OoT Navi.png

Hey! Listen!

This wiki contains spoilers! Read at your own risk!

READ MORE

Zelda Wiki
Zelda Wiki
10,308
pages
Line 10: Line 10:
 
local returnedValue = ""
 
local returnedValue = ""
 
 
local term = p.fetchTerm(args[1], args[2])
+
local term = p.fetchRow(args[1], args[2])
 
if utilsCode.IsEmpty(term) then
 
if utilsCode.IsEmpty(term) then
 
return "<span style='color:red;'>INVALID OR MISSING TERM</span>[[Category:Pages With Invalid or Missing Terms]]"
 
return "<span style='color:red;'>INVALID OR MISSING TERM</span>[[Category:Pages With Invalid or Missing Terms]]"
Line 38: Line 38:
 
end
 
end
 
return returnedValue
 
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
 
end
   
 
-- Returns the table row of the specified game for the specified page.
 
-- Returns the table row of the specified game for the specified page.
 
-- Returns the entry for "Series" if not found.
 
-- Returns the entry for "Series" if not found.
function p.fetchTerm(game, page)
+
function p.fetchRow(game, page)
 
tables = 'Terminologies'
 
tables = 'Terminologies'
 
fields = 'games, term, plural'
 
fields = 'games, term, plural'

Revision as of 02:48, 19 April 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.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