module/greent refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-09-01 20:40:23 +02:00
parent 03d7dfb204
commit 0d8f5427b2
11 changed files with 268 additions and 255 deletions
+26 -26
View File
@@ -41,7 +41,7 @@ public.filters = {
},
['left'] = {
input_type = list('30m', '2h', '8h', '24h'),
input_type = A('30m', '2h', '8h', '24h'),
validator = function(index)
return function(auction_record)
return auction_record.duration == index
@@ -50,7 +50,7 @@ public.filters = {
},
['rarity'] = {
input_type = list('poor', 'common', 'uncommon', 'rare', 'epic'),
input_type = A('poor', 'common', 'uncommon', 'rare', 'epic'),
validator = function(index)
return function(auction_record)
return auction_record.quality == index - 1
@@ -203,11 +203,11 @@ public.filters = {
}
function operator(str)
local operator = str == 'not' and list('operator', 'not', 1)
for name in temp-set('and', 'or') do
local operator = str == 'not' and A('operator', 'not', 1)
for name in temp-S('and', 'or') do
for arity in present(select(3, strfind(str, '^'..name..'(%d*)$'))) do
arity = tonumber(arity)
operator = not (arity and arity < 2) and list('operator', name, arity)
operator = not (arity and arity < 2) and A('operator', name, arity)
end
end
return operator or nil
@@ -223,35 +223,35 @@ do
if self.exact then return end
for number in present(tonumber(select(3, strfind(str, '^(%d+)$')))) do
if number >= 1 and number <= 60 then
for _, key in temp-list('min_level', 'max_level') do
for _, key in temp-A('min_level', 'max_level') do
if not self[key] then
self[key] = list(str, number)
return list('blizzard', key, str, number)
self[key] = A(str, number)
return A('blizzard', key, str, number)
end
end
end
end
for _, parser in temp-list(
temp-list('class', info.item_class_index),
temp-list('subclass', L(info.item_subclass_index, index(self.class, 2) or 0, _1)),
temp-list('slot', L(info.item_slot_index, index(self.class, 2) or 0, index(self.subclass, 2) or 0, _1)),
temp-list('quality', info.item_quality_index)
for _, parser in temp-A(
temp-A('class', info.item_class_index),
temp-A('subclass', L(info.item_subclass_index, index(self.class, 2) or 0, _1)),
temp-A('slot', L(info.item_slot_index, index(self.class, 2) or 0, index(self.subclass, 2) or 0, _1)),
temp-A('quality', info.item_quality_index)
) do
if not self[parser[1]] then
tinsert(parser, str)
local index, label = parser[2](select(3, unpack(parser)))
if index then
self[parser[1]] = list(label, index)
return list('blizzard', parser[1], label, index)
self[parser[1]] = A(label, index)
return A('blizzard', parser[1], label, index)
end
end
end
if not self[str] and (str == 'usable' or str == 'exact' and self.name and size(self) == 1) then
self[str] = list(str, 1)
return list('blizzard', str, 1)
self[str] = A(str, 1)
return A('blizzard', str, 1)
elseif i == 1 and strlen(str) <= 63 then
self.name = list(str, unquote(str))
return list('blizzard', 'name', str, unquote(str))
self.name = A(str, unquote(str))
return A('blizzard', 'name', str, unquote(str))
-- return nil, 'The name filter must not be longer than 63 characters' TODO
end
end,
@@ -299,10 +299,10 @@ function public.parse_filter_string(str)
return nil, 'Invalid input for '..parts[i]..'. Expecting: '..input_type
end
end
tinsert(post_filter, list('filter', parts[i], parts[i + 1]))
tinsert(post_filter, A('filter', parts[i], parts[i + 1]))
i = i + 1
else
tinsert(post_filter, list('filter', parts[i]))
tinsert(post_filter, A('filter', parts[i]))
end
tinsert(filter, post_filter[getn(post_filter)])
else
@@ -310,7 +310,7 @@ function public.parse_filter_string(str)
if part then
tinsert(filter, part)
elseif parts[i] ~= '' then
tinsert(post_filter, list('filter', 'tooltip', parts[i]))
tinsert(post_filter, A('filter', 'tooltip', parts[i]))
tinsert(filter, post_filter[getn(post_filter)])
else
return nil, 'Empty modifier'
@@ -384,19 +384,19 @@ function suggestions(filter)
-- classes
if not filter.blizzard.class then
for _, class in temp-list(GetAuctionItemClasses()) do tinsert(suggestions, class) end
for _, class in temp-A(GetAuctionItemClasses()) do tinsert(suggestions, class) end
end
-- subclasses
if not filter.blizzard.subclass then
for _, subclass in temp-list(GetAuctionItemSubClasses(index(filter.blizzard.class, 2) or 0)) do
for _, subclass in temp-A(GetAuctionItemSubClasses(index(filter.blizzard.class, 2) or 0)) do
tinsert(suggestions, subclass)
end
end
-- slots
if not filter.blizzard.slot then
for _, invtype in temp-list(GetAuctionInvTypes(index(filter.blizzard.class, 2) or 0, index(filter.blizzard.subclass, 2) or 0)) do
for _, invtype in temp-A(GetAuctionInvTypes(index(filter.blizzard.class, 2) or 0, index(filter.blizzard.subclass, 2) or 0)) do
tinsert(suggestions, _G[invtype])
end
end
@@ -510,7 +510,7 @@ function blizzard_query(filter)
query.slot = slot_index
query.quality = item_info.quality
else
for key in temp-set('min_level', 'max_level', 'class', 'subclass', 'slot', 'usable', 'quality') do
for key in temp-S('min_level', 'max_level', 'class', 'subclass', 'slot', 'usable', 'quality') do
query[key] = index(filters[key], 2)
end
end
+5 -5
View File
@@ -190,7 +190,7 @@ function public.set_shopping_tooltip(slot)
end
if tooltips[1] then
tinsert(tooltips[1], 1, temp-T('left_text', 'Currently Equipped', 'left_color', temp-list(.5, .5, .5)))
tinsert(tooltips[1], 1, temp-T('left_text', 'Currently Equipped', 'left_color', temp-A(.5, .5, .5)))
ShoppingTooltip1:SetOwner(GameTooltip, 'ANCHOR_BOTTOMRIGHT')
load_tooltip(ShoppingTooltip1, tooltips[1])
ShoppingTooltip1:Show()
@@ -198,7 +198,7 @@ function public.set_shopping_tooltip(slot)
end
if tooltips[2] then
tinsert(tooltips[2], 1, temp-T('left_text', 'Currently Equipped', 'left_color', temp-list(.5, .5, .5)))
tinsert(tooltips[2], 1, temp-T('left_text', 'Currently Equipped', 'left_color', temp-A(.5, .5, .5)))
ShoppingTooltip2:SetOwner(ShoppingTooltip1, 'ANCHOR_BOTTOMRIGHT')
load_tooltip(ShoppingTooltip2, tooltips[2])
ShoppingTooltip2:Show()
@@ -371,7 +371,7 @@ function public.item(item_id, suffix_id)
end
function public.item_class_index(item_class)
for i, class in temp-list(GetAuctionItemClasses()) do
for i, class in temp-A(GetAuctionItemClasses()) do
if item_class == nil then error() end
if strupper(class) == strupper(item_class) then
return i, class
@@ -380,7 +380,7 @@ function public.item_class_index(item_class)
end
function public.item_subclass_index(class_index, item_subclass)
for i, subclass in temp-list(GetAuctionItemSubClasses(class_index)) do
for i, subclass in temp-A(GetAuctionItemSubClasses(class_index)) do
if strupper(subclass) == strupper(item_subclass) then
return i, subclass
end
@@ -388,7 +388,7 @@ function public.item_subclass_index(class_index, item_subclass)
end
function public.item_slot_index(class_index, subclass_index, slot_name)
for i, slot in temp-list(GetAuctionInvTypes(class_index, subclass_index)) do
for i, slot in temp-A(GetAuctionInvTypes(class_index, subclass_index)) do
if strupper(_G[slot]) == strupper(slot_name) then
return i, _G[slot]
end