4,951
edits
Falterfire (talk | contribs) (Added timeString function) |
Falterfire (talk | contribs) (first attempt at p.tablesEqual) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 178: | Line 178: | ||
if(maxDigits ~= nil and decimals > maxDigits) then | if(maxDigits ~= nil and decimals > maxDigits) then | ||
result = tonumber(string.format("%."..maxDigits.."f", result)) | result = string.format("%."..minDigits.."f", tonumber(string.format("%."..maxDigits.."f", result))) | ||
elseif(minDigits ~= nil and decimals < minDigits) then | elseif(minDigits ~= nil and decimals < minDigits) then | ||
result = string.format("%."..minDigits.."f", result) | result = string.format("%."..minDigits.."f", result) | ||
Line 297: | Line 297: | ||
end | end | ||
function p.timeString(timeInSeconds) | function p.timeString(timeInSeconds, shorten) | ||
local remain = timeInSeconds | local remain = timeInSeconds | ||
local days, hours, minutes = 0, 0, 0 | local days, hours, minutes = 0, 0, 0 | ||
local isShort = shorten | |||
local pieces = {} | local pieces = {} | ||
Line 306: | Line 307: | ||
days = math.floor(remain / 86400) | days = math.floor(remain / 86400) | ||
remain = remain - days * 86400 | remain = remain - days * 86400 | ||
if days > 1 then | if isShort then | ||
table.insert(pieces, days..'d') | |||
elseif days > 1 then | |||
table.insert(pieces, days..' days') | table.insert(pieces, days..' days') | ||
else | else | ||
Line 315: | Line 318: | ||
hours = math.floor(remain / 3600) | hours = math.floor(remain / 3600) | ||
remain = remain - hours * 3600 | remain = remain - hours * 3600 | ||
if hours > 1 then | if isShort then | ||
table.insert(pieces, hours..'h') | |||
elseif hours > 1 then | |||
table.insert(pieces, hours..' hours') | table.insert(pieces, hours..' hours') | ||
else | else | ||
Line 324: | Line 329: | ||
minutes = math.floor(remain / 60) | minutes = math.floor(remain / 60) | ||
remain = remain - minutes * 60 | remain = remain - minutes * 60 | ||
if minutes > 1 then | if isShort then | ||
table.insert(pieces, minutes..'m') | |||
elseif minutes > 1 then | |||
table.insert(pieces, minutes..' minutes') | table.insert(pieces, minutes..' minutes') | ||
else | else | ||
Line 331: | Line 338: | ||
end | end | ||
if remain > 0 then | if remain > 0 then | ||
if remain > 1 then | if isShort then | ||
table.insert(pieces, remain..'s') | |||
elseif remain > 1 then | |||
table.insert(pieces, remain..' seconds') | table.insert(pieces, remain..' seconds') | ||
else | else | ||
Line 339: | Line 348: | ||
return table.concat(pieces, ', ') | return table.concat(pieces, ', ') | ||
end | end | ||
function p.fixPagename(pageName) | |||
local result = pageName | |||
result = string.gsub(result, "%%27", "'") | |||
result = string.gsub(result, "'", "'") | |||
return result | |||
end | |||
function p.tablesEqual(t1, t2) | |||
if p.tableCount(t1) ~= p.tableCount(t2) then return false end | |||
for i, val in p.skpairs(t1) do | |||
if type(val) ~= type(t2[i]) then | |||
return false | |||
elseif type(val) == 'table' then | |||
if not p.tablesEqual(val, t2[i]) then return false end | |||
elseif t2[i] ~= val then | |||
return false | |||
end | |||
end | |||
return true | |||
end | |||
return p | return p |