···99 // time period within which automod will not re-report an account for the same reasonType
1010 ReportDupePeriod = 1 * 24 * time.Hour
1111 // number of reports automod can file per day, for all subjects and types combined (circuit breaker)
1212- QuotaModReportDay = 50
1212+ QuotaModReportDay = 2000
1313 // number of takedowns automod can action per day, for all subjects combined (circuit breaker)
1414- QuotaModTakedownDay = 10
1414+ QuotaModTakedownDay = 200
1515)
16161717type CounterRef struct {
···115115 if comment == "" {
116116 comment = "(reporting without comment)"
117117 }
118118- comment = "[automod] " + comment
119118 for _, v := range e.AccountReports {
120119 if v.ReasonType == reason {
121120 return
···11package rules
2233import (
44+ "fmt"
55+46 appbsky "github.com/bluesky-social/indigo/api/bsky"
57 "github.com/bluesky-social/indigo/automod"
68 "github.com/bluesky-social/indigo/automod/keyword"
···1214 tag = NormalizeHashtag(tag)
1315 if c.InSet("bad-hashtags", tag) || c.InSet("bad-words", tag) {
1416 c.AddRecordFlag("bad-hashtag")
1717+ c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("possible bad word in hashtags: %s", tag))
1518 c.Notify("slack")
1619 break
1720 }
+7-7
automod/rules/keyword.go
···1616 if word != "" && word != "faggot" && word != "tranny" {
1717 c.AddRecordFlag("bad-word-text")
1818 c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("possible bad word in post text or alttext: %s", word))
1919- c.Notify("slack")
1919+ //c.Notify("slack")
2020 break
2121 }
2222 // de-pluralize
···2424 if c.InSet("worst-words", tok) {
2525 c.AddRecordFlag("bad-word-text")
2626 c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("possible bad word in post text or alttext: %s", tok))
2727- c.Notify("slack")
2727+ //c.Notify("slack")
2828 break
2929 }
3030 }
···3939 if word != "" {
4040 c.AddRecordFlag("bad-word-name")
4141 c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("possible bad word in display name: %s", word))
4242- c.Notify("slack")
4242+ //c.Notify("slack")
4343 }
4444 }
4545 for _, tok := range ExtractTextTokensProfile(profile) {
···4848 if c.InSet("worst-words", tok) {
4949 c.AddRecordFlag("bad-word-text")
5050 c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("possible bad word in profile description: %s", tok))
5151- c.Notify("slack")
5151+ //c.Notify("slack")
5252 break
5353 }
5454 }
···6868 if c.InSet("bad-words", tok) || keyword.SlugIsExplicitSlur(tok) != "" {
6969 c.AddRecordFlag("reply-single-bad-word")
7070 c.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("bad single-word reply: %s", tok))
7171- c.Notify("slack")
7171+ //c.Notify("slack")
7272 }
7373 }
7474 return nil
···175175 if word != "" {
176176 c.AddAccountFlag("bad-word-handle")
177177 c.ReportAccount(automod.ReportReasonRude, fmt.Sprintf("possible bad word in handle (username): %s", word))
178178- c.Notify("slack")
178178+ //c.Notify("slack")
179179 return nil
180180 }
181181···184184 if c.InSet("bad-words", tok) {
185185 c.AddAccountFlag("bad-word-handle")
186186 c.ReportAccount(automod.ReportReasonRude, fmt.Sprintf("possible bad word in handle (username): %s", tok))
187187- c.Notify("slack")
187187+ //c.Notify("slack")
188188 break
189189 }
190190 }
+8-6
automod/rules/replies.go
···4747 return nil
4848 }
49495050- // increment first. use a specific period (IncrementPeriod()) to reduce the number of counters (one per unique post text)
5151- period := countstore.PeriodDay
5252- bucket := c.Account.Identity.DID.String() + "/" + HashOfString(post.Text)
5353- c.IncrementPeriod("reply-text", bucket, period)
5454-5550 // don't action short replies, or accounts more than two weeks old
5651 if utf8.RuneCountInString(post.Text) <= 10 {
5752 return nil
···6358 }
6459 }
65606666- if c.GetCount("reply-text", bucket, period) >= identicalReplyLimit {
6161+ // increment before read. use a specific period (IncrementPeriod()) to reduce the number of counters (one per unique post text)
6262+ period := countstore.PeriodDay
6363+ bucket := c.Account.Identity.DID.String() + "/" + HashOfString(post.Text)
6464+ c.IncrementPeriod("reply-text", bucket, period)
6565+6666+ count := c.GetCount("reply-text", bucket, period)
6767+ if count >= identicalReplyLimit {
6768 c.AddAccountFlag("multi-identical-reply")
6969+ //c.ReportAccount(automod.ReportReasonRude, fmt.Sprintf("possible spam (young account, %d identical reply-posts today)", tag))
6870 c.Notify("slack")
6971 }
7072