Módulu:ClasificaciónVX
La documentación pa esti módulu pue crease en 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:PEGI 3.svg|20px]]',
['3+'] = '[[Ficheru:PEGI 3.svg|20px]]',
['+3'] = '[[Ficheru:Newpegi 3.svg|20px]]',
['4'] = '[[Ficheru:Newpegi 4+.svg|20px]]',
['6'] = '[[Ficheru:Newpegi 6+.svg|20px]]',
['7'] = '[[Ficheru:PEGI 7.svg|20px]]',
['7+'] = '[[Ficheru:PEGI 7.svg|20px]]',
['+7'] = '[[Ficheru:PEGI 7.svg|20px]]',
['12'] = '[[Ficheru:PEGI 12.svg|20px]]',
['12+'] = '[[Ficheru:PEGI 12.svg|20px]]',
['+12'] = '[[Ficheru:PEGI 12.svg|20px]]',
['16'] = '[[Ficheru:PEGI 16.svg|20px]]',
['16+'] = '[[Ficheru:PEGI 16.svg|20px]]',
['+16'] = '[[Ficheru:PEGI 16.svg|20px]]',
['18'] = '[[Ficheru:PEGI 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