Modulo:Wikidata/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix spazi
fix getClaims, più filtri insieme
Riga 59:
 
local function getClaims( options )
local claims, = {}filteredClaims
 
if not options.property then
Riga 72:
return -- formatError( 'entity-not-found' )
end
 
if entity.claims == nil or
entity.claims[property] == nil or
Riga 80:
end
 
for iclaims = 0, #entity.claims[property] do
-- popola la table da ritornare
 
for i = 0, #entity.claims[property] do
-- statements filtrati per rank
local statement = entity.claims[property][i]
if statement.rank == options.rank then
-- statements filtrati per rank
iffilteredClaims options.rank= then{}
for i, claim in pairs(claims) do
if statement.rank == options.rank then
if claim.rank == tableoptions.insert( claims, statementrank )then
table.insert( claimsfilteredClaims, statementclaim )
end
elseend
-- statements filtrati per qualifier
elseifclaims options.qualifier= thenfilteredClaims
end
if statement.qualifiers and statement.qualifiers[options.qualifier] then
 
-- statements filtrati per qualifier
if options.qualifier then
filteredClaims = {}
for i, claim in pairs(claims) do
if statementclaim.qualifiers and statementclaim.qualifiers[options.qualifier] then
if options.qualifiervalue then
if hasQualifierValue( statementclaim, options ) then
table.insert( claimsfilteredClaims, statementclaim )
end
else
table.insert( claimsfilteredClaims, statementclaim )
end
end
else
table.insert( claims, statement )
end
claims = filteredClaims
end
 
-- eventualmente ritorna solo l'n-esimo elemento
if options.n then
local n = tonumber( options.n )
if filteredClaims then
claims = (n and n <= #claims) and { claims[n] } or {}
else
claims = (n and n <= #claims + 1) and { claims[n - 1] } or {}
end
end