mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-09-28 14:21:57 +00:00
Make matching case-insensitive
This commit is contained in:
parent
be78b7e701
commit
36a156cc13
1 changed files with 11 additions and 12 deletions
|
@ -740,20 +740,19 @@ func (c *Converter) statusToAPIFilterResults(
|
|||
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 wholeWord {
|
||||
regexpIsMatch, err := regexp.MatchString(`\b`+regexp.QuoteMeta(filterKeyword.Keyword)+`\b`, field)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if regexpIsMatch {
|
||||
isMatch = true
|
||||
}
|
||||
} else {
|
||||
if strings.Contains(field, filterKeyword.Keyword) {
|
||||
isMatch = true
|
||||
}
|
||||
if re.MatchString(field) {
|
||||
isMatch = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if isMatch {
|
||||
|
|
Loading…
Reference in a new issue