Modul:Wikidata utilities: Unterschied zwischen den Versionen
+ getLastedit
(moduleInterface) |
(+ getLastedit) |
||
Zeile 4: | Zeile 4: | ||
local WikidataUtilities = { | local WikidataUtilities = { | ||
suite = 'WikidataUtilities', | suite = 'WikidataUtilities', | ||
serial = '2021- | serial = '2021-05-30', | ||
item = 65439025 | item = 65439025 | ||
} | } | ||
Zeile 10: | Zeile 10: | ||
-- i18n | -- i18n | ||
local wd = { | local wd = { | ||
version = 'P348', | version = 'P348', | ||
retrieved = 'P813', | |||
Gregorian = 'Q12138', -- calendar models | Gregorian = 'Q12138', -- calendar models | ||
prolepticGregorian = 'Q1985727' | prolepticGregorian = 'Q1985727' | ||
Zeile 437: | Zeile 438: | ||
return results | return results | ||
end | |||
-- get lastEdit from reference retrieve date | |||
function wu.getLastedit( lastEdit, statements ) | |||
local isBoolean = type( lastEdit ) == 'boolean' | |||
if isBoolean and lastEdit == false then | |||
return lastEdit | |||
end | |||
local le = '' | |||
for _, statement in ipairs( statements ) do | |||
if statement.references then | |||
for _, reference in ipairs( statement.references ) do | |||
if reference[ wd.retrieved ] then | |||
for _, retrieved in ipairs( reference[ wd.retrieved ] ) do | |||
retrieved = wu.getDateFromTime( retrieved ) | |||
if retrieved > le then | |||
le = retrieved | |||
end | |||
end | |||
end | |||
end | |||
end | |||
end | |||
if isBoolean then | |||
return ( le ~= '' ) and le or lastEdit | |||
else | |||
return ( le > lastEdit ) and le or lastEdit | |||
end | |||
end | end | ||