Módulo:Ficha de país en los Juegos Olímpicos

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]


Esta implementación basada en Lua pretende reemplazar la actual implementación de {{Ficha de país en los Juegos Olímpicos}}, obteniendo la mayor proporción de datos desde Wikidata. El módulo asociado se encuentra en desarrollo.

Ejemplos

República Popular China en los Juegos Olímpicos

Actual
República Popular China en los Juegos Olímpicos

Código COI CHN
CON Comité Olímpico Chino
(pág. web)
Medallas
Oro
264
Plata
231
Bronce
197
Total
712
Historia olímpica
Juegos de verano 1952 • 1956 • 1960 • 1964 • 1968 • 1972 • 1976 • 1980 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020 • 2024 •
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014 • 2018 • 2022 •
Otras apariciones Bandera de la República de China República de China (1932-1948)
Propuesta
República Popular China en los Juegos Olímpicos

Código COI CHN
CON Comité Olímpico Chino
Medallas
Oro
264
Plata
231
Bronce
197
Total
692
historia olímpica
Juegos de verano 1952 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014

República Popular China en los Juegos Olímpicos de Río de Janeiro 2016

Actual
República Popular China en los Juegos Olímpicos

Código COI CHN
CON Comité Olímpico Chino
(pág. web)
Juegos Olímpicos de Río de Janeiro 2016
Deportistas 392 en 32 deportes
Abanderado Lei Sheng
Medallas
Puesto: 3
Oro
26
Plata
18
Bronce
26
Total
70
Historia olímpica
Juegos de verano 1952 • 1956 • 1960 • 1964 • 1968 • 1972 • 1976 • 1980 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020 • 2024 •
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014 • 2018 • 2022 •
Otras apariciones Bandera de la República de China República de China (1932-1948)
Propuesta
República Popular China en los Juegos Olímpicos

Código COI CHN
CON Comité Olímpico Chino
Juegos Olímpicos de Río de Janeiro 2016
Medallero
Oro
26
Plata
18
Bronce
26
Total
70
historia olímpica
Juegos de verano 1952 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014

República Popular China en los Juegos Paralímpicos

Actual
República Popular China en los Juegos Paralímpicos

Código CPI CHN
CPN Comité Paralímpico Nacional de China
Medallas
Oro
548
Plata
419
Bronce
324
Total
1291
Historia paralímpica
Juegos de verano 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020 •
Juegos de invierno 2002 • 2006 • 2010 • 2014 • 2018 • 2022 •
Propuesta
República Popular China en los Juegos Paralímpicos

Código CPI CHN
CPN Comité Paralímpico Nacional de China
Medallas
Oro
0
Plata
0
Bronce
0
Total
0
historia paralímpica
Juegos de verano 1952 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014

República Popular China en los Juegos Paralímpicos de Tokio 2020

Actual
República Popular China en los Juegos Paralímpicos

Código CPI CHN
CPN Comité Paralímpico Nacional de China
Juegos Paralímpicos de Tokio 2020
Deportistas 248
Medallas
Oro
96
Plata
60
Bronce
51
Total
207
Historia paralímpica
Juegos de verano 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020 •
Juegos de invierno 2002 • 2006 • 2010 • 2014 • 2018 • 2022 •
Propuesta
República Popular China en los Juegos Paralímpicos

Código CPI CHN
CPN Comité Olímpico Chino
Juegos Paralímpicos de Tokio 2020
Medallero
Oro
0
Plata
0
Bronce
0
Total
0
historia paralímpica
Juegos de verano 1952 • 1984 • 1988 • 1992 • 1996 • 2000 • 2004 • 2008 • 2012 • 2016 • 2020
Juegos de invierno 1980 • 1984 • 1988 • 1992 • 1994 • 1998 • 2002 • 2006 • 2010 • 2014

Esta documentación está transcluida desde Módulo:Ficha de país en los Juegos Olímpicos/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 p = {}

local ModuloWikidata	= require('Módulo:Wikidata')
local ModuloFormatos	= require('Módulo:Wikidata/Formatos')
local ModuloPaginas		= require('Módulo:Páginas')
local ModuloArgs   		= require('Módulo:Argumentos')
local infobox			= require('Módulo:Ficha').infobox
local elementoTabla		= require('Módulo:Tablas').elemento
local obtenerIdioma		= require('Módulo:Obtener idioma').obtenerIdioma
local enlazar			= require('Módulo:Formato_texto').enlazar2
local propiedad			= ModuloWikidata.propiedad
local argumentos		= ModuloArgs.obtenerValorDeArgumentos
local formatoNumero		= ModuloFormatos.formatoNumero2
local numeroUnidad		= ModuloFormatos.formatoUnidad2

-- :: Estilos por defecto
local ClaseTitulo		= 'deporte'
local ColorTitulo		= '#ccf'
local EstiloEtiqueta	= 'background: #ddf;width:30%;'

