summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/db/bundb/filter.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/db/bundb/filter.go b/internal/db/bundb/filter.go
index 30a8494a7..2ac9f6a81 100644
--- a/internal/db/bundb/filter.go
+++ b/internal/db/bundb/filter.go
@@ -154,6 +154,13 @@ func (f *filterDB) populateFilter(ctx context.Context, filter *gtsmodel.Filter)
}
func (f *filterDB) PutFilter(ctx context.Context, filter *gtsmodel.Filter) error {
+ // Pre-compile filter keyword regular expressions.
+ for _, filterKeyword := range filter.Keywords {
+ if err := filterKeyword.Compile(); err != nil {
+ return gtserror.Newf("error compiling filter keyword regex: %w", err)
+ }
+ }
+
// Update database.
if err := f.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
if _, err := tx.
@@ -225,6 +232,13 @@ func (f *filterDB) UpdateFilter(
}
}
+ // Pre-compile filter keyword regular expressions.
+ for _, filterKeyword := range filter.Keywords {
+ if err := filterKeyword.Compile(); err != nil {
+ return gtserror.Newf("error compiling filter keyword regex: %w", err)
+ }
+ }
+
// Update database.
if err := f.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
if _, err := tx.