Modul:Wikidata utilities: Unterschied zwischen den Versionen
(angelegt) |
KKeine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
local fw = {} | local fw = {} | ||
function fw.checkId( id ) | |||
local i = id and id:upper() or '' | |||
if i ~= '' then | |||
if mw.ustring.match( i, '^[%d]+$') ~= nil then -- only number | |||
i = 'Q' .. i | |||
elseif mw.ustring.match( i, '^Q[%d]+$') == nil then -- Q and number | |||
i = '' | |||
end | |||
end | |||
return i | |||
end | |||
local function getFirstValue( statements ) | local function getFirstValue( statements ) |
Version vom 31. Oktober 2017, 18:54 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Wikidata utilities/doc erstellt werden
local fw = {} function fw.checkId( id ) local i = id and id:upper() or '' if i ~= '' then if mw.ustring.match( i, '^[%d]+$') ~= nil then -- only number i = 'Q' .. i elseif mw.ustring.match( i, '^Q[%d]+$') == nil then -- Q and number i = '' end end return i end local function getFirstValue( statements ) if #statements == 0 then return nil end for i = 1, #statements, 1 do if statements[i].mainsnak.snaktype == 'value' then return statements[i].mainsnak.datavalue.value end end return nil end local function getAllValues( statements ) local values = {} if #statements > 0 then for i = 1, #statements, 1 do if statements[i].mainsnak.snaktype == 'value' then table.insert( values, statements[i].mainsnak.datavalue.value ) end end end return values end function fw.getEntWDid( anEntity, p ) if anEntity == nil then return '' end local value = getFirstValue( anEntity:getBestStatements( p ) ); if value then return value.id end return '' end function fw.getEntWDvalue( anEntity, p ) if anEntity == nil then return '' end local value = getFirstValue( anEntity:getBestStatements( p ) ); if value then return value end return '' end function fw.getWDid( id, p ) if not id or id == '' then return '' end local value = getFirstValue( mw.wikibase.getBestStatements( id, p ) ); if value then return value.id end return '' end function fw.getWDvalue( id, p ) if not id or id == '' then return '' end local value = getFirstValue( mw.wikibase.getBestStatements( id, p ) ); if value then return value end return '' end return fw