Mercurial > wow > lfg-premade-filter
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() |