Files
aux-addon-ClassicAPI/scan_frame.lua
T
2016-01-16 17:03:23 +01:00

77 lines
1.8 KiB
Lua

local private, public = {}, {}
Aux.history_frame = public
function public.on_close()
end
function public.on_open()
end
function public.start_scan()
-- if not AuxHistoryScanButton:IsVisible() then
-- return
-- end
AuxHistoryScanButton:Hide()
AuxHistoryStopButton:Show()
private.scanned_signatures = Aux.util.set()
Aux.log('Scanning auctions ...')
Aux.scan.start{
query = {},
page = 0,
on_page_loaded = function(page, total_pages)
Aux.log('Scanning page '..(page+1)..' out of '..total_pages..' ...')
end,
on_read_auction = function(auction_info)
private.process_auction(auction_info)
end,
on_complete = function()
private.update_snapshot()
AuxHistoryStopButton:Hide()
AuxHistoryScanButton:Show()
end,
on_abort = function()
private.update_snapshot()
AuxHistoryStopButton:Hide()
AuxHistoryScanButton:Show()
end,
next_page = function(page, total_pages)
local last_page = max(total_pages - 1, 0)
if page < last_page then
return page + 1
end
end,
}
end
function public.stop_scan()
Aux.scan.abort()
end
function private.update_snapshot()
local snapshot = Aux.persistence.load_snapshot()
for _, sig in ipairs(snapshot.values()) do
if not private.scanned_signatures.contains(sig) then
snapshot.remove(sig)
end
end
end
function private.process_auction(auction_info)
private.scanned_signatures.add(auction_info.signature)
local snapshot = Aux.persistence.load_snapshot()
if not snapshot.contains(auction_info.signature) then
snapshot.add(auction_info.signature)
Aux.stat_average.process_auction(auction_info)
end
end