Módulo:Zona de pruebas/Josecurioso/Evento de misión

De Wikipedia, la enciclopedia libre
Este módulo no tiene página de documentación[crear]
local Date = require('Módulo:Date')._Date
local CurrentDate = require('Módulo:Date')._current

local p = {}

function p.Obtener(frame)
	local args = frame.args;
	
	local cases = {
		lanzamiento = function () return lanzamientoAterrizaje(frame, 'Q797476') end,
		aterrizaje = function () return lanzamientoAterrizaje(frame, 'Q844947') end,
		acople = function () return acopleDesacople(frame, 'P580') end,
		desacople = function () return acopleDesacople(frame, 'P582') end,
		default = function () return 'DATO NO ENCONTRADO' end
	}
	
	if cases[args.evento] then
		return cases[args.evento]()
	else
		return cases['default']()
	end
end


function lanzamientoAterrizaje(frame, valor)
	local entidad = (frame.args.entidad ~= nil and frame.args.entidad ~= '') and ('|entidad='..frame.args.entidad) or '';
	
	local fecha = frame:preprocess('{{propiedad|P793'..entidad..'|filtro valor='..valor..'|calificador=P585|enlace=no}}');
	local hora = frame:preprocess('{{propiedad|P793'..entidad..'|filtro valor='..valor..'|calificador=P4241|enlace=no}}');
	
	local final = fecha
	local paraFecha
	
	if(frame.args.hora ~= nil and frame.args.hora ~= 'no' and hora ~= '') then
		paraFecha = final ..', '.. hora
		final = final ..', '.. hora .. ' UTC'
	end
	
	local diff = Date(paraFecha) - Date(CurrentDate)	
	if(not diff.isnegative) then
		final = final .. ' (planeado)' 
	end
	
	return final
end


function acopleDesacople(frame, calif)
	local entidad = (frame.args.entidad ~= nil and frame.args.entidad ~= '') and ('|entidad='..frame.args.entidad) or '';
	
	local final = frame:preprocess('{{propiedad|P793'..entidad..'|filtro valor=Q557450|calificador='..calif..'|enlace=no}}');
	
	local diff = Date(final) - Date(CurrentDate)
	if(not diff.isnegative) then
		final = final .. ' (planeado)' 
	end
	
	return final
end

return p