storage activity wrong amounts

This commit is contained in:
kepler155c@gmail.com 2017-05-13 23:45:59 -04:00
parent 4cbb2b2257
commit c34b46699b
4 changed files with 24 additions and 6 deletions

View File

@ -78,7 +78,7 @@ function page:eventHandler(event)
title = t.label,
})
elseif event.type == 'trust' then
shell.run('trust ' .. t.id)
shell.openTab('trust ' .. t.id)
elseif event.type == 'reboot' then
sendCommand(t.id, 'reboot')
elseif event.type == 'shutdown' then

View File

@ -100,7 +100,11 @@ function changedPage:eventHandler(event)
return true
end
local function uniqueKey(item)
return table.concat({ item.name, item.damage, item.nbtHash }, ':')
end
function changedPage:refresh()
local t = storage:listItems('all')
@ -122,8 +126,7 @@ function changedPage:refresh()
for _,v in pairs(self.lastItems) do
found = false
for k2,v2 in pairs(t) do
if v.id == v2.id and
v.dmg == v2.dmg then
if uniqueKey(v) == uniqueKey(v2) then
if v.qty ~= v2.qty then
local c = Util.shallowCopy(v2)
c.lastQty = v.qty

View File

@ -5,14 +5,12 @@ local TableDB = require('tableDB')
local RefinedProvider = class()
local keys = {
'fields',
'damage',
'displayName',
'maxCount',
'maxDamage',
'name',
'nbtHash',
'rawName',
}
function RefinedProvider:init(args)
@ -78,6 +76,8 @@ function RefinedProvider:getCachedItemDetails(item)
detail = t
self.itemInfoDB:add(key, detail)
os.sleep(0) -- prevent timeout on large inventories
end
end
if detail then
@ -94,6 +94,9 @@ function RefinedProvider:listItems()
end)
if list then
local throttle = Util.throttle()
for _,v in pairs(list) do
local item = self:getCachedItemDetails(v)
if item then
@ -103,6 +106,7 @@ function RefinedProvider:listItems()
item.qty = v.count
table.insert(items, item)
end
throttle()
end
self.itemInfoDB:flush()
end

View File

@ -21,6 +21,17 @@ function Util.tryTimes(attempts, f, ...)
return unpack(result)
end
function Util.throttle()
local ts = os.time()
return function()
local nts = os.time()
if nts ~= ts then
ts = nts
os.sleep(0)
end
end
end
function Util.tostring(pattern, ...)
local function serialize(tbl, width)