diff options
| author | 2024-06-04 02:33:39 -0700 | |
|---|---|---|
| committer | 2024-06-04 10:33:39 +0100 | |
| commit | 45fe295caa633d0477796a028f1e93382a2a2ce9 (patch) | |
| tree | bd0f6a139991bd368d25db09724fcf1a9bcea2d7 /internal/db | |
| parent | [feature] log worker startup counts (#2958) (diff) | |
| download | gotosocial-45fe295caa633d0477796a028f1e93382a2a2ce9.tar.xz | |
Compile filter keyword regexps when touched through PutFilter or UpdateFilter (#2951)
Followup to #2903
Diffstat (limited to 'internal/db')
| -rw-r--r-- | internal/db/bundb/filter.go | 14 | 
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. | 
