try another variation to find mentions

master
Ted Unangst 2 years ago
parent 808925a449
commit 34cc516aa9

@ -124,7 +124,7 @@ func reverbolate(userid int64, honks []*Honk) {
h.Noise = demoji(h.Noise)
h.Open = "open"
for _, m := range h.Mentions {
if !strings.Contains(h.Noise, m.Nick()) {
if !m.IsPresent(h.Noise) {
h.Noise = "(" + m.Who + ")" + h.Noise
}
}

@ -23,7 +23,6 @@ import (
"log/syslog"
notrand "math/rand"
"os"
"regexp"
"strconv"
"strings"
"time"
@ -136,13 +135,14 @@ type Mention struct {
Where string
}
var re_firstname = regexp.MustCompile("@[[:alnum:]]+")
func (mention *Mention) Nick() string {
if m := re_firstname.FindString(mention.Who); m != "" {
return m
func (mention *Mention) IsPresent(noise string) bool {
nick := strings.TrimLeft(mention.Who, "@")
idx := strings.IndexByte(nick, '@')
if idx != -1 {
nick = nick[:idx]
}
return mention.Who
nick += "<"
return strings.Contains(noise, ">@"+nick) || strings.Contains(noise, "@<span>"+nick)
}
type OldRevision struct {

Loading…
Cancel
Save