Module:Wikidata/Outils : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
m
Ligne 69 : Ligne 69 :
 
end
 
end
 
for _, j in pairs(new) do
 
for _, j in pairs(new) do
if not p.alreadyHere(old, j) then
+
if not alreadyHere(old, j) then
table.insert(j, j)
+
table.insert(old, j)
 
end
 
end
 
end
 
end
return j
+
return old
 
end
 
end
  
 
return p
 
return p

Version du 3 septembre 2015 à 14:26

La documentation pour ce module peut être créée à Module:Wikidata/Outils/doc

--Fonctions élémentaires de gestion des snaks Wikidata
local p = {}
p.i18n = require "Module:Wikidata/I18n"

function p.snaktype(snak)
	return snak.snaktype
end
	
function p.isSpecial(snak)
	return (snak.snaktype ~= 'value')
end

function p.isValue(snak)
	return (snak.snaktype == 'value')
end

function p.getId(snak)
	if p.isValue(snak) then
		return 'Q' .. snak.datavalue.value['numeric-id']
	end
end

function p.getMainId(claim)
	return p.getId(claim.mainsnak)
end

function p.EntityId(entity)
	if type(entity) == 'string' then
		return entity
	end
	return entity.id
end

function p.getValue(snak)
	return snak.datavalue.value
end

function p.formatError( key )
    return error(i18n[key] or key)
end

function p.addcat(cat, sortkey)
	if sortkey then
		return  '[[Category:' .. cat .. '|' .. (sortkey or '') .. ']]'
	end
	return '[[Category:' .. cat  .. ']]'
end

function p.getEntity( val ) 
	if type(val) == 'table' then
		return val
	end
	return mw.wikibase.getEntityObject(val)
end

function p.alreadyHere(searchset, val)
	for i, j in pairs(searchset) do
		if val == j then
			return true
		end
	end
return false
end

-- add new values to a list, avoiding duplicates
function p.addnewvalues(old, new)
	if not new then
		return old
	end
	for _, j in pairs(new) do
		if not alreadyHere(old, j) then
			table.insert(old, j)
		end
	end
	return old
end

return p