The manga match result to evaluate.
Advanced filters including required genres.
True if no required genre is present.
export function failsGenreFilter(
match: MangaMatchResult,
filters: AdvancedMatchFilters,
): boolean {
if (filters.genres.length === 0) {
return false;
}
const matchManga = match.selectedMatch || match.anilistMatches?.[0]?.manga;
const genres = matchManga?.genres;
if (!genres?.length) {
return false;
}
const genresLower = new Set(
genres.map((genre: string) => genre.toLowerCase()),
);
return !filters.genres.some((filterGenre: string) =>
genresLower.has(filterGenre.toLowerCase()),
);
}
Returns whether a match violates the allowed genres filter.