Módulo:Clasificaciónvj

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
Icono de documentación de módulo Documentación del módulo[ver] [editar] [historial] [purgar]

A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]


Uso


Esta documentación está transcluida desde Módulo:Clasificaciónvj/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
local z = {}

local argumentos    -- Tabla de argumentos con los que se llama a la función 
local argumento={}  -- Argumentos eliminando los argumentos sin datos
local Entidad       -- Tabla con los datos en Wikidata del libro.
local algunaPropiedadEnlazaWikidata
local ModuloArgumentos       = require('Módulo:Argumentos')
local ModuloWikidata         = require('Módulo:Wikidata')

local enVariasLineas = require('Módulo:Formato texto').enVariasLineas

--::Constantes

local imagenesPEGI = {
	['3']	= '[[Archivo:Newpegi 3.svg|20px|PEGI 3|link=]]',
	['4']	= '[[Archivo:Newpegi 4+.svg|20px|PEGI 4+|link=]]',
	['6']	= '[[Archivo:Newpegi 6+.svg|20px|PEGI 6+|link=]]',	
	['7']	= '[[Archivo:Newpegi 7.svg|20px|PEGI 7|link=]]',
	['12']	= '[[Archivo:Newpegi 12.svg|20px|PEGI 12|link=]]',
	['16']	= '[[Archivo:Newpegi 16.svg|20px|PEGI 16|link=]]',		
	['18']	= '[[Archivo:Newpegi 18.svg|20px|PEGI 18|link=]]',
}

--::Cargar imágenes en base a la clasificación

local imagenesESRB = {
	['RP']			= '[[Archivo:ESRB 2013 Rating Pending.svg|20px|Pendiente de clasificación|link=]]',
	['Rate Pending']	= '[[Archivo:ESRB 2013 Rating Pending.svg|20pxPendiente de clasificación|link=]]',
	['Pendiente']		= '[[Archivo:ESRB 2013 Rating Pending.svg|20pxPendiente de clasificación|link=]]',

	['EC']			= '[[Archivo:ESRB 2013 Early Childhood.svg|20px|Niños pequeños|link=]]',

	['K-A']			= '[[Archivo:ESRB - K-Av2.svg|20px|Kids to Adults|link=]]',
	['Kids to Adults']	= '[[Archivo:ESRB - K-Av2.svg|20px|Kids to Adults|link=]]',

	['E']			= '[[Archivo:ESRB 2013 Everyone.svg|20px|Todos|link=]]',
	['Todos']		= '[[Archivo:ESRB 2013 Everyone.svg|20px|Todos|link=]]',
	['Everyone']		= '[[Archivo:ESRB 2013 Everyone.svg|20px|Todos|link=]]',

	['E10']			= '[[Archivo:ESRB 2013 Everyone 10+.svg|20px|Todos +10|link=]]',
	['Todos +10']		= '[[Archivo:ESRB 2013 Everyone 10+.svg|20px|Todos +10|link=]]',
	['Everyone 10+']	= '[[Archivo:ESRB 2013 Everyone 10+.svg|20px|Todos +10|link=]]',

	['T']			= '[[Archivo:ESRB 2013 Teen.svg|20px|Adolescentes|link=]]',
	['Adolescentes']	= '[[Archivo:ESRB 2013 Teen.svg|20px|Adolescentes|link=]]',
	['Teen']		= '[[Archivo:ESRB 2013 Teen.svg|20px|Adolescentes|link=]]',

	['M']			= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',
	['M+17']		= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',
	['Maduro']		= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',
	['Mature']		= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',
	['Maduro +17']	= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',
	['Mature 17+']	= '[[Archivo:ESRB 2013 Mature.svg|20px|Maduro|link=]]',

	['AO']			= '[[Archivo:ESRB 2013 Adults Only.svg|20px|Sólo adultos|link=]]',
	['Adultos']		= '[[Archivo:ESRB 2013 Adults Only.svg|20px|Sólo adultos|link=]]',
	['Adult Only']		= '[[Archivo:ESRB 2013 Adults Only.svg|20px|Sólo adultos|link=]]',

}

local imagenesCERO = {
	['SY']			= '[[Archivo:CERO Shin Sa Yo Tei.svg|20px|CERO Shin Sa Yo Tei|link=]]',
	['RP']			= '[[Archivo:CERO Shin Sa Yo Tei.svg|20px|CERO Shin Sa Yo Tei|link=]]',
	['KD']			= '[[Archivo:CERO Kyouiku Deitabeisu.svg|20px|CERO Kyouiku Deitabeisu|link=]]',
	['A']			= '[[Archivo:CERO A.svg|20px|CERO A|link=]]',
	['B']			= '[[Archivo:CERO B.svg|20px|CERO B|link=]]',
	['C']			= '[[Archivo:CERO C.svg|20px|CERO C|link=]]',
	['D']			= '[[Archivo:CERO D.svg|20px|CERO D|link=]]',
	['Z']			= '[[Archivo:CERO Z.svg|20px|CERO Z|link=]]',
	['KT']			= '[[Archivo:CERO Kitei Teikikou.svg|20px|CERO Kitei Teikikou|link=]]',
}

