Módulu:ClasificaciónVX

De Wikipedia
Saltar a: navegación, buscar

La documentación pa esti módulu pue crease'n Módulu:ClasificaciónVX/usu

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ódulu:Argumentos')
local ModuloWikidata         = require('Módulu:Wikidata')

local enVariasLineas = require('Módulu:Formatu testu').enVariasLineas

-- Constantes

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

local imagenesESRB = {
	['RP']               = '[[Ficheru:ESRB 2013 Rating Pending.png|20px]]',
	['Rating Pending']   = '[[Ficheru:ESRB 2013 Rating Pending.png|20px]]',
	['EC']               = '[[Ficheru:ESRB 2013 Early Childhood.png|20px]]',
	['Early Childhood']  = '[[Ficheru:ESRB 2013 Early Childhood.png|20px]]',
	['E']                = '[[Ficheru:ESRB 2013 Everyone.svg|20px]]',
	['Everyone']         = '[[Ficheru:ESRB 2013 Everyone.svg|20px]]',	
	['10+']              = '[[Ficheru:ESRB 2013 Everyone 10+.svg|20px]]',
	['E10+']             = '[[Ficheru:ESRB 2013 Everyone 10+.svg|20px]]',
	['+10']              = '[[Ficheru:ESRB 2013 Everyone 10+.svg|20px]]',
	['Everyone 10+']     = '[[Ficheru:ESRB 2013 Everyone 10+.svg|20px]]',	
	['T']                = '[[Ficheru:ESRB 2013 Teen.svg|20px]]',
	['Teen']             = '[[Ficheru:ESRB 2013 Teen.svg|20px]]',
	['M']                = '[[Ficheru:ESRB 2013 Mature.svg|20px]]',
	['M17+']             = '[[Ficheru:ESRB 2013 Mature.svg|20px]]',
	['17+']              = '[[Ficheru:ESRB 2013 Mature.svg|20px]]',
	['+17']              = '[[Ficheru:ESRB 2013 Mature.svg|20px]]',
	['Mature 17+']       = '[[Ficheru:ESRB 2013 Mature.svg|20px]]',
	['A0']               = '[[Ficheru:ESRB 2013 Adults Only.png|20px]]',
	['Adults Only 18+']  = '[[Ficheru:ESRB 2013 Adults Only.png|20px]]',
	['Adults Only']      = '[[Ficheru:ESRB 2013 Adults Only.png|20px]]',
	['K-A']              = '[[Ficheru:ESRB_-_K-Av2.svg|20px]]',	
	['Kids to Adults']   = '[[Ficheru:ESRB_-_K-Av2.svg|20px]]',	
}

local imagenesCERO = {
	['RP']                = '[[Ficheru:CERO Shin Sa Yo Tei.svg|20px]]',
	['Rating Pending']    = '[[Ficheru:CERO Shin Sa Yo Tei.svg|20px]]',
	['Demo']              = '[[Ficheru:CERO Kitei Teikikou.svg|20px]]',
	['DB']                = '[[Ficheru:CERO Kyouiku Deitabeisu.svg|20px]]',
	['3']                 = '[[Ficheru:CERO Kyouiku Deitabeisu.svg|20px]]',
	['A']                 = '[[Ficheru:CERO A.svg|20px]]',
	['Sin restricciones'] = '[[Ficheru:CERO A.svg|20px]]',
	['FREE']              = '[[Ficheru:CERO A.svg|20px]]',
	['ALL']               = '[[Ficheru:CERO A.svg|20px]]',
	['free']              = '[[Ficheru:CERO A.svg|20px]]',
	['B']                 = '[[Ficheru:CERO B.svg|20px]]',
	['12']                = '[[Ficheru:CERO B.svg|20px]]',
	['C']                 = '[[Ficheru:CERO C.svg|20px]]',
	['15']                = '[[Ficheru:CERO C.svg|20px]]',
	['D']                 = '[[Ficheru:CERO D.svg|20px]]',
	['17+']               = '[[Ficheru:CERO D.svg|20px]]',
	['+17']               = '[[Ficheru:CERO D.svg|20px]]',
	['Z']                 = '[[Ficheru:CERO Z.svg|20px]]',
	['18']                = '[[Ficheru:CERO Z.svg|20px]]',
}

local imagenesUSK = {
	['0']   = '[[Ficheiro:USK0 neu2.svg|15px]]',
	['6']   = '[[Ficheiro:USK6 neu2.svg|15px]]',
	['12']  = '[[Ficheiro:USK12 neu2.svg|15px]]',
	['16']  = '[[Ficheiro:USK16 neu2.svg|15px]]',
	['18']  = '[[Ficheiro:USK18 neu2.svg|15px]]',
}

function z.main(frame)
	ModuloWikidata:setFrame(frame)
	local argumento = ModuloArgumentos.obtenerArgumentosConValor(frame)
	Entidad         = mw.wikibase.getEntityObject() or {}
	if propiedad('P853') then
	  CERO = ((propiedad('P853', {uno='sí'})) ):sub(1,1)
	else
	  CERO=argumento['CERO']
  end
 
	BBFC = argumento['BBFC']
	ELSPA = argumento ['ELSPA']
	if propiedad('P914') then
	USK = (propiedad('P914', {uno='sí'})):sub(5,6)
		else
			USK= argumento ['USK']
		end
	ESRB1     = propiedad('P852', {uno='sí'}) or argumento ['ESRB']
	ESRB2     = argumento ['ESRB2']
	notaESRB2 = argumento ['notaESRB2']
	OFLC      = argumento ['OFLC'] or argumento ['OFLCA'] or argumento ['OFLCZ']

 if propiedad('P908') then
	PEGI = (propiedad('P908', {uno='sí'})):sub(6)
		else
			PEGI=argumento['PEGI']
		end	
		
	return enVariasLineas({
		evaluar('PEGI', PEGI , imagenesPEGI),
		evaluar('ESRB', ESRB1, imagenesESRB),
		evaluar('ESRB', ESRB2, imagenesESRB, notaESRB2),
--		evaluar('BBFC', BBFC),
--		evaluar('OFLC', OFLC),
		evaluar('CERO', CERO, imagenesCERO),
--		evaluar('ELSPA', ELSPA),
		evaluar('Unterhaltungssoftware Selbstkontrolle|USK', USK),
		})
end

function evaluar(literal, valor, imagenes, nota)
	if not valor 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