Modulo:Pallavolista LVF/Sandbox

local getArgs = require('Modulo:Arguments').getArgs
local mEditAtWikidata = require('Modulo:Modifica su Wikidata')._showMessage
local mCitazione = require('Modulo:Citazione')
local mWikidata = require('Modulo:Wikidata')

-- costanti
local PROP_NOME = 'P735'
local PROP_COGNOME = 'P734'
local PROP_ID_LVF = 'P4259'

-- La funzione ricava da Wikidata il valore di una proprietà
-- (restituisce nil se la proprietà non è impostata)
local function getPropFromWikidata(prop, item)
	local claims = mWikidata._getClaims(prop, { from = item })
	-- ritorna il primo valore (possiamo assumere che ve ne sia uno soltanto)
	if claims ~= nil and #claims > 0 then 
		local claim=claims[1]
		local q=mWikidata._formatStatement(claim, {formatting = 'raw'})
		return mw.wikibase.getLabel(q)
	end
end

local function getIdFromWikidata(prop, item)
	local claims = mWikidata._getClaims(prop, { from = item })
	-- ritorna il primo valore (possiamo assumere che ve ne sia uno soltanto)
	if claims ~= nil and #claims > 0 then return mWikidata._formatStatement(claims[1]) end
end
local p = {}

-- La funzione ritorna il collegamento alla pagina del profilo di una pallavolista sul sito legavolleyfemminile.it
function p._main(args)
	local item = args.from

	-- argomenti in input
	local nome = getPropFromWikidata (PROP_NOME, item)
	local cognome = getPropFromWikidata (PROP_COGNOME, item)
	local id_from_WD = getIdFromWikidata (PROP_ID_LVF, item)
	local title = mw.title.getCurrentTitle().text
	title = mw.text.split(title, ' %(')[1]
	local url_part = ''

	if nome ~= nil and cognome ~= nil then
		url_part = string.lower(cognome) .. "-" .. string.lower(nome)
	else 
		url_part = string.lower(title)
		if nome ~= nil then
		   nome=string.lower(nome)
		   local nlen=string.len(nome)
		   if string.sub(url_part, 1, nlen) == nome then
		      url_part=string.sub(url_part, nlen + 2, -1) .. " " .. nome
		   end
	   	end
	end

	-- icona e categoria Wikidata
	local wd_icon = mEditAtWikidata({ pid = PROP_ID_LVF, qid = item }) or ''

	-- generazione del link
	local url_pattern = "https://www.legavolleyfemminile.it/player/%s/%s/"
	url_part = string.gsub(url_part, "% ", "-")
	local url = string.format(url_pattern, url_part, id_from_WD)
	local site = "legavolleyfemminile.it"
	local editore = "[[Lega Pallavolo Serie A femminile]]"
	return mCitazione.cita_da_modulo('args', {
			url = url,
			titolo = title,
			sito = site,
			editore = editore,
			lingua = 'it'
		}) .. wd_icon 
end

return p