···11package rules
2233import (
44+ "fmt"
55+46 appbsky "github.com/bluesky-social/indigo/api/bsky"
57 "github.com/bluesky-social/indigo/automod"
68)
···911 for _, tok := range ExtractTextTokensPost(post) {
1012 if evt.InSet("bad-words", tok) {
1113 evt.AddRecordFlag("bad-word")
1414+ evt.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("bad-word: %s", tok))
1215 break
1316 }
1417 }
···1922 for _, tok := range ExtractTextTokensProfile(profile) {
2023 if evt.InSet("bad-words", tok) {
2124 evt.AddRecordFlag("bad-word")
2525+ evt.ReportRecord(automod.ReportReasonRude, fmt.Sprintf("bad-word: %s", tok))
2226 break
2327 }
2428 }
+7
automod/rules/replies.go
···11package rules
2233import (
44+ "unicode/utf8"
55+46 appbsky "github.com/bluesky-social/indigo/api/bsky"
57 "github.com/bluesky-social/indigo/atproto/syntax"
68 "github.com/bluesky-social/indigo/automod"
···3638// There can be legitimate situations that trigger this rule, so in most situations should be a "report" not "label" action.
3739func IdenticalReplyPostRule(evt *automod.RecordEvent, post *appbsky.FeedPost) error {
3840 if post.Reply == nil || IsSelfThread(evt, post) {
4141+ return nil
4242+ }
4343+4444+ // short reply? ignore it
4545+ if utf8.RuneCountInString(post.Text) <= 10 {
3946 return nil
4047 }
4148