Retail 10.2.7.54604 - Utilize New Filter API To Improve Search
raidplan-io opened this issue · 5 comments
Is your feature request related to a problem? Please describe.
Sorta. Currently if you select a single dungeon or other specific filters within PGF, many results can be excluded unless you also use a more specific search (or now, new filters) on the group finder UI.
Describe the solution you'd like
Make use of C_LFGList.GetAdvancedFilter
and C_LFGList.SaveAdvancedFilter
to apply PGF criteria to the native filter.
Describe alternatives you've considered
n/a
Additional context
-- fetch the current native filters
local filters = C_LFGList.GetAdvancedFilter()
-- apply PGF criteria, e.g.,
filters.hasTank = true
filters.needsHealer = true
-- save to native filters
C_LFGList.SaveAdvancedFilter(filters)
-- rerun search
It wouldn't be necessary to remove the filtering capabilities for PGF. Instead, just adding the available native filters when those APIs are available (Retail only it seems) would augment the existing functionality.
This would be a pretty nice QOL change for PGF.
Thanks for the PR, very nice work. I created a branch feature/blizz-filters where I copied and adjusted some of your code. Still work in progress.
I still wonder about the interaction between Blizz' and PGF's filters. At the moment, it's one-way only and PGF overwrites Blizz. Syncing in the other direction is easy for dungeons, but complicated for e.g. needsTank
. So probably not the best idea. I removed overwriting of the needsMyClass
filter, as there is no checkbox equivalent in PGF. This way players may use this filter together with PGF.
Another thing in my mind is that you have press the search button to trigger a new search with Blizz' advanced filters. I think it's fine though. Triggering a new search on every click will create too many searches and trigger the rate limit ("please wait a moment before searching again").
Last thought: If someone decides to set a dungeon filter via keyword in a complex expression, I cannot really filter out if the dungeon should be selected or not. I do not like this inconsistency, but I can't really do anything about it.
Things on my TODO list:
- Disable the class circle on retail and also by default, but keep it for Wrath and Cata
- Disable the class listing in the tooltip, but keep it for Wrath and Cata
- Investigate why class bar order is not correct
- Investigate missing timer
- Investigate wrong sorting, especially with applications
- Disable the class circle on retail: done
- Disable the class listing in the tooltip: done.
- Investigate why class bar order is not correct: My code uses a different method of sorting the members and displaying the circles and it is very hard to align the two methods. So I decided to disable all three options classCircle, classBar and leaderCrown.
- Investigate missing timer: timer is shown for me, no issue here.
- Investigate wrong sorting, especially with applications: Was sorted correctly as soon as all data was available, so I think there is not an issue here.
TODOs:
- Investigate if I need to change the background colouring of groups