diff options
Diffstat (limited to 'beets/dbcore/query.py')
-rw-r--r-- | beets/dbcore/query.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/beets/dbcore/query.py b/beets/dbcore/query.py index 016fe2c1a..166b385cf 100644 --- a/beets/dbcore/query.py +++ b/beets/dbcore/query.py @@ -22,6 +22,8 @@ from datetime import datetime, timedelta import unicodedata from functools import reduce +from .database import add_db_function + class ParsingError(ValueError): """Abstract class for any unparseable user-requested album/query @@ -231,6 +233,13 @@ class RegexpQuery(StringFieldQuery): "a regular expression", format(exc)) + @staticmethod + @add_db_function() + def regexp(value, pattern) -> bool: + if isinstance(value, bytes): + value = value.decode() + return re.search(pattern, str(value)) is not None + def col_clause(self): return f" regexp({self.field}, ?)", [self.pattern.pattern] |