annotate LFGFilter.lua @ 0:df29f8179b76

initial import
author ovolkov
date Wed, 12 Nov 2014 08:48:32 +0300
parents
children 041bc456db50
rev   line source
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 }