-
-
Notifications
You must be signed in to change notification settings - Fork 519
feat: filter out genres in discovery, default user settings #4162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
…fault excluded genres system Includes user settings for default filtering, discover has automatic filters on these defaults, Popular X feeds have these filters automatically, adding a filtered genre removes it from genres and vice versa implements sct#3293
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds support for default excluded genres in user settings and integrates filterGenre
into discovery flows, cleaning up conflicts between included and excluded genres.
- Extends user settings schema with
filterMovieGenresDefault
andfilterTvGenresDefault
- Adds UI selectors for default exclusion in user profile and applies defaults in Discover components
- Propagates
filterGenre
through query parsing, filter counting, API routes, and TMDB requests
Reviewed Changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
src/hooks/useUser.ts | Added new user settings fields for excluded genres |
src/context/SettingsContext.tsx | Initialized default exclusion settings keys |
src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx | Added UI fields for movie/TV genre exclusion |
src/components/Settings/SettingsMain/index.tsx | Added translation messages for exclusion settings |
src/components/Selector/index.tsx | Updated GenreSelector to controlled value and handleChange |
src/components/Discover/constants.ts | Extended filter schema and parsing with filterGenre |
src/components/Discover/MovieGenreSlider/index.tsx | Slider header updated |
src/components/Discover/FilterSlideover/index.tsx | Integrated default exclusions and conflict resolution |
src/components/Discover/DiscoverTv/index.tsx | Applied TV default exclusions to filter count |
src/components/Discover/DiscoverMovies/index.tsx | Applied movie default exclusions to filter count |
server/routes/user/usersettings.ts | Exposed new exclusion fields in user settings API |
server/routes/discover.ts | Added filterGenre handling and conflict resolution |
server/lib/settings.ts | Added exclusion defaults to main settings model |
server/interfaces/api/userSettingsInterfaces.ts | Updated user settings response interface |
server/interfaces/api/settingsInterfaces.ts | Updated public settings interface |
server/entity/UserSettings.ts | Added DB columns for default excluded genres |
server/api/themoviedb/index.ts | Wired without_genres (filterGenre) into TMDB calls |
overseerr-api.yml | Documented filterGenre query parameter |
Comments suppressed due to low confidence (2)
src/components/Discover/FilterSlideover/index.tsx:70
- [nitpick] The variable
userDefaultfilterGenres
breaks camelCase consistency—consider renaming it touserDefaultFilterGenres
.
const userDefaultfilterGenres =
src/components/Discover/FilterSlideover/index.tsx:197
- The updated
countActiveFilters
now considers default exclusions and 'none'. Please add unit tests covering these new scenarios to ensure correctness.
defaultValue={filterGenresValue}
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…default settings error): ]
Description
Using TheMovieDB's
without_genres
query parameter, we are able to filter out chosen genres out of our search for movies and TV Shows.Added user settings for both categories, as these have different genres, which automatically gets applied every time the user goes to the Discover pages and when viewing the Popular X.
If a user adds a genre to the (Exclude) Genre, it gets removed from the other one and vice versa.
Screenshot (if UI-related)
To-Dos
yarn build
yarn i18n:extract
Issues Fixed or Closed