Difference between revisions of "Module:Data/Templates"

From Yugipedia
Jump to: navigation, search
m (Just to prevent error (we want empty for wikitext).)
(Restoring revision 5092590 by User:Becasita on 2022-11-01 12:54:15. "Add rarity.")
 
Line 10: Line 10:
 
local UTIL = require( 'Module:Util' )
 
local UTIL = require( 'Module:Util' )
  
local D = {}
+
local function getArg( frame, index )
 +
return frame:getParent().args[ index ]
 +
end
 +
 
 +
local function getRegion( frame )
 +
return DATA.getRegion( getArg( frame, 1 ) ) or {}
 +
end
  
 
local function getLanguage( frame )
 
local function getLanguage( frame )
local v = frame:getParent().args[ 1 ]
+
return DATA.getLanguage( getArg( frame, 1 ) ) or {}
 +
end
  
return DATA.getLanguage( v ) or {}
+
local function getMedium( frame )
 +
return DATA.getMedium( getArg( frame, 1 ) ) or {}
 
end
 
end
  
local function getRegion( frame )
+
local function getRarity( frame )
local v = frame:getParent().args[ 1 ]
+
return DATA.getRarity( getArg( frame, 1 ) ) or {}
 +
end
  
return DATA.getRegion( v ) or {}
+
local function getVideoGameName( frame )
 +
return DATA.videoGames.getName( getArg( frame, 1 ) ) or {}
 
end
 
end
  
local function getMedium( frame )
+
---------------------
local v = frame:getParent().args[ 1 ]
+
-- Wikitext interface
 +
---------------------
 +
 
 +
local D = {}
  
return DATA.getMedium( v ) or {}
+
function D.rg( frame )
 +
return getRegion( frame ).index or ''
 
end
 
end
  
local function getVideoGame( frame )
+
function D.region( frame )
local v = frame:getParent().args[ 1 ]
+
--[[
 
+
short
return DATA.getVideoGame( v ) or {}
+
short2
 +
oceanic
 +
english
 +
after
 +
after2
 +
]]
 +
return getRegion( frame ).full or ''
 
end
 
end
  
Line 44: Line 64:
 
end
 
end
  
function D.rg( frame )
+
function D.rgo( frame )
return getRegion( frame ).index or ''
+
return getMedium( frame ).abbr or ''
 
end
 
end
  
function D.region( frame )
+
function D.rarity( frame )
return getRegion( frame ).full or ''
+
local full = UTIL.trim( getArg( frame, 'full' ) )
end
+
 
 +
local rarity = getRarity( frame )
  
function D.rgo( frame )
+
return ( full and rarity.full or rarity.abbr ) or ''
return getMedium( frame ).abbr or ''
 
 
end
 
end
  
 
function D.vg( frame )
 
function D.vg( frame )
local full = UTIL.trim( frame:getParent().args[ 'full' ] )
+
local full = UTIL.trim( getArg( frame, 'full' ) )
 +
 
 +
local link = UTIL.trim( getArg( frame, 'link' ) )
  
local link = UTIL.trim( frame:getParent().args[ 'link' ] )
+
local game = getVideoGameName( frame )
  
local game = getVideoGame( frame )
 
 
 
return full
 
return full
 
and ( link and game.full or UTIL.removeDab( game.full or '' ) )
 
and ( link and game.full or UTIL.removeDab( game.full or '' ) )
 
or game.abbr
 
or game.abbr
 +
end
 +
 +
function D.name( frame )
 +
local pagename = ( getArg( frame, 1 ) or '' ):gsub( '#', '' )
 +
 +
local language = DATA.getLanguage(
 +
UTIL.trim( getArg( frame, 2 ) ) or 'en'
 +
)
 +
 +
return language and DATA.getName( pagename, language )
 +
end
 +
 +
D['translated name'] = function( frame )
 +
local pagename = ( getArg( frame, 1 ) or '' ):gsub( '#', '' )
 +
 +
local language = DATA.getLanguage(
 +
UTIL.trim( getArg( frame, 2 ) ) or 'en'
 +
)
 +
 +
return language and DATA.getTranslatedName( pagename, language )
 
end
 
end
  
 
return D
 
return D
 
-- </pre>
 
-- </pre>

Latest revision as of 19:05, 15 March 2023

-- <pre>
--[=[Doc
@module Data/Templates
@description Interface for template interaction.
@author [[User:Becasita]]
@contact [[User talk:Becasita]]
]=]

local DATA = require( 'Module:Data' )
local UTIL = require( 'Module:Util' )

local function getArg( frame, index )
	return frame:getParent().args[ index ]
end

local function getRegion( frame )
	return DATA.getRegion( getArg( frame, 1 ) ) or {}
end

local function getLanguage( frame )
	return DATA.getLanguage( getArg( frame, 1 ) ) or {}
end

local function getMedium( frame )
	return DATA.getMedium( getArg( frame, 1 ) ) or {}
end

local function getRarity( frame )
	return DATA.getRarity( getArg( frame, 1 ) ) or {}
end

local function getVideoGameName( frame )
	return DATA.videoGames.getName( getArg( frame, 1 ) ) or {}
end

---------------------
-- Wikitext interface
---------------------

local D = {}

function D.rg( frame )
	return getRegion( frame ).index or ''
end

function D.region( frame )
	--[[
		short
		short2
		oceanic
		english
		after
		after2
	]]
	return getRegion( frame ).full or ''
end

function D.ln( frame )
	return getLanguage( frame ).index or ''
end

function D.lang( frame )
	return getLanguage( frame ).full or ''
end

function D.rgo( frame )
	return getMedium( frame ).abbr or ''
end

function D.rarity( frame )
	local full = UTIL.trim( getArg( frame, 'full' ) )

	local rarity = getRarity( frame )

	return ( full and rarity.full or rarity.abbr ) or ''
end

function D.vg( frame )
	local full = UTIL.trim( getArg( frame, 'full' ) )

	local link = UTIL.trim( getArg( frame, 'link' ) )

	local game = getVideoGameName( frame )

	return full
		and ( link and game.full or UTIL.removeDab( game.full or '' ) )
		or game.abbr
end

function D.name( frame )
	local pagename = ( getArg( frame, 1 ) or '' ):gsub( '#', '' )

	local language = DATA.getLanguage(
		UTIL.trim( getArg( frame, 2 ) ) or 'en'
	)

	return language and DATA.getName( pagename, language )
end

D['translated name'] = function( frame )
	local pagename = ( getArg( frame, 1 ) or '' ):gsub( '#', '' )

	local language = DATA.getLanguage(
		UTIL.trim( getArg( frame, 2 ) ) or 'en'
	)

	return language and DATA.getTranslatedName( pagename, language )
end

return D
-- </pre>