local imagenesUSK = {
	['RP']			= '[[Archivo:USK - Rating pending.svg|20px|USK Rating pending|link=]]',
	['EA']			= '[[Archivo:USK - Rating pending.svg|20px|USK Rating pending.svg|link=]]',
	['0']			= '[[Archivo:Usk white.png|20px|USK 0|link=]]',
	['6']			= '[[Archivo:USK6 neu2.svg|20px|USK 6|link=]]',
	['12']			= '[[Archivo:USK12 neu2.svg|20px|USK 12|link=]]',
	['16']			= '[[Archivo:USK16 neu2.svg|20px|USK 16|link=]]',
	['18']			= '[[Archivo:USK18 neu2.svg|20px|USK 18|link=]]',
}

local imagenesIFCO = {
	['G']			= '[[Archivo:General home video.png|20px|IFCO G|link=]]',
	['PG']			= '[[Archivo:PG home video.png|20px|IFCO PG|link=]]',
	['12']			= '[[Archivo:12 home video.png|20px|IFCO 12|link=]]',
	['15']			= '[[Archivo:15 home video.png|20px|IFCO 15|link=]]',
	['18']			= '[[Archivo:18 home video.png|20px|IFCO 18|link=]]',
}

local imagenesBBFC = {
	['U']			= '[[Archivo:BBFC U 150px-height.png|20px|BBFC U|link=]]',
	['PG']			= '[[Archivo:BBFC PG 150px-height 0.png|20px|BBFC PG|link=]]',
	['12']			= '[[Archivo:BBFC 12 150px-height 0.png|20px|BBFC 12|link=]]',
	['12A']			= '[[Archivo:BBFC_12A_150px-height_0.png|20px|BBFC 12|link=]]',	
	['15']			= '[[Archivo:BBFC 15.svg|22px|BBFC 15|link=]]',
	['18']			= '[[Archivo:BBFC 18 150px-height 0.png|20px|BBFC 18|link=]]',
}

local imagenesOFLC = {
	['E']			= '[[Archivo:OFLC small E.svg|20px|OFLC E|link=]]',
	['G']			= '[[Archivo:Australian OFLC G tag logo.svg|20px|OFLC G|link=]]',
	['PG']			= '[[Archivo:PG classification tag from OFLC.svg|20px|OFLC PG|link=]]',
	['M']			= '[[Archivo:Australian OFLC M logo.svg|20px|OFLC M|link=]]',
	['MA']			= '[[Archivo:MA 15+ classification tag from OFLC.svg|20px|OFLC MA|link=]]',
	['R']			= '[[Archivo:OFLC small R18+.svg|20px|OFLC R|link=]]',
	['X']			= '[[Archivo:OFLC X 18 classification tag.svg|20px|OFLC X|link=]]',
}

local imagenesBARS = {
	['L']			= '[[Archivo:DJCTQ - L.svg|20px|BARS L|link=]]',
	['10']			= '[[Archivo:DJCTQ - 10.svg|20px|BARS 10|link=]]',
	['12']			= '[[Archivo:DJCTQ - 12.svg|20px|BARS 12|link=]]',
	['14']			= '[[Archivo:DJCTQ - 14.svg|20px|BARS 14|link=]]',
	['16']			= '[[Archivo:DJCTQ - 16.svg|20px|BARS 16|link=]]',
	['18']			= '[[Archivo:DJCTQ - 18.svg|20px|BARS 18|link=]]',
}

local imagenesRARS = {
	['0']			= '[[Archivo:RARS rating 0+.svg|19px|RARS 0|link=]]',
	['6']			= '[[Archivo:RARS rating 6+.svg|19px|RARS 6|link=]]',
	['12']			= '[[Archivo:RARS rating 12+.svg|19px|RARS 12|link=]]',
	['16']			= '[[Archivo:RARS rating 16+.svg|19px|RARS 16|link=]]',
	['18']			= '[[Archivo:RARS rating 18+.svg|19px|RARS 18|link=]]',
}

