Diferencia entre revisiones de «Módulo:Ficha de edificio»
Apariencia
Contenido eliminado Contenido añadido
corrijo |
Cambio pictograma de «comunicación» a «edificio»; y otros pequeños cambios de ortografía y estilo |
||
Línea 48: | Línea 48: | ||
valoraltura = (valoraltura * 929.0304)/10^4 |
valoraltura = (valoraltura * 929.0304)/10^4 |
||
end |
end |
||
return valoraltura .." |
return valoraltura .." [[metro cuadrado|".. "m²]]" |
||
end |
end |
||
Línea 139: | Línea 139: | ||
'220px', |
'220px', |
||
pie = pieDeImagen, |
pie = pieDeImagen, |
||
tipocabecera = ' |
tipocabecera = 'edificio', |
||
estilotitulo = estilotitulo, |
estilotitulo = estilotitulo, |
||
estiloseccion = estiloseccion, |
estiloseccion = estiloseccion, |
||
Línea 146: | Línea 146: | ||
{tipo = "sección", |
{tipo = "sección", |
||
['titulo'] = "Localización", |
['titulo'] = "Localización", |
||
{'País |
{'País', pais}, |
||
{tipodivadministrativa, divadministrativa}, |
{tipodivadministrativa, divadministrativa}, |
||
--{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})}, |
--{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})}, |
||
Línea 166: | Línea 166: | ||
{'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']}, |
{'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']}, |
||
{'Cruza',argumento['cruza'] or argumento['Cruza']}, |
{'Cruza',argumento['cruza'] or argumento['Cruza']}, |
||
{' |
{'Número de vanos', argumento['ojos'] or argumento['Ojos']}, |
||
{'Ocupante', argumento['ocupante'] or argumento['Ocupante']}, |
{'Ocupante', argumento['ocupante'] or argumento['Ocupante']}, |
||
{'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')}, |
{'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')}, |
||
Línea 186: | Línea 186: | ||
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')}, |
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')}, |
||
{'Primera piedra', primerapiedra }, |
{'Primera piedra', primerapiedra }, |
||
{' |
{'Antena', argumento['antena'] or argumento['Antena']}, |
||
{' |
{'Piso más alto', argumento['piso mas alto'] or argumento['Piso mas alto'] or propiedad('P1101')}, |
||
}, |
}, |
||
{tipo = "sección", |
{tipo = "sección", |
||
['titulo'] = "Altura", |
['titulo'] = "Altura", |
||
{' |
{'Altura arquitéctonica', argumento['altura arquitectonica'] or argumento['Altura arquitectonica'] or argumento['altura'] or argumento['Altura'] or devolveraltura(Entidad).altura}, |
||
{' |
{'Altura máxima', argumento['altura maxima'] or argumento['Altura maxima'] or devolveraltura(Entidad).alturamaxima}, |
||
}, |
}, |
||
{tipo="sección", |
{tipo="sección", |
||
Línea 202: | Línea 202: | ||
['titulo'] = "Detalles técnicos", |
['titulo'] = "Detalles técnicos", |
||
['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(), |
['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(), |
||
{' |
{'Superficie', argumento['superficie'] or argumento['Superficie'] or obtenerSuperficie()}, |
||
{' |
{'Número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')}, |
||
{' |
{'Número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')}, |
||
}, |
}, |
||
{tipo = "sección", |
{tipo = "sección", |
||
Línea 230: | Línea 230: | ||
["titulo"] = "Otra información", |
["titulo"] = "Otra información", |
||
--Bar o restaurante |
--Bar o restaurante |
||
{"Nº de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")}, |
{"N.º de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")}, |
||
{"Nº de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()}, |
{"N.º de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()}, |
||
--Hotel |
--Hotel |
||
{"Nº de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]}, |
{"N.º de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]}, |
||
{"Nº de suites", argumento["nro de suites"] or argumento["Nro de suites"]}, |
{"N.º de suites", argumento["nro de suites"] or argumento["Nro de suites"]}, |
||
{"Nº de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]}, |
{"N.º de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]}, |
||
{"Nº de bares", argumento["nro de bares"] or argumento["Nro de bares"]}, |
{"N.º de bares", argumento["nro de bares"] or argumento["Nro de bares"]}, |
||
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]}, |
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]}, |
||
--Edificios religiosos |
--Edificios religiosos |
||
Línea 430: | Línea 430: | ||
valoraltura = valoraltura * 0.3048 --pie a metro |
valoraltura = valoraltura * 0.3048 --pie a metro |
||
end |
end |
||
retorno.altura = tostring(valoraltura) .." |
retorno.altura = tostring(valoraltura) .." [[metro|m]]." |
||
end |
end |
||
if alturamaxima ~= nil then |
if alturamaxima ~= nil then |
||
Línea 437: | Línea 437: | ||
valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro |
valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro |
||
end |
end |
||
retorno.alturamaxima = tostring(valoralturamaxima) .." |
retorno.alturamaxima = tostring(valoralturamaxima) .." [[metro|m]]." |
||
end |
end |
||
Revisión del 19:08 25 may 2020
Este módulo no tiene página de documentación[crear]
local z = {}
local argumentos
local argumento={}
local Entidad
local ModuloFicha = require('Módulo:Ficha')
local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local formatoURL = ModuloWikidataFormatos.formatoURL
local sinEnlazar = {['enlace']='no', ['linkback']='sí'}
local sinLapiz = {}
local ModuloWikidata = require('Módulo:Wikidata')
local ModuloFormato = require('Módulo:Formato texto')
local ModuloPaginas = require('Módulo:Páginas')
local elementoTabla = require('Módulo:Tablas').elemento
local getPropiedadWikidata = ModuloWikidata.getPropiedad
local sinBandera = require('Módulo:Bandera').sinBandera
local color = '#CDCDCD'
function obtenerColor()
local colores = {
['hotel'] = '#264796',
['edificio militar'] = '#665D1D',
['cuartel'] = '#665D1D',
['bar'] = '#BFFF00',
['restaurante'] = '#BFFF00',
['iglesia'] = '#B695C0',
['hospital'] = '#CB1D11',
}
local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue')
tipoedificio = elementoTabla(tipoedificio,'value','id')
local nombretipoedificio= mw.wikibase.getEntityObject(tipoedificio)
nombretipoedificio = elementoTabla(nombretipoedificio,'labels','es','value')
local uso = argumento['tipo'] or argumento ['Tipo'] or argumento['uso'] or argumento['Uso'] or argumento ['usos'] or argumento['Usos'] or propiedad('P366')
if uso == "militar" or uso == "Militar" then
return colores['edificio militar']
end
return colores[nombretipoedificio] or '#CDCDCD'
end
function obtenerSuperficie()
local superficie = elementoTabla(Entidad,'claims','P2046',1)
if superficie == nil then
return
end
local valoraltura = elementoTabla(superficie,'mainsnak','datavalue','value','amount')
local unidadaltura = elementoTabla(superficie,'mainsnak','datavalue','value','unit')
if unidadaltura == "https://www.wikidata.org/entity/Q857027" or "Q857027" then
valoraltura = (valoraltura * 929.0304)/10^4
end
return valoraltura .." [[metro cuadrado|".. "m²]]"
end
function z.prueba(frame)
ModuloWikidata:setFrame(frame)
Entidad = mw.wikibase.getEntityObject(argumento['id']) or {}
local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue')
tipoedificio = elementoTabla(tipoedificio,'value','id')
--tipoedificio = elementoTabla(tipoedificio,'labels','es','value')
--local retorno = ""
--for i, j in pairs(tipoedificio)
--do
--retorno = retorno .." "..i
--end
local retorno= mw.wikibase.getEntityObject(tipoedificio)
retorno = elementoTabla(retorno,'labels','es','value')
return retorno
end
function z.Ficha(frame)
ModuloWikidata:setFrame(frame)
argumento = obtenerArgumentosConValor(frame)
if argumento['wikidata'] == 'no' and (argumento['fecha de inauguración']
or argumento['fecha de demolición']
) then
obtenerDatosWikidata = false
Entidad = nil
else
obtenerDatosWikidata = true
-- Obtener los datos de la página donde se inserta la ficha de Wikidata.
Entidad = mw.wikibase.getEntityObject(argumento['id']) or {}
end
local pais = argumento['pais'] or argumento['país'] or propiedad('P17')
local tipodivadministrativa = argumento['tipo_división_administrativa']
local divadministrativa = argumento['división_administrativa']
local imagen = argumento['imagen'] or argumento['Imagen'] or argumento['foto']
local pieDeImagen
if imagen then
pieDeImagen = argumento['pie de imagen'] or argumento['pieimagen'] or
argumento['descripción'] or argumento['descripcion'] or
argumento['pie de foto'] or argumento['piedefoto'] or
argumento['textoimagen'] or argumento['TextoImagen'] or argumento['texto_imagen'] or
argumento['pie de foto']
else
imagen, pieDeImagen = obtenerImagenWikidata()
end
nombre = argumento['nombre'] or argumento['Nombre'] or
obtenerEtiquetaWikidata() or
ModuloPaginas.nombrePagina({desambiguar='sí'})
nombrelocal = argumento['nombre local'] or argumento['Nombre local']
if nombre and nombrelocal and nombre ~= nombrelocal then
titulo = nombre .. '<br /><span style="font-size:smaller">' .. nombrelocal .. '</span>'
else
titulo = nombre
end
local color = obtenerColor()
local estilotitulo = 'background-color:'..color.. '; font-style:normal'
local estiloseccion = 'background-color:'..color
local codigopostal = propiedad('P281') or argumento['código postal']
local calle = obtenerCalle()
local direccionpostal
local evsigs = devolverelemensigs(Entidad)
if evsigs ~= nil then
local fechainicio = argumento['inicio'] or argumento['Inicio'] or evsigs['Q385378']['fechainicio']
local fechafin = argumento['fin'] or argumento['Fin'] or evsigs['Q385378']['fechainicio']
local primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra'] or evsigs[Q106863]
else
local fechainicio = argumento['inicio'] or argumento['Inicio']
local fechafin = argumento['fin'] or argumento['Fin']
local primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra']
end
if codigopostal then
direccionpostal = ModuloFormato.separadosPorComa({propiedad('P6375') or calle, codigopostal})
else
direccionpostal = propiedad('P6375') or calle or argumento['dirección'] or argumento['dirección postal']
end
local logotipo = argumento['logotipo'] or argumento['Logotipo'] or argumento['logo'] or argumento['Logotipo'] or propiedad('P154')
if logotipo ~= nil then
logotipo = '[[Archivo:'..logotipo..']]'
end
local Ficha = {
['titulo'] = titulo,
imagen = imagen,
['tamañoimagen'] = argumento['tamaño de imagen'] or argumento['tamaño'] or
argumento['tamaño imagen'] or argumento['tamañoimagen'] or argumento['tamañodelaimagen'] or
argumento['tamaño de foto'] or
'220px',
pie = pieDeImagen,
tipocabecera = 'edificio',
estilotitulo = estilotitulo,
estiloseccion = estiloseccion,
estiloetiqueta = 'width:33%;',
{'',logotipo},
{tipo = "sección",
['titulo'] = "Localización",
{'País', pais},
{tipodivadministrativa, divadministrativa},
--{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
{'Localización',argumento['localización'] or
ModuloFormato.enVariasLineas({ModuloFormato.separadosPorComa({argumento['ciudad'], argumento['estado'], argumento['país']})}) or
ModuloFormato.enVariasLineas({propiedad('P969'), ModuloFormato.separadosPorComa({propiedad('P131'),propiedad('P17')})}) },
{'Dirección postal', direccionpostal},
},
{tipo = "sección",
['titulo'] = "Información general",
{'Nombres anteriores', argumento['nombres anteriores'] or argumento['Nombres anteriores']},
{'Otros nombres',argumento['otros nombres'] or argumento['Otros nombres'] or propiedad('P4970')},
{'Organización', argumento['organización'] or argumento['Organización'] or propiedad('P749')},
{'Propietario', argumento['dueño'] or argumento['Dueño'] or propiedad('P127')},
{'Estado', argumento['estado'] or argumento['Estado']},
{'Catalogación', argumento['catalogación'] or argumento['Catalogación']},
{'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']},
{'Cruza',argumento['cruza'] or argumento['Cruza']},
{'Número de vanos', argumento['ojos'] or argumento['Ojos']},
{'Ocupante', argumento['ocupante'] or argumento['Ocupante']},
{'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')},
{'Inicio de obra', fechainicio},
{'[[Coronación]]', argumento['coronación'] or argumento['Coronación']},
{'Finalización de obra', fechafin},
{'Fundación', argumento['fundación'] or argumento['Fundación'] or propiedad('P571')},
{'Clausura', argumento['clausura'] or argumento['Clausura'] or propiedad('P3999')},
{'Número de camas', argumento['camas'] or argumento['Camas'] or propiedad('P6801')},
{'Número de télefono', argumento['telefono'] or argumento['Telefono'] or propiedad('P1329')},
{'Emergencias', argumento['emergencias'] or argumento['Emergencias']},
{'Afiliación', argumento['afiliación'] or argumento['Afiliación'] or propiedad('P1416')},
{'Red', argumento['red'] or argumento['Red']},
{'Clasificación', argumento['clasificación'] or argumento['Clasificación']},
{'Especialidad', argumento['especialidad'] or argumento['Especialidad']},
{'Financiamiento', argumento['financiamiento'] or argumento['Financiamiento']},
{'Estilo', argumento['estilo'] or argumento['Estilo'] or propiedad('P149')},
{'Arrendatario actual', argumento['arrendatarios'] or argumento['Arrendatarios']},
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')},
{'Primera piedra', primerapiedra },
{'Antena', argumento['antena'] or argumento['Antena']},
{'Piso más alto', argumento['piso mas alto'] or argumento['Piso mas alto'] or propiedad('P1101')},
},
{tipo = "sección",
['titulo'] = "Altura",
{'Altura arquitéctonica', argumento['altura arquitectonica'] or argumento['Altura arquitectonica'] or argumento['altura'] or argumento['Altura'] or devolveraltura(Entidad).altura},
{'Altura máxima', argumento['altura maxima'] or argumento['Altura maxima'] or devolveraltura(Entidad).alturamaxima},
},
{tipo="sección",
['título']="Record de altura",
{argumento['record de altura'] or argumento['Record de altura']},
{'Predecesor', argumento['precedecesor'] or argumento['Predecesor']},
},
{tipo = "sección",
['titulo'] = "Detalles técnicos",
['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(),
{'Superficie', argumento['superficie'] or argumento['Superficie'] or obtenerSuperficie()},
{'Número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')},
{'Número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')},
},
{tipo = "sección",
['titulo'] = 'Diseño y construcción',
{'Arquitecto', argumento['arquitecto'] or argumento['Arquitecto'] or propiedad('P84')},
{'Ingeniero', argumento['ingeniero estructural'] or argumento['Ingeniero de servicios']},
{'Ingeniero de servicios', argumento['ingeniero de servicios'] or argumento['Ingeniero de servicios']},
{'Ingeniero civil', argumento['ingeniero civil'] or argumento['Ingeniero civil']},
{'Otros', argumento['otros'] or argumento['Otros']},
{'Ingeniero estructural', argumento['ingeniero estructural'] or argumento['Ingeniero estructural'] or propiedad('P631')},
{'Autor', argumento['autor'] or argumento['Autor']},
{'Contratista', argumento['contratista'] or argumento['Contratista']},
{'Viviendas', argumento['viviendas'] or argumento['Viviendas']},
{'Conocido por', argumento['conocido por'] or argumento['Conocido por']},
},
{tipo = "sección",
['titulo'] = "Remodelación",
{'Ingeniero civil', argumento['rem ingeniero civil'] or argumento['Rem ingeniero civil']},
{'Otros', argumento['rem otros'] or argumento['Rem otros']},
{'Ingeniero estructural', argumento['rem ingeniero estructural'] or argumento['Rem ingeniero estructural']},
{'Contratista', argumento['contratista'] or argumento['Contratista']},
{'Premios', argumento['rem premios'] or argumento['rem premios']},
},
{tipo = "sección",
["titulo"] = "Otra información",
--Bar o restaurante
{"N.º de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")},
{"N.º de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()},
--Hotel
{"N.º de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]},
{"N.º de suites", argumento["nro de suites"] or argumento["Nro de suites"]},
{"N.º de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]},
{"N.º de bares", argumento["nro de bares"] or argumento["Nro de bares"]},
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]},
--Edificios religiosos
{"Culto", argumento["culto"] or argumento["Culto"] or propiedad("P140")},
{"Diócesis", argumento["diocesis"] or argumento["Diocesis"] or propiedad("P708")},
{"Advocación", argumento["advocacion"] or argumento["Advocacion"] or propiedad("P825")},
--Edificios militares
{"Controlador", argumento["controlado por"] or argumento["Controlado por"] },
{"Guarnición", argumento["guarnición"] or argumento["Guarnición"]},
{"Comandante actual", argumento["comandante actual"] or argumento["Comandante actual"]},
{"Ocupantes", argumento["ocupantes"] or argumento["Ocupantes"] or propiedad("P466")},
{"Batallas", argumento["batallas"] or argumento["Batallas"]},
{"Eventos", argumento["eventos"] or argumento["Eventos"]},
{"Período", argumento["periodo"] or argumento["Periodo"]},
},
{tipo = "sección",
['titulo'] = "Sitio web",
{'Sitio web', argumento['sitio web'] or argumento['Sitio web'] or propiedad('P856')},
},
{tipo = "sección",
['titulo'] = "Referencias",
{argumento["premios"] or argumento["Premios"] or propiedad("P166")},
{argumento['referencias'] or argumento['Referencias']},
}
}
return ModuloFicha.infobox(Ficha)
end
function obtenerImagenWikidata()
local imagen, valorImagen, piesDeImagen, k, pieDeImagen
if not Entidad then
return
end
local imagen = elementoTabla(Entidad, 'claims','P18',1)
if not imagen then
return
end
-- Obtener el nombre de la imagen
valorImagen = elementoTabla(imagen, 'mainsnak','datavalue','value') -- Por ejemplo, imagen.jpg
-- Obtener los pies de la imagen, uno por idioma
piesDeImagen = elementoTabla(imagen, 'qualifiers','P2096')
-- Encontrar el pie en español (aquel con datavalue.value.language = "es")
if piesDeImagen then
for k,pieDeImagen in pairs(piesDeImagen) do
if pieDeImagen.datavalue.value.language=='es' then
-- devolver la imagen y el texto del pie de la imagen en español
return valorImagen, pieDeImagen.datavalue.value.text
end
end
end
-- Si no hay pie de imagen en español comprueba si hay fecha especificada para la imagen
piesDeImagen = elementoTabla(imagen, 'qualifiers', 'P585')
if piesDeImagen and piesDeImagen[1] then
return valorImagen, nombre .. ' en ' .. require('Módulo:Wikidata/Fecha').FormateaFechaHora(piesDeImagen[1].datavalue.value, {['formatoFecha']='año',['enlace']='no'})
end
-- Sin pie de imagen en español
return valorImagen
end
function obtenerArgumentosConValor(frame)
local original
if frame == mw.getCurrentFrame() then
original = frame:getParent().args
else
original = frame.args or frame
end
local copia= {}
for k,v in pairs(original) do
if v == 'no' and k ~= 'wikidata' then
--Si vale "no" dejar en blanco el argumento para no obtener el valor
--de Wikidata
copia[k] = ''
elseif v~='' then
--Si está en blanco dejarlo a nil para obtener en su caso el valor de
-- Wikidata si no hay otro argumento con un nombre similar
copia[k] = original[k]
end
end
return copia
end
function obtenerEtiquetaWikidata()
if Entidad and Entidad.labels and Entidad.labels.es then
return Entidad.labels.es.value
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
--Devuelve la fecha de inicio y fin de la construcción
function obtenerfechasObra(unaTabla)
--local evsig = elementoTabla(Entidad, 'claims','P793',1)
--local construccion = elementoTabla(Entidad,'claims','P793',1)
local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision')
if precision ~= 11 then
return
end
local fechainicio = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','time')
local anyoinicio = tonumber(fechainicio:sub(2,5))
local mesinicio = tonumber(fechainicio:sub(7,8))
local diainicio = tonumber(fechainicio:sub(10,11))
local fechafin = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time')
local anyofin = tonumber(fechafin:sub(2,5))
local mesfin = tonumber(fechafin:sub(7,8))
local diafin = tonumber(fechafin:sub(10,11))
local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
local retorno = {}
retorno['fechainicio'] = diainicio ..' de '..meses[mesinicio]..' de '..anyoinicio
retorno['fechafin'] = diafin..' de '..meses[mesfin]..' de ' ..anyofin
return retorno
end
--Devuelve la fecha ceremonia de inauguración
function devolvercereminaug(unaTabla)
local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision')
if precision ~= 11 then
return
end
local fecha = elementoTabla(unaTabla,'qualifiers','P585',1,'datavalue','value','time')
local anyo = tonumber(fechainicio:sub(2,5))
local mes = tonumber(fechainicio:sub(7,8))
local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
local dia = tonumber(fechainicio:sub(10,11))
local fecha = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time')
local retorno = dia .."de" ..meses[mes] .. "de" ..anyo
return retorno
end
--Devuelve los campos de elementos significativos de Wikidata
function devolverelemensigs(unaEntidad)
local evsigs = elementoTabla(unaEntidad,'claims','P793')
if evsigs == nil then
return
end
local elementos = {}
for i, j in pairs(evsigs)
do
valorQ = elementoTabla(j,'mainsnak','datavalue','value','id')
if valorQ == 'Q385378' then
elementos[valorQ] = obtenerfechasObra(j)
end
if valorQ == 'Q3010369' then
elementos[valorQ] = devolvercereminaug(j)
end
if valorQ == 'Q744913' then
elementos[valorQ]= elementoTabla(construccion,'qualifiers','P805',1,'datavalue','value','id')
end
if valorQ == 'Q1068633' then
elementos[valorQ]= elementoTabla(construccion,'qualifiers','P585',1,'datavalue','value','time')
end
end
return elementos
end
--Devuelve la altura en metros
function devolveraltura(unaTabla)
local altura = elementoTabla(unaTabla,'claims','P2048',1)
local valoraltura = elementoTabla(altura,'mainsnak','datavalue','value','amount')
local alturamaxima = elementoTabla(unaTabla,'claims','P2048',2)
local valoralturamaxima = elementoTabla(alturamaxima,'mainsnak','datavalue','value','amount')
local retorno = {}
if altura ~= nil then
local unidadaltura = elementoTabla(altura,'mainsnak','datavalue','value','unit')
if unidadaltura == "http://www.wikidata.org/entity/Q3710" or unidadaltura == "Q3710" then
valoraltura = valoraltura * 0.3048 --pie a metro
end
retorno.altura = tostring(valoraltura) .." [[metro|m]]."
end
if alturamaxima ~= nil then
local unidadalturamaxima = elementoTabla(alturamaxima,'mainsnak','datavalue','value','unit')
if unidadalturamaxima == "http://www.wikidata.org/entity/Q3710" or unidadaltura == "Q3710" then
valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro
end
retorno.alturamaxima = tostring(valoralturamaxima) .." [[metro|m]]."
end
return retorno
end
function obtenerCalle()
Entidad = mw.wikibase.getEntityObject(argumento['id']) or {}
local calles = elementoTabla(Entidad,'claims','P669')
local retorno = ''
if calles ~= nil then
for i, j in pairs(calles)
do
local calle = elementoTabla(j, 'mainsnak','datavalue','value','id')
local nrocalle = elementoTabla(Entidad,'claims','P669',1,'qualifiers','P670',1,'datavalue')
nrocalle = elementoTabla(nrocalle,'value')
local nombrecalle = mw.wikibase.getEntityObject(calle)
nombrecalle = elementoTabla(nombrecalle,'labels','es','value')
if nrocalle ~= nil then
retorno = retorno..'[['..nombrecalle..']] Nº '..nrocalle ..' y'..' '
else
retorno = retorno..'[['..nombrecalle..']]' ..' y'..' '
end
end
retorno = string.sub(retorno, 0, -3)
end
return retorno
end
function obtenerMaterial()
Entidad = mw.wikibase.getEntityObject(argumento['id']) or {}
materiales = elementoTabla(Entidad,'claims','P186')
local material = ""
if materiales ~= nil then
local auxQ, aux
for i,j in pairs(materiales)
do
auxQ = elementoTabla(j, 'mainsnak','datavalue','value','id')
aux = mw.wikibase.getEntityObject(auxQ) or {}
material = material ..'[['..elementoTabla(aux,'labels','es','value')..']]'..'<br>'
end
end
return material
end
return z