67 lines
2.1 KiB
Lua
67 lines
2.1 KiB
Lua
local m = {}
|
|
Aux.scan_util = m
|
|
|
|
function m.find(test, 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 }
|
|
|
|
query = Aux.util.copy_table(query)
|
|
query.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
|
|
|
|
Aux.scan.start{
|
|
queries = { query },
|
|
on_read_auction = function(auction_info, ctrl)
|
|
if test(auction_info.index) then
|
|
ctrl.suspend()
|
|
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,
|
|
on_complete = function()
|
|
status_bar:update_status(100, 100)
|
|
status_bar:set_text('Auction not found')
|
|
on_failure()
|
|
end,
|
|
}
|
|
end)
|
|
end
|
|
|
|
function m.create_item_query(item_id, type, start_page, next_page)
|
|
local item_info = Aux.static.item_info(item_id)
|
|
|
|
-- local class_index = Aux.item_class_index(item_info.class)
|
|
-- local subclass_index = class_index and Aux.item_subclass_index(class_index, item_info.subclass) -- TODO test if needed
|
|
|
|
return item_info and {
|
|
type = type,
|
|
start_page = start_page,
|
|
next_page = next_page,
|
|
name = item_info.name,
|
|
min_level = item_info.level,
|
|
min_level = item_info.level,
|
|
slot = item_info.slot,
|
|
-- class = class_index,
|
|
-- subclass = subclass_index,
|
|
-- class = Aux.item_class_index(item_info.class),
|
|
-- subclass = item_info.subclass,
|
|
quality = item_info.quality,
|
|
usable = item_info.usable,
|
|
}
|
|
end |