Modul:Wikidata/lib
Dokumentaciju za ovaj modul možete napraviti na stranici Modul:Wikidata/lib/dok
require "Modul:No globals"
local p = {
common = require "Modul:Functions",
props = {
begin = { 'P569', 'P580' },
ending = { 'P570', 'P582' },
lang = { 'P364', 'P407' },
point = { 'P571', 'P577', 'P585' },
}
}
local i18n = mw.loadData("Modul:Wikidata/i18n")
function p.addWdClass(str)
return '<span class="wd">' .. str .. '</span>'
end
function p.IsSnakValue(snak)
return snak.snaktype == 'value'
end
function p.IsOptionTrue(options, key)
if options[key] then
if tostring(options[key]) == 'true' or tostring(options[key]) == 'yes' or tostring(options[key]) == '1' then
return true
end
end
return false
end
function p.textToTable(something, options)
if type(something) ~= "table" then
local options = options or {}
local split_pattern = options.split_pattern or "%s*,%s*"
if p.IsOptionTrue(options, 'upper') then
something = mw.ustring.upper(something)
elseif p.IsOptionTrue(options, 'upperfirst') then
something = p.common.stringToUpper(something)
end
something = mw.text.split(something, split_pattern)
end
return p.common.cleanArgs(something)
end
function p.getEntityIdFromValue(value)
local entityType = value['entity-type']
if entityType == 'item' then
return 'Q' .. value['numeric-id']
elseif entityType == 'property' then
return 'P' .. value['numeric-id']
else
return error(p.formatError('unknown-entity-type', entityType))
end
end
function p.category(key, ...)
local Category = require 'Modul:Kategorije'
local title = mw.title.getCurrentTitle()
return Category.makeCategory(mw.ustring.format(i18n.categories[key], ...), '0,14', title.text)
end
function p.formatFromPattern(str, pattern)
return mw.ustring.gsub(pattern, '$1', str) .. '' --Hack to get only the first result of the function
end
function p.formatError(key, ...)
return mw.ustring.format(i18n.errors[key], ...)
end
function p.raiseInvalidDatatype(method, allowed, provided)
if type(allowed) ~= 'table' then
allowed = { allowed }
end
return p.formatError('invalid-datatype2', method, mw.listToText(allowed, '”, „', '” test „'), provided)
end
return p