all repos — honk @ 8ae9dd59981005d89ff88afb96b46d26401027eb

my fork of honk

some more bits of hfcs
Ted Unangst tedu@tedunangst.com
Fri, 04 Oct 2019 21:57:53 -0400
commit

8ae9dd59981005d89ff88afb96b46d26401027eb

parent

0d62de1e2e3f0eab06a250fef80b626d7dc5018e

2 files changed, 25 insertions(+), 6 deletions(-)

jump to
M fun.gofun.go

@@ -35,7 +35,6 @@

func reverbolate(userid int64, honks []*Honk) { filt := htfilter.New() filt.Imager = replaceimg - zilences := getfilters(userid, filtCollapse) for _, h := range honks { h.What += "ed" if h.What == "tonked" {

@@ -76,7 +75,7 @@ if h.Precis != "" {

h.Open = "" } } else { - if badword := unsee(zilences, h); badword != "" { + if badword := unsee(userid, h); badword != "" { if h.Precis == "" { h.Precis = badword }
M hfcs.gohfcs.go

@@ -26,6 +26,7 @@ ID int64

Actor string IncludeAudience bool Text string + re_text *regexp.Regexp IsAnnounce bool Reject bool SkipMedia bool

@@ -76,6 +77,13 @@ }

if err != nil { log.Printf("error scanning filter: %s", err) continue + } + if filt.Text != "" { + filt.re_text, err = regexp.Compile("\\b(?i:" + filt.Text + ")\\b") + if err != nil { + log.Printf("error compiling filter text: %s", err) + continue + } } filt.ID = filterid if filt.Reject {

@@ -169,9 +177,15 @@ }

} if match && f.Text != "" { match = false - for _, d := range h.Donks { - if d.Desc == f.Text { - match = true + re := f.re_text + if re.MatchString(h.Noise) || re.MatchString(h.Precis) { + match = true + } + if !match { + for _, d := range h.Donks { + if re.MatchString(d.Desc) { + match = true + } } } }

@@ -202,7 +216,13 @@ return false

} // todo -func unsee(filts []*Filter, h *Honk) string { +func unsee(userid int64, h *Honk) string { + filts := getfilters(userid, filtCollapse) + for _, f := range filts { + if matchfilter(h, f) { + return f.Text + } + } return "" }