Modul:Nylig avdød

Fra Wikisida.no
Hopp til navigering Hopp til søk

Formål

[rediger kilde]

Denne modulen benyttes for å si ifra om en Wikidata-angitt dato er innenfor en viss dagsrekkevidde.

Som standard, henter modulen kun dødsdato og sjekker om den er eldre enn 30 dager. Man kan ikke angi q-verdi.

Modulen har en funksjon: timeAgo. Den tar opptil to parametre.

  1. Hvilken egenskap som skal hentes (standard: P570)
  2. Hvor mange dager siden? (standard: 30)

Den gjengir true om datoen var for over så-så mange dager siden, og false om den er «yngre».

TemplateData

[rediger kilde]
Dette er TemplateData-dokumentasjonen for malen, som brukes av VisualEditor og andre verktøy.

Nylig avdød

Ingen beskrivelse.

Malparametre[Rediger maldata]

ParameterBeskrivelseTypeStatus
Ingen parametre ble angitt

Eksempler

[rediger kilde]

Se også

[rediger kilde]

local p = {}

function p.timeAgo(frame)
	local days = frame.args[2]
	local property = frame.args[1]
	if not property then
		property = 'P570'
	end
	if not days then
		days = 30
	end
	local test = frame:preprocess( '{{CURRENTDAY}}' )
	days = days * 86400 -- days number times seconds in a day
	local entity = mw.wikibase.getEntity()
	if not entity then
		return "Ingen Wikidata-element funnet for gjeldende side"
	end
	local currentTime = os.time()
	local entityTime = entity:getBestStatements(property)
	if not next(entityTime) then
		error("Ingen " .. property .. "-verdi angitt på Wikidata")
	end
	entityTime = entityTime[1].mainsnak.datavalue.value
	local timeofdeath
	if entityTime.precision == 10 then -- if there is no day-specific date given, assume end of month
		timeofdeath = os.time({year = string.sub(entityTime.time,2,5), month = string.sub(entityTime.time,7,8), day = 28})
	elseif entityTime.precision <= 9 then -- if there is no month-specific date given, assume end of year, just return false
		return false
	else
		timeofdeath = os.time({year = string.sub(entityTime.time,2,5), month = string.sub(entityTime.time,7,8), day = string.sub(entityTime.time,10,11)})
	end
	if math.abs(os.difftime(timeofdeath,currentTime)) > days then
		return true
	else
		return false
	end
end

return p