Mòdul:Proves/Toniher
Aparença
Podeu crear la pàgina d'ús per documentar aquest mòdul Lua. |
--[[
Mòdul d'exemple per demostrar com funciona Scribunto i Lua
{{#invoke:Proves/Toniher|densitat|valor_poblacio|valor_habitants|valor_superficie}}
{{#invoke:Proves/Toniher|densitatwikidata|codi=valor_codi|superficie=valor_superficie}}
]]
local p = {}
function p.densitat( frame )
local densitat = 0
local poblacio = frame.args[1]
local habitants = tonumber(frame.args[2])
local superficie = tonumber(frame.args[3])
if superficie ~= nil and superficie ~= "" then
densitat = habitants / superficie
end
local str = "La densitat de poblacio a "..poblacio.." és "..densitat.." km2"
return str
end
function p.densitatwikidata( frame )
local densitat = 0
local superficie = 1 -- Evita divisió per 0
local str = ""
if frame.args.codi ~= nil and frame.args.codi ~= "" then
local codi = frame.args.codi
local label = mw.wikibase.label( codi )
local poblacio = agafaWikiData( codi, 'P1082' ) -- codi de població: https://www.wikidata.org/wiki/Property:P1082
if poblacio == nil then
str = "No tenim dades de població de "..label
else
if frame.args.superficie ~= nil and frame.args.superficie ~= "" then
superficie = tonumber(frame.args.superficie)
densitat = tonumber( poblacio ) / superficie
str = label.."".." té una densitat de: "..densitat
else
str = label.."".." té una població de: "..poblacio
end
end
end
return str
end
function agafaWikiData( codi, propietat )
-- Basat en https://ca.wikipedia.org/wiki/M%C3%B2dul:Wikibase
-- Problema actual https://www.wikidata.org/wiki/Wikidata:Project_chat/Archive/2014/09#How_to_use_arbitrary_access.3F
-- Hack
-- return frame:preprocess( '{{data|property='..propietat..'|item='..codi..'}}' )
-- De forma neta
-- local entity = mw.wikibase.getEntityObject( codi )
-- if not entity then return nil end
-- if not entity.claims then return nil end
--local hasProp = entity.claims[propietat]
--if not hasProp then return nil end
-- return hasProp[0].mainsnak.datavalue.value
return 1000
end
return p