summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltofrontend.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-05-21 13:20:19 +0000
committerLibravatar GitHub <noreply@github.com>2024-05-21 14:20:19 +0100
commitb092da6d281a437c3f847e655c4ad182decb0978 (patch)
treecd5dcc7bebb055cd1b1714fa7b41362a44fdb788 /internal/typeutils/internaltofrontend.go
parent[chore] dependabot updates (#2922) (diff)
downloadgotosocial-b092da6d281a437c3f847e655c4ad182decb0978.tar.xz
[performance] cache v2 filter keyword regular expressions (#2903)
* add caching of filterkeyword regular expressions * formatting * fix WholeWord nil check
Diffstat (limited to 'internal/typeutils/internaltofrontend.go')
-rw-r--r--internal/typeutils/internaltofrontend.go12
1 files changed, 1 insertions, 11 deletions
diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go
index 7a5572267..d7f1fac6c 100644
--- a/internal/typeutils/internaltofrontend.go
+++ b/internal/typeutils/internaltofrontend.go
@@ -22,7 +22,6 @@ import (
"errors"
"fmt"
"math"
- "regexp"
"strconv"
"strings"
"time"
@@ -746,18 +745,9 @@ func (c *Converter) statusToAPIFilterResults(
keywordMatches := make([]string, 0, len(filter.Keywords))
fields := filterableTextFields(s)
for _, filterKeyword := range filter.Keywords {
- wholeWord := util.PtrValueOr(filterKeyword.WholeWord, false)
- wordBreak := ``
- if wholeWord {
- wordBreak = `\b`
- }
- re, err := regexp.Compile(`(?i)` + wordBreak + regexp.QuoteMeta(filterKeyword.Keyword) + wordBreak)
- if err != nil {
- return nil, err
- }
var isMatch bool
for _, field := range fields {
- if re.MatchString(field) {
+ if filterKeyword.Regexp.MatchString(field) {
isMatch = true
break
}