https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Duration&feed=atom&action=historyModule:Duration - Revision history2024-03-28T15:53:40ZRevision history for this page on the wikiMediaWiki 1.41.0https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Duration&diff=24562&oldid=prevJohnrdorazio: 1 revision imported2020-10-18T12:29:35Z<p>1 revision imported</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:29, October 18, 2020</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Johnrdoraziohttps://en.seminaverbi.bibleget.io/w/index.php?title=Module:Duration&diff=24561&oldid=preven>Pppery: Fix error message per edit request2020-05-11T14:05:19Z<p>Fix error message per edit request</p>
<p><b>New page</b></p><div>local p = {}<br />
<br />
function p._error( error_str )<br />
return '[[Category:Duration with input error]]<strong class="error">Error in Module:Duration: ' .. error_str .. '</strong>'<br />
end<br />
<br />
function p.main(frame)<br />
local args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:Duration', 'Template:Duration/sandbox'}})<br />
local tmp = args.duration or args[1] or ''<br />
local duration = {}<br />
if tonumber(args[1]) or args[2] or args[3] then<br />
if args[4] then return p._error('Parameter number 4 should not be specified') end<br />
if not args[1] or args[1] == '' then<br />
duration = {args[2] or 0, args[3] or 0}<br />
else<br />
duration = {args[1], args[2] or 0, args[3] or 0}<br />
end<br />
tmp = nil<br />
for k, v in ipairs(duration) do<br />
duration[k] = tonumber(v)<br />
if not duration[k] then return p._error('Invalid values') end<br />
end<br />
elseif args.h or args.m or args.s then<br />
if not args.h or args.h == '' then<br />
duration = {args.m or 0, args.s or 0}<br />
else<br />
duration = {args.h, args.m or 0, args.s or 0}<br />
end<br />
tmp = nil<br />
for k, v in ipairs(duration) do<br />
duration[k] = tonumber(v)<br />
if not duration[k] then return p._error('Invalid values') end<br />
end<br />
else<br />
if mw.ustring.find(tmp, 'class="duration"', 1, yes) then return tmp end -- if there is already a microformat, don't do anything<br />
duration = mw.text.split(mw.ustring.match(tmp, '%d*:?%d+:%d+%.?%d*') or '', ':') -- split into table<br />
if duration[4] then return p._error('Maximum of two colons allowed') end<br />
for k, v in ipairs(duration) do duration[k] = tonumber(v) or 0 end -- convert values to numbers<br />
end<br />
if duration[3] then<br />
if (duration[1] + duration[2] + duration[3]) == 0 then return nil end<br />
if (duration[1] ~= math.ceil(duration[1])) or (duration[2] ~= math.ceil(duration[2])) then return p._error('Hours and minutes values must be integers') end<br />
if duration[3] >= 60 then return p._error('Seconds value must be less than 60') end<br />
if duration[2] >= 60 then return p._error('Minutes value must be less than 60 if hours value is specified') end<br />
if duration[2] < 10 then duration[2] = '0'..duration[2] end -- zero padding<br />
if duration[3] < 10 then duration[3] = '0'..duration[3] end<br />
duration = '<span class="duration"><span class="h">' .. duration[1] .. '</span>:<span class="min">' .. duration[2] .. '</span>:<span class="s">' .. duration[3] .. '</span></span>'<br />
elseif duration[2] then<br />
if (duration[1] + duration[2]) == 0 then return nil end<br />
if duration[1] ~= math.ceil(duration[1]) then return p._error('Hours and minutes values must be integers') end<br />
if duration[2] >= 60 then return p._error('Seconds value must be less than 60') end<br />
if duration[2] < 10 then duration[2] = '0'..duration[2] end -- zero padding<br />
duration = '<span class="duration"><span class="min">' .. duration[1] .. '</span>:<span class="s">' .. duration[2] .. '</span></span>'<br />
else<br />
duration = ''<br />
end<br />
<br />
if tmp and tmp ~= '' then<br />
if duration ~= '' then tmp = mw.ustring.gsub(tmp, '%d*:?%d+:%d+%.?%d*', duration, 1) else tmp = tmp .. ' [[Category:Duration without hAudio microformat]]' end<br />
else<br />
if duration ~= '' then tmp = duration end<br />
end<br />
return tmp<br />
end<br />
<br />
return p</div>en>Pppery