order some filtering loops better to avoid repeated lookups

This commit is contained in:
Ted Unangst 2019-12-23 06:13:07 -05:00
parent 845fcf52f8
commit 5222332d91
2 changed files with 42 additions and 29 deletions

30
fun.go
View File

@ -104,24 +104,24 @@ func reverbolate(userid int64, honks []*Honk) {
h.Precis = string(p)
h.Noise = string(n)
}
if userid == -1 {
if h.Precis != "" {
h.Open = ""
}
} else {
unsee(userid, h)
if h.Open == "open" && h.Precis == "unspecified horror" {
h.Precis = ""
j := 0
for i := 0; i < len(h.Donks); i++ {
if !zap[h.Donks[i].XID] {
h.Donks[j] = h.Donks[i]
j++
}
}
if len(h.Noise) > 6000 && h.Open == "open" {
if h.Precis == "" {
h.Precis = "really freaking long"
}
h.Open = ""
}
h.Donks = h.Donks[:j]
}
unsee(honks, userid)
for _, h := range honks {
local := false
if h.Whofore == 2 || h.Whofore == 3 {
local = true
}
zap := make(map[string]bool)
emuxifier := func(e string) string {
for _, d := range h.Donks {
if d.Name == e {

41
hfcs.go
View File

@ -353,21 +353,34 @@ func skipMedia(xonk *Honk) bool {
return false
}
func unsee(userid int64, h *Honk) {
filts := getfilters(userid, filtCollapse)
for _, f := range filts {
if bad := matchfilterX(h, f); bad != "" {
if h.Precis == "" {
h.Precis = bad
func unsee(honks []*Honk, userid int64) {
if userid != -1 {
colfilts := getfilters(userid, filtCollapse)
rwfilts := getfilters(userid, filtRewrite)
for _, h := range honks {
for _, f := range colfilts {
if bad := matchfilterX(h, f); bad != "" {
if h.Precis == "" {
h.Precis = bad
}
h.Open = ""
break
}
}
if h.Open == "open" && h.Precis == "unspecified horror" {
h.Precis = ""
}
for _, f := range rwfilts {
if matchfilter(h, f) {
h.Noise = f.re_rewrite.ReplaceAllString(h.Noise, f.Replace)
}
}
if len(h.Noise) > 6000 && h.Open == "open" {
if h.Precis == "" {
h.Precis = "really freaking long"
}
h.Open = ""
}
h.Open = ""
break
}
}
filts = getfilters(userid, filtRewrite)
for _, f := range filts {
if matchfilter(h, f) {
h.Noise = f.re_rewrite.ReplaceAllString(h.Noise, f.Replace)
}
}
}