comparison LFGFilter.lua @ 10:627bb3803132

aliases support; convert plural support to aliases
author ovolkov
date Tue, 03 Feb 2015 07:41:39 +0300
parents 1c43d75054e7
children bd476e399376
comparison
equal deleted inserted replaced
9:7bc12a08a3d4 10:627bb3803132
9 if error then print("Error in LFG filter expression:\n", error) end 9 if error then print("Error in LFG filter expression:\n", error) end
10 t[key] = func 10 t[key] = func
11 return func 11 return func
12 end 12 end
13 }) 13 })
14
15 local aliases = {
16 hm = "highmaul",
17 healers = "healer",
18 members = "member",
19 tanks = "tank",
20 damagers = "damager",
21 damage = "damager",
22 plates = "plate",
23 mails = "mail",
24 leathers = "leather",
25 cloths = "cloth",
26 clothies = "cloth",
27 }
28 for idx = 1, MAX_CLASSES do
29 local class_lc = CLASS_SORT_ORDER[idx]:lower()
30 aliases[class_lc .. "s"] = class_lc
31 end
14 32
15 function LFGListSearchPanel_DoSearch(self) 33 function LFGListSearchPanel_DoSearch(self)
16 local searchText = self.SearchBox:GetText(); 34 local searchText = self.SearchBox:GetText();
17 local real_search, filter_expression = searchText:match("^([^=]-)=(.+)$") 35 local real_search, filter_expression = searchText:match("^([^=]-)=(.+)$")
18 if filter_expression then 36 if filter_expression then
48 result_env.name = name:lower() 66 result_env.name = name:lower()
49 result_env.comment = comment:lower() 67 result_env.comment = comment:lower()
50 result_env.ilvl = iLvl 68 result_env.ilvl = iLvl
51 -- TODO: should be calculated in meta 69 -- TODO: should be calculated in meta
52 result_env.defeated = completedEncounters and #completedEncounters or 0 70 result_env.defeated = completedEncounters and #completedEncounters or 0
53 result_env.members = numMembers
54 result_env.member = numMembers 71 result_env.member = numMembers
55 result_env.tanks = memberCounts.TANK
56 result_env.tank = memberCounts.TANK 72 result_env.tank = memberCounts.TANK
57 result_env.healers = memberCounts.HEALER
58 result_env.healer = memberCounts.HEALER 73 result_env.healer = memberCounts.HEALER
59 result_env.damagers = memberCounts.DAMAGER + memberCounts.NOROLE
60 result_env.damager = memberCounts.DAMAGER + memberCounts.NOROLE 74 result_env.damager = memberCounts.DAMAGER + memberCounts.NOROLE
61 result_env.my_server = leaderName and not leaderName:find('-') 75 result_env.my_server = leaderName and not leaderName:find('-')
62 76
63 for idx = 1, numMembers do 77 for idx = 1, numMembers do
64 local role, class, classLocalized = C_LFGList.GetSearchResultMemberInfo(id, idx) 78 local role, class, classLocalized = C_LFGList.GetSearchResultMemberInfo(id, idx)
67 result_env[class_lc] = prev_count and (prev_count + 1) or 0 81 result_env[class_lc] = prev_count and (prev_count + 1) or 0
68 end 82 end
69 for idx = 1, MAX_CLASSES do 83 for idx = 1, MAX_CLASSES do
70 local class_lc = CLASS_SORT_ORDER[idx]:lower() 84 local class_lc = CLASS_SORT_ORDER[idx]:lower()
71 local count = result_env[class_lc] 85 local count = result_env[class_lc]
72 if count then 86 if not count then result_env[class_lc] = 0 end
73 result_env[class_lc .. "s"] = count
74 else
75 result_env[class_lc] = 0
76 result_env[class_lc .. "s"] = 0
77 end
78 end 87 end
79 88
80 if activityID == 37 then 89 if activityID == 37 then
81 result_env.highmaul = true 90 result_env.highmaul = true
82 result_env.normal = true 91 result_env.normal = true
83 elseif activityID == 38 then 92 elseif activityID == 38 then
84 result_env.highmaul = true 93 result_env.highmaul = true
85 result_env.heroic = true 94 result_env.heroic = true
86 end 95 end
87 96
88 -- dump(result_env) 97 -- dump(result_env)
98
99 for alias, original in pairs(aliases) do result_env[alias] = result_env[original] end
100
101 -- dump(result_env)
89 102
90 local pass 103 local pass
91 if check then 104 if check then
92 setfenv(check, result_env) 105 setfenv(check, result_env)
93 pass = check() 106 pass = check()