Modul:Wikidata utilities: Unterschied zwischen den Versionen
Modul:Wikidata utilities (Quelltext anzeigen)
Version vom 11. Oktober 2020, 10:45 Uhr
, vor 3 JahrenanalyzeDatavalue modifiziert; +wu.isGregorian( t ); +wu.getDateFromTime( t )
(+references) |
(analyzeDatavalue modifiziert; +wu.isGregorian( t ); +wu.getDateFromTime( t )) |
||
Zeile 4: | Zeile 4: | ||
local WikidataUtilities = { | local WikidataUtilities = { | ||
suite = 'WikidataUtilities', | suite = 'WikidataUtilities', | ||
serial = '2020-10- | serial = '2020-10-11', | ||
item = 65439025 | item = 65439025 | ||
} | } | ||
Zeile 10: | Zeile 10: | ||
-- i18n | -- i18n | ||
local wd = { | local wd = { | ||
version = 'P348' | version = 'P348', | ||
Gregorian = 'Q12138', -- calendar models | |||
prolepticGregorian = 'Q1985727' | |||
} | } | ||
Zeile 95: | Zeile 97: | ||
return '' | return '' | ||
end | end | ||
end | |||
-- is calendar model a Gregorian calendar? | |||
function wu.isGregorian( t ) | |||
return type( t ) == 'string' or t.calendarmodel == wd.Gregorian | |||
or t.calendarmodel == wd.prolepticGregorian | |||
end | |||
-- extract date from time | |||
function wu.getDateFromTime( t ) | |||
local model = wd.prolepticGregorian | |||
if type( t ) == 'table' then | |||
model = t.calendarmodel | |||
t = t.time | |||
end | |||
t = t:gsub( '^+', '' ):gsub( 'T.+Z$', '' ):gsub( '-00$', '' ) | |||
:gsub( '-00$', '' ) | |||
return t, model | |||
end | end | ||
Zeile 251: | Zeile 271: | ||
end | end | ||
elseif t == 'quantity' then | elseif t == 'quantity' then | ||
v.amount = v.amount:gsub( '^+', '' ) | |||
if tonumber( v.amount ) == 0 then | |||
v.amount = '0' | |||
end | |||
if v.unit == '1' then | if v.unit == '1' then | ||
v = tonumber( v.amount ) or 1 | v = tonumber( v.amount ) or 1 | ||
else | |||
v.unit = wu.getUnit( v.unit ) | |||
end | end | ||
elseif t == 'time' then | elseif t == 'time' then | ||
v = v.time | v.calendarmodel = wu.getUnit( v.calendarmodel ) | ||
if wu.isGregorian( v ) then | |||
v = v.time | |||
end | |||
end | end | ||
end | end | ||
Zeile 262: | Zeile 291: | ||
-- The following function is an experimental one, not for extensive use | -- The following function is an experimental one, not for extensive use | ||
-- for qualifiers, references | |||
-- { item1, item2, ... } : using named qualifiers/references | |||
-- {} : using no qualifiers/references | |||
-- nil : using all qualifiers/references | |||
function wu.getValuesWithQualifiers( entity, p, qualifiers, references, count, | function wu.getValuesWithQualifiers( entity, p, qualifiers, references, count, | ||
labelFct, ... ) | labelFct, ... ) |