The AniList manga to check
The original Kenmei manga entry
Whether this is a manual search (skip rules don't apply)
True if manga should be skipped, false otherwise
export function shouldSkipByCustomRules(
manga: AniListManga,
kenmeiManga: KenmeiManga,
isManualSearch: boolean,
): boolean {
// Custom skip rules don't apply to manual searches
if (isManualSearch) {
return false;
}
const customRules = getMatchConfig().customRules;
if (!customRules) {
return false;
}
// Normalize customRules arrays defensively to handle malformed storage
const skipRules = Array.isArray(customRules.skipRules)
? customRules.skipRules
: [];
if (!skipRules.length) {
return false;
}
// Filter to enabled rules only
const enabledSkipRules = skipRules.filter((rule) => rule.enabled);
if (!enabledSkipRules.length) {
return false;
}
// Check each enabled skip rule
for (const rule of enabledSkipRules) {
if (testRuleAgainstMetadata(rule, manga, kenmeiManga)) {
const checkedFields = getEffectiveTargetFields(rule);
console.debug(
`[CustomRules] ⏭️ Skipping manga "${manga.title?.romaji || manga.title?.english || "unknown"}" due to custom skip rule: "${rule.description}" (checked fields: ${checkedFields.join(", ")})`,
);
return true;
}
}
return false;
}
Checks if manga should be skipped based on custom skip rules.