diff --git a/beetsplug/lastgenre/__init__.py b/beetsplug/lastgenre/__init__.py index aafdca445..9860879a5 100644 --- a/beetsplug/lastgenre/__init__.py +++ b/beetsplug/lastgenre/__init__.py @@ -214,7 +214,14 @@ class LastGenrePlugin(plugins.BeetsPlugin): blacklist[section].append(line.strip()) if self.config["extended_debug"]: self._log.debug("Blacklist: {}", blacklist) - return blacklist + + # Compile regex patterns + compiled_blacklist = defaultdict(list) + for artist, patterns in blacklist.items(): + compiled_blacklist[artist] = [ + re.compile(pattern) for pattern in patterns + ] + return compiled_blacklist @property def sources(self) -> tuple[str, ...]: @@ -339,7 +346,7 @@ class LastGenrePlugin(plugins.BeetsPlugin): # Check global forbidden patterns if "*" in self.blacklist: for pattern in self.blacklist["*"]: - if re.search(pattern, genre): + if pattern.search(genre): return True # Check artist-specific forbidden patterns @@ -347,7 +354,7 @@ class LastGenrePlugin(plugins.BeetsPlugin): artist = artist.lower() if artist in self.blacklist: for pattern in self.blacklist[artist]: - if re.search(pattern, genre): + if pattern.search(genre): return True return False