function p.ficha(frame)
	ModuloWikidata:setFrame(frame)
	ModuloArgs.obtenerTablaDeArgumentos(frame)
	
	local Participaciones, DatosCOI

	local Entidad		= mw.wikibase.getEntity(argumentos{'id'}) or {}

	local PaisID		= elementoTabla(Entidad, 'claims', 'P17', 1, 'mainsnak', 'datavalue', 'value', 'id')
	local InstanciaDeId	= elementoTabla(Entidad, 'claims', 'P31', 1, 'mainsnak', 'datavalue', 'value', 'id')
	local Juegos		= argumentos{'juegos', {elementoTabla, Entidad, 'claims', 'P17', 1, 'mainsnak', 'datavalue', 'value', 'id'}}
	
	if InstanciaDeId == 'Q3327913' or InstanciaDeId == 'Q3317976' or InstanciaDeId == 'Q46195901' then
		-- DatosCOI = mw.loadData('Módulo:Ficha de país en los Juegos Paralímpicos/datos')
		Participaciones = mw.loadData('Módulo:Ficha de país en los Juegos Olímpicos/Juegos Olímpicos/participaciones')
	else
		-- DatosCOI = mw.loadData('Módulo:Ficha de país en los Juegos Olímpicos/datos')
		Participaciones = mw.loadData('Módulo:Ficha de país en los Juegos Olímpicos/Juegos Olímpicos/participaciones')	
	end
	
	local ClaseEvento	= (function()
		if InstanciaDeId == 'Q46195901' then return {'Juegos Paralímpicos', 'historia paralímpica', '[[Anexo:Códigos_del_COI|Código CPI]]', '[[Comité_Paralímpico_Nacional|CPN]]'} end
		return {'Juegos Olímpicos', 'historia olímpica', '[[Anexo:Códigos_del_COI|Código COI]]', '[[Comité_olímpico_nacional|CON]]'}
	end)()
	
	local COI		= (function()
		local COI = argumentos{'COI', 'CNO', 'CPN'}
		if PaisID then return propiedad(mw.wikibase.getEntity(PaisID), 'P984', {['uno'] = 'sí'}) end
	end)()
		
	local Pais = (function()
--		if DatosCOI[COI] then
--			if DatosCOI[COI][Juegos] then
--				return DatosCOI[COI][Juegos][1]
--			end
--		end
		return mw.wikibase.sitelink(PaisID) or mw.wikibase.label(PaisID)
	end)()
		
	local PaisTitulo		= mw.ustring.gsub(Pais, '%s%(.*%)', '') .. ' en los ' .. ClaseEvento[1];
	local PaisEnlace		= enlazar(Pais, mw.ustring.gsub(Pais, '%s%(.*%)', ''))

	local Comite = (function()
--		if DatosCOI[COI] then
--			if DatosCOI[COI][Juegos] then
--				return DatosCOI[COI][Juegos][2]
--			end
--		end
		-- Propiedad propuesta en Wikidata
		return argumentos{'nombreCOI', {propiedad, Entidad, 'PXXX', {['uno'] = 'sí'}}}
	end)()

	local Bandera = (function()
--		if DatosCOI[COI] then
--			if DatosCOI[COI][Juegos] then
--				return DatosCOI[COI][Juegos][3]
--			end
--		end
		return ModuloWikidata.obtenerImagenWikidata(Entidad, 'P41') or ModuloWikidata.obtenerImagenWikidata(mw.wikibase.getEntity(PaisID), 'P41')
	end)()

	local Pie	= enlazar('Bandera de ' .. mw.ustring.gsub(Pais, '%s%(.*%)', ''))
	
	local Evento			= propiedad(Entidad, 'P1344', {['enlace'] = 'no', {['uno'] = 'sí'}})

	local DeportistasEtiqueta = ''
		if Pais then DeportistasEtiqueta = enlazar('Categoría:Deportistas olímpicos de ' .. mw.ustring.gsub(Pais, '%s%(.*%)', ''), {['namespace'] = 14, ['etiqueta'] = 'Deportistas', ['solotexto'] = true}) end
	local Atletas		= argumentos{'atletas'}
		if Atletas and argumentos{'deportes'} then Atletas = Atletas .. ' en ' .. argumentos{'deportes'} .. ' deportes' end
	local Abanderado	= argumentos{'portador bandera', 'portador_bandera', {propiedad, 'P3022'}}
	local MedallasEtiq	= 'Medallas'
		local Puesto		=  argumentos{'puesto', 'rank', {'propiedad', 'P1352'}}
			if Evento then MedallasEtiq = enlazar('Anexo:Medallero de los ' .. Evento, 'Medallero') end
			if Puesto then MedallasEtiq = MedallasEtiq .. '<br>Puesto: ' .. Puesto end

	local tablaMedallas = {}
		local Medallas = {}
		local Obj = elementoTabla(Entidad, 'claims', 'P166')
		if Obj then
			for k, v in pairs(Obj) do
				Premio		= elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id')
				Cantidad	= tonumber(elementoTabla(v, 'qualifiers', 'P1114', 1, 'datavalue', 'value', 'amount')) or 0
				if Cantidad then Medallas[Premio] = Cantidad end
			end
		end
		local Oro	= tonumber(Medallas['Q15243387']) or tonumber(Medallas['Q15243424']) or tonumber(argumentos{'oro'}) or 0
		local Plata	= tonumber(Medallas['Q15889641']) or tonumber(Medallas['Q15243447']) or tonumber(argumentos{'plata'}) or 0
		local Bronce= tonumber(Medallas['Q15889643']) or tonumber(Medallas['Q15243454']) or tonumber(argumentos{'bronce'}) or 0
		table.insert(tablaMedallas, '<table>')
		table.insert(tablaMedallas, '<td style="background:gold; width:4em; text-align:center;">[[Archivo:Gold medal.svg|20px|link=|Oro]]<br><span style="font-size:125%;">' .. Oro .. '</span></td>')
		table.insert(tablaMedallas, '<td style="background:silver; width:4em; text-align:center;">[[Archivo:Silver medal.svg|20px|link=|Plata]]<br><span style="font-size:125%;">' .. Plata .. '</span></td>')
		table.insert(tablaMedallas, '<td style="background:#cc9966; width:4em; text-align:center;">[[Archivo:Bronze medal.svg|20px|link=|Bronce]]<br><span style="font-size:125%;">' .. Bronce .. '</span></td>')
		table.insert(tablaMedallas, '<td style="width:4em; text-align:center; border-top:1px solid #aaa">[[Archivo:GoldSilverBronze medals.svg|link=|40px|Total]]<br><span style="font-size:125%;">' .. Oro + Plata + Bronce .. '</span></td>')
		table.insert(tablaMedallas, '</table>')
		tablaMedallas = table.concat(tablaMedallas)

		local JuegosVerano, JuegosInvierno
		if PaisID then
			
			local JuegosVeranoDatos = Participaciones[PaisID][0]
			JuegosVerano_	= {}
			JuegosVerano	= {}
			
			-- Generar una nueva tabla a partir de la tabla de solo lectura
			for k, v in pairs(JuegosVeranoDatos) do
				JuegosVerano_[k] = v
			end

			-- Ordenar la tabla intermedia y llenar la tabla final
			for k, v in orderedPairs(JuegosVerano_) do
				table.insert(JuegosVerano, v)
			end
			
			local JuegosInviernoDatos = Participaciones[PaisID][1]
			JuegosInvierno_	= {}
			JuegosInvierno	= {}
			
			-- Generar una nueva tabla a partir de la tabla de solo lectura
			for k, v in pairs(JuegosInviernoDatos) do
				JuegosInvierno_[k] = v
			end

			-- Ordenar la tabla intermedia y llenar la tabla final
			for k, v in orderedPairs(JuegosInvierno_) do
				table.insert(JuegosInvierno, v)
			end
			
			local OtrasApariciones = (function()
				if COI then
					if InstanciaDeId == 'Q3327913' or InstanciaDeId == 'Q3317976' or InstanciaDeId == 'Q46195901' then
						return frame:preprocess('{{Ficha de país en los Juegos Paralímpicos/otras|{{{' .. COI .. '|}}}}}')
					else
						return frame:preprocess('{{Ficha de país en los Juegos Olímpicos/otras|{{{' .. COI .. '|}}}}}')
					end
				end
			end)()

			JuegosVerano	= table.concat(JuegosVerano, '&nbsp;• ')
			JuegosInvierno	= table.concat(JuegosInvierno, '&nbsp;• ')
			--OtrasApariciones= table.concat(OtrasApariciones, '&nbsp;• ')
		end

	local TablaFicha = {
		titulo  			= PaisTitulo,
		clasetitulo			= ClaseTitulo,
		colorfondotitulo	= ColorTitulo,
		estiloetiqueta		= EstiloEtiqueta,
		estiloseccion		= EstiloEtiqueta,
		imagen				= Bandera,
		["tamañoimagen"]	= TamanoImagen,
		pie					= Pie,
		estilopie			= "font-size:88%",

		-- :: General
		{tipo="sección",
			estilodatos		= 'font-size:120%; font-weight:bold',
			{ClaseEvento[3], COI},
		},
		{tipo="sección",
			{ClaseEvento[4], Comite},
		},
		{tipo	= 'sección',
			titulo	= enlazar(Evento),
			{DeportistasEtiqueta, Atletas},
			{MedallasEtiq, tablaMedallas}
		},
		{tipo='sección',
			titulo = enlazar(PaisTitulo, ClaseEvento[2]),
			{enlazar('Juegos_Olímpicos_de_Verano', 'Juegos de verano'), JuegosVerano},
			{enlazar('Juegos_Olímpicos_de_Invierno', 'Juegos de invierno'), JuegosInvierno},
			{'Otras apaciciones', OtrasApariciones},
		}
	}
	
	return require('Módulo:Ficha').infobox(TablaFicha)

end

return p