Files
aux-addon-ClassicAPI/scan_frame.lua
T
2016-01-16 19:00:59 +01:00

70 lines
1.7 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()
Aux.log('Scan complete: Old auctions were removed from the snapshot.')
-- AuxHistoryStopButton:Hide()
-- AuxHistoryScanButton:Show()
end,
on_abort = function()
Aux.log('Scanning aborted.')
-- 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)
end