ovolkov@0
|
1 local aName, aEnv = ...
|
ovolkov@0
|
2 aEnv.LFGFilter_Allow_Activity = {}
|
ovolkov@0
|
3 aEnv.LFGFilter_Allow_Activity.count = 0
|
ovolkov@0
|
4 local LFGFilter_Allow_Activity = aEnv.LFGFilter_Allow_Activity
|
ovolkov@0
|
5
|
ovolkov@0
|
6 function LFGListUtil_SortSearchResults(results)
|
ovolkov@0
|
7 if LFGFilter_Allow_Activity.count > 0 then
|
ovolkov@0
|
8 local shift_down = 0
|
ovolkov@0
|
9 local original_size = #results
|
ovolkov@0
|
10 for idx = 1, original_size do
|
ovolkov@0
|
11 local result = results[idx]
|
ovolkov@0
|
12 local _, activityID = C_LFGList.GetSearchResultInfo(result)
|
ovolkov@0
|
13 if LFGFilter_Allow_Activity[activityID] then
|
ovolkov@0
|
14 if shift_down > 0 then
|
ovolkov@0
|
15 results[idx - shift_down] = result
|
ovolkov@0
|
16 end
|
ovolkov@0
|
17 else
|
ovolkov@0
|
18 shift_down = shift_down + 1
|
ovolkov@0
|
19 end
|
ovolkov@0
|
20 end
|
ovolkov@0
|
21 for idx = original_size - shift_down + 1, original_size do
|
ovolkov@0
|
22 results[idx] = nil
|
ovolkov@0
|
23 end
|
ovolkov@0
|
24 end
|
ovolkov@0
|
25 table.sort(results, LFGListUtil_SortSearchResultsCB);
|
ovolkov@0
|
26 end
|
ovolkov@0
|
27
|
ovolkov@0
|
28 function LFGListUtil_SortSearchResultsCB(id1, id2)
|
ovolkov@0
|
29 local id1, activityID1, name1, comment1, voiceChat1, iLvl1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = C_LFGList.GetSearchResultInfo(id1);
|
ovolkov@0
|
30 local id2, activityID2, name2, comment2, voiceChat2, iLvl2, age2, numBNetFriends2, numCharFriends2, numGuildMates2, isDelisted2 = C_LFGList.GetSearchResultInfo(id2);
|
ovolkov@0
|
31
|
ovolkov@0
|
32 --If one has more friends, do that one first
|
ovolkov@0
|
33 if ( numBNetFriends1 ~= numBNetFriends2 ) then
|
ovolkov@0
|
34 return numBNetFriends1 > numBNetFriends2;
|
ovolkov@0
|
35 end
|
ovolkov@0
|
36
|
ovolkov@0
|
37 if ( numCharFriends1 ~= numCharFriends2 ) then
|
ovolkov@0
|
38 return numCharFriends1 > numCharFriends2;
|
ovolkov@0
|
39 end
|
ovolkov@0
|
40
|
ovolkov@0
|
41 if ( numGuildMates1 ~= numGuildMates2 ) then
|
ovolkov@0
|
42 return numGuildMates1 > numGuildMates2;
|
ovolkov@0
|
43 end
|
ovolkov@0
|
44
|
ovolkov@0
|
45 if ( activityID1 ~= activityID2 ) then
|
ovolkov@0
|
46 return activityID1 > activityID2;
|
ovolkov@0
|
47 end
|
ovolkov@0
|
48
|
ovolkov@0
|
49 --If we aren't sorting by anything else, just go by ID
|
ovolkov@0
|
50 return id1 < id2;
|
ovolkov@0
|
51 end
|
ovolkov@0
|
52
|
ovolkov@0
|
53 function LFGPrintRawResults()
|
ovolkov@0
|
54 local totalResults, results = C_LFGList.GetSearchResults()
|
ovolkov@0
|
55 for idx = 1, totalResults do
|
ovolkov@0
|
56 local id1, activityID1, name1, comment1, voiceChat1, iLvl1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = C_LFGList.GetSearchResultInfo(results[idx])
|
ovolkov@0
|
57 print(id1, activityID1, C_LFGList.GetActivityInfo(activityID1), '*', name1)
|
ovolkov@0
|
58 end
|
ovolkov@0
|
59 end
|
ovolkov@0
|
60
|
ovolkov@0
|
61 -- SoO (Normal): 4
|
ovolkov@0
|
62 -- SoO (Heroic): 41
|
ovolkov@0
|
63 -- SoO (Mythic): 42
|
ovolkov@0
|
64 -- /run LFGFilter_Allow_Activity = { [42] = true } |