mixed case hashtag complicates things a bit

This commit is contained in:
Ted Unangst 2023-07-30 21:01:45 -04:00
parent c44af76356
commit 8387dd4400
1 changed files with 23 additions and 2 deletions

25
honk.go
View File

@ -145,8 +145,29 @@ func (mention *Mention) IsPresent(noise string) bool {
} }
func OntIsPresent(ont, noise string) bool { func OntIsPresent(ont, noise string) bool {
ont = ont[1:] ont = strings.ToLower(ont[1:] + "<")
return strings.Contains(noise, ">#"+ont) || strings.Contains(noise, "#<span>"+ont) idx := strings.IndexByte(noise, '#')
for idx >= 0 {
if strings.HasPrefix(noise[idx:], "#<span>") {
idx += 5
} else {
idx += 1
}
if idx + len(ont) + 1 > len(noise) {
return false
}
test := noise[idx:idx+len(ont)]
test = strings.ToLower(test)
if test == ont {
return true
}
newidx := strings.IndexByte(noise[idx:], '#')
if newidx == -1 {
return false
}
idx += newidx
}
return false
} }
type OldRevision struct { type OldRevision struct {