local imagenesGRAC = {
	['T']			= '[[Archivo:GRB Test.svg|19px|GRAC T|link=]]',
	['All']			= '[[Archivo:GRB ALL.svg|19px|GRAC Todos|link=]]',
	['12']			= '[[Archivo:GRB 12.svg|19px|GRAC 12|link=]]',
	['15']			= '[[Archivo:GRB 15.svg|19px|GRAC 15|link=]]',
	['18']			= '[[Archivo:GRB 18.svg|19px|GRAC 18|link=]]',
}

local imagenesGSRR = {
	['G']			= '[[Archivo:GSRR G logo.svg|20px|GSRR G|link=]]',
	['6']			= '[[Archivo:GSRR P logo.svg|20px|GSRR 6|link=]]',
	['12']			= '[[Archivo:GSRR PG 12 logo.svg|20px|GSRR 12|link=]]',
	['15']			= '[[Archivo:GSRR PG 15 logo.svg|20px|GSRR 15|link=]]',
	['18']			= '[[Archivo:GSRR R logo.svg|20px|GSRR 18|link=]]',
}

local imagenesApple = {
	['4']			= '[[Archivo:Apple rating 4+.svg|24px|Apple 4|link=]]',
	['9']			= '[[Archivo:Apple rating 9+.svg|24px|Apple 9|link=]]',
	['12']			= '[[Archivo:Apple rating 12+.svg|30px|Apple 12|link=]]',
	['17']			= '[[Archivo:Apple rating 17+.svg|30px|Apple 17|link=]]',
}

function z.main(frame)
	ModuloWikidata:setFrame(frame)
	local argumento = ModuloArgumentos.obtenerArgumentosConValor(frame)
	Entidad         = mw.wikibase.getEntityObject() or {}


--::Valores con dato disponible en Wikidata

--CERO
	if propiedad('P853') then
		CERO = ((propiedad('P853', {uno='sí'})) ):sub(1,1)
	else
		CERO = argumento['CERO']
	end

--ESRB
	if propiedad('P852') then
		ESRB = ((propiedad('P852', {uno='sí'})) ):sub(1)
	else
		ESRB = argumento ['ESRB']
	end
 
--USK
	if propiedad('P914') then
		USK = (propiedad('P914', {uno='sí'})):sub(5,6)
	else
		USK = argumento ['USK']
	end

--PEGI
	if propiedad('P908') then
		PEGI = (propiedad('P908', {uno='sí'})):sub(6)
	else
		BBFC = argumento ['BBFC']
	end

--BBFC
	if propiedad('P2629') then
		BBFC = (propiedad('P2629', {uno='sí'})):sub(13)
	else
		BBFC = argumento['BBFC']
	end

--::Valores sin dato disponible en Wikidata
	OFLC	= argumento ['OFLC']
	BARS	= argumento ['BARS']
	Apple	= argumento ['Apple']
	GRAC	= argumento ['GRAC']
	RARS	= argumento ['RARS']
	GSRR	= argumento ['GSRR']
	IFCO	= argumento ['IFCO']

--::/Valores
		
	return enVariasLineas({
		evaluar('PEGI', PEGI , imagenesPEGI),
		evaluar('ESRB', ESRB, imagenesESRB),
		evaluar('CERO', CERO, imagenesCERO),
		evaluar('Unterhaltungssoftware Selbstkontrolle|USK', USK, imagenesUSK),
		evaluar('IFCO', IFCO, imagenesIFCO),
		evaluar('BBFC', BBFC, imagenesBBFC),
		evaluar('OFLC', OFLC, imagenesOFLC),
		evaluar('BARS', BARS, imagenesBARS),
		evaluar('RARS', RARS, imagenesRARS),
		evaluar('GRAC', GRAC, imagenesGRAC),
		evaluar('GSRR', GSRR, imagenesGSRR),
		evaluar('App Store|Apple', Apple, imagenesApple)
		})
end

function evaluar(literal, valor, imagenes, nota)
	if not valor or valor == '' or valor == nil then
		return ''
	end
	
	local imagen
	
	if imagenes then
		imagen = imagenes[valor]
	end
	
	if imagen and nota then
		return  '<b>  [[' .. literal .. ']] </b>' .. imagen .. '<small>' .. nota .. '</small>'
	elseif imagen then
		return '<b>  [[' .. literal .. ']] </b>' .. imagen
	else
		return '<b>  [[' .. literal .. ']] </b>' .. valor
	end
end

function propiedad(idPropiedad,opciones)
    if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
    	if not opciones then
    		opciones = {}
    	end
    	opciones['propiedad'] = idPropiedad

        valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])

        if valorPropiedad and valorPropiedad:match('%[%[:d:') then
          algunaPropiedadEnlazaWikidata = true
        end

    	return valorPropiedad
    end
end

return z