auto buy refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-10-12 20:43:09 +02:00
parent 30d1f40b50
commit 086077886e
5 changed files with 78 additions and 83 deletions
+28 -5
View File
@@ -1,12 +1,14 @@
module 'aux.tabs.search'
aux_autobuy_filters = t
local filter_util = require 'aux.util.filter'
aux_auto_buy_filters = t
aux_favorite_searches = t
aux_recent_searches = t
function private.update_search_listings()
local autobuy_filter_rows = t
for i, autobuy_filter in aux_autobuy_filters do
for i, autobuy_filter in aux_auto_buy_filters do
local name = strsub(autobuy_filter.prettified, 1, 250)
tinsert(autobuy_filter_rows, {
cols = {{ value=name }},
@@ -73,7 +75,7 @@ private.handlers = {
end
elseif button == 'RightButton' and IsAltKeyDown() then
if st ~= autobuy_listing then
tinsert(aux_autobuy_filters, 1, data.search)
tinsert(aux_auto_buy_filters, 1, data.search)
update_search_listings()
end
elseif button == 'LeftButton' then
@@ -81,7 +83,7 @@ private.handlers = {
execute()
elseif button == 'RightButton' then
if st == autobuy_listing then
tremove(aux_autobuy_filters, data.index)
tremove(aux_auto_buy_filters, data.index)
elseif st == recent_searches_listing then
tinsert(aux_favorite_searches, 1, data.search)
elseif st == favorite_searches_listing then
@@ -100,4 +102,25 @@ private.handlers = {
GameTooltip:ClearLines()
GameTooltip:Hide()
end
}
}
function private.auto_buy_validator.get()
local validators = t
for _, filter in aux_auto_buy_filters do
local queries, error = filter_util.queries(filter.filter_string)
if queries then
if getn(queries) > 1 then
return nil, 'The automatic buyout filter does not support multi-queries'
-- elseif size(queries[1].blizzard_query) > 0 then TODO allow exact
-- return nil, 'The automatic buyout filter does not support Blizzard filters'
else
tinsert(validators, queries[1].validator)
end
else
print('Invalid auto buy filter:', error)
end
end
return function(record)
return any(validators, function(validator) return validator(record) end)
end
end