Modulo:Intestazione

Da Wikisource.
Jump to navigation Jump to search

La documentazione per questo modulo può essere creata in Modulo:Intestazione/man

local c = require('Modulo:Common')
local a = require('Modulo:Autore')
local d = require('Modulo:Date')

local lang = mw.getContentLanguage()
local p = {}

function p.linkAutore(frame)
	nomi = frame:getParent().args[1]
	local links = {}
	for nome in string.gmatch(nomi, '([^/]+)') do
		nomeStripped = nome:gsub(" %(.*%)", "")
		table.insert(links, '[[Autore:' .. nome .. '|' .. nomeStripped .. ']]')
	end
	return c.concat(links, ', ')
end

-- controlla che la data di composizione sia compresa tra le date di nascita e morte dell'autore
function p.checkDateAutore(frame)
	nomi = frame.args[1]
	dataComposizione = frame.args[2] or ''
	mw.log('Data composizione: '..dataComposizione)
	dataComp = d.absoluteDate(dataComposizione)
	if nomi and dataComp then
		ok = false
		i = 0
		for nome in string.gmatch(nomi, '([^/]+)') do
			i = i + 1
			mw.log('Autore: ' .. nome)
			qid = mw.wikibase.getEntityIdForTitle('Autore:' .. nome)
			autoreItem = mw.wikibase.getEntity(qid)
			dati = a.getDatiAutore(autoreItem)
			
			mw.log('anno morte autore: '..(dati.annoMorte or ''))
			mw.log('anno nascita autore: '..(dati.annoNascita or ''))
			
			annoMorte = d.absoluteDate(dati.annoMorte)
			annoNascita = d.absoluteDate(dati.annoNascita)
			
			if annoMorte then
				if annoMorte >= dataComp then
					ok = true
				end
			elseif annoNascita and dati.isHuman then
				-- se non sappiamo quando e' morto, supponiamo sia vissuto 100 anni
				if dati.annoNascita + 100 >= dataComp then
					ok = true
				end
			else
				ok = true
			end
		end
		if not ok and i > 0 then
			return '[[Categoria:Data di composizione da controllare]]'
		end
	end
end

return p