ovolkov@0: local aName, aEnv = ... ovolkov@0: aEnv.LFGFilter_Allow_Activity = {} ovolkov@0: aEnv.LFGFilter_Allow_Activity.count = 0 ovolkov@0: local LFGFilter_Allow_Activity = aEnv.LFGFilter_Allow_Activity ovolkov@0: ovolkov@0: function LFGListUtil_SortSearchResults(results) ovolkov@0: if LFGFilter_Allow_Activity.count > 0 then ovolkov@0: local shift_down = 0 ovolkov@0: local original_size = #results ovolkov@0: for idx = 1, original_size do ovolkov@0: local result = results[idx] ovolkov@0: local _, activityID = C_LFGList.GetSearchResultInfo(result) ovolkov@0: if LFGFilter_Allow_Activity[activityID] then ovolkov@0: if shift_down > 0 then ovolkov@0: results[idx - shift_down] = result ovolkov@0: end ovolkov@0: else ovolkov@0: shift_down = shift_down + 1 ovolkov@0: end ovolkov@0: end ovolkov@0: for idx = original_size - shift_down + 1, original_size do ovolkov@0: results[idx] = nil ovolkov@0: end ovolkov@0: end ovolkov@0: table.sort(results, LFGListUtil_SortSearchResultsCB); ovolkov@0: end ovolkov@0: ovolkov@0: function LFGListUtil_SortSearchResultsCB(id1, id2) ovolkov@0: local id1, activityID1, name1, comment1, voiceChat1, iLvl1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = C_LFGList.GetSearchResultInfo(id1); ovolkov@0: local id2, activityID2, name2, comment2, voiceChat2, iLvl2, age2, numBNetFriends2, numCharFriends2, numGuildMates2, isDelisted2 = C_LFGList.GetSearchResultInfo(id2); ovolkov@0: ovolkov@0: --If one has more friends, do that one first ovolkov@0: if ( numBNetFriends1 ~= numBNetFriends2 ) then ovolkov@0: return numBNetFriends1 > numBNetFriends2; ovolkov@0: end ovolkov@0: ovolkov@0: if ( numCharFriends1 ~= numCharFriends2 ) then ovolkov@0: return numCharFriends1 > numCharFriends2; ovolkov@0: end ovolkov@0: ovolkov@0: if ( numGuildMates1 ~= numGuildMates2 ) then ovolkov@0: return numGuildMates1 > numGuildMates2; ovolkov@0: end ovolkov@0: ovolkov@0: if ( activityID1 ~= activityID2 ) then ovolkov@0: return activityID1 > activityID2; ovolkov@0: end ovolkov@0: ovolkov@0: --If we aren't sorting by anything else, just go by ID ovolkov@0: return id1 < id2; ovolkov@0: end ovolkov@0: ovolkov@0: function LFGPrintRawResults() ovolkov@0: local totalResults, results = C_LFGList.GetSearchResults() ovolkov@0: for idx = 1, totalResults do ovolkov@0: local id1, activityID1, name1, comment1, voiceChat1, iLvl1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = C_LFGList.GetSearchResultInfo(results[idx]) ovolkov@0: print(id1, activityID1, C_LFGList.GetActivityInfo(activityID1), '*', name1) ovolkov@0: end ovolkov@0: end ovolkov@0: ovolkov@0: -- SoO (Normal): 4 ovolkov@0: -- SoO (Heroic): 41 ovolkov@0: -- SoO (Mythic): 42 ovolkov@0: -- /run LFGFilter_Allow_Activity = { [42] = true }