Files
aux-addon-ClassicAPI/scan_util.lua
T
2016-01-26 17:45:39 +01:00

45 lines
1.4 KiB
Lua

local m = {}
Aux.scan_util = m
function m.find(type, test, search_query, page, status_bar, on_failure, on_success)
Aux.scan.abort(function()
status_bar:update_status(0, 0)
status_bar:set_text('Searching auction...')
local pages = page > 0 and { page, page - 1 } or { page }
Aux.scan.start{
type = type,
query = search_query,
on_read_auction = function(auction_info, ctrl)
if test(auction_info.index) then
ctrl.suspend()
Aux.scan.abort(function()
if not test(auction_info.index) then
return on_failure()
else
status_bar:update_status(100, 100)
status_bar:set_text('Auction found')
return on_success(auction_info.index)
end
end)
end
end,
on_complete = function()
status_bar:update_status(100, 100)
status_bar:set_text('Auction not found')
on_failure()
end,
next_page = function()
if getn(pages) == 1 then
status_bar:update_status(50, 50)
end
local page = pages[1]
tremove(pages, 1)
return page
end,
}
end)
end