dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 9cbc00298602d1adb1423b16badc4b57776c0a3c
parent 27f0503e09aa399d9249dae06f5f20b50866324c
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 19 Mar 2023 02:23:24 -0700

auto HB "new here" retards

Diffstat:
Mpkg/database/utils/utils.go | 6++++++
Mpkg/web/handlers/api/v1/spamInterceptor.go | 15+++++++++++++++
Apkg/web/handlers/api/v1/spamInterceptor_test.go | 26++++++++++++++++++++++++++
3 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/pkg/database/utils/utils.go b/pkg/database/utils/utils.go @@ -89,6 +89,12 @@ func DoParseRoomID(v string) (out database.RoomID) { return DoParse[database.RoomID](v) } +func SelfHellBan(db *database.DkfDB, user database.User) { + db.NewAudit(user, fmt.Sprintf("hellban %s #%d", user.Username, user.ID)) + user.HellBan(db) + managers.ActiveUsers.UpdateUserHBInRooms(managers.NewUserInfo(user, nil)) +} + func Kick(db *database.DkfDB, kicked, kickedBy database.User, purge, silent bool) error { if kicked.IsHellbanned { silent = true diff --git a/pkg/web/handlers/api/v1/spamInterceptor.go b/pkg/web/handlers/api/v1/spamInterceptor.go @@ -71,6 +71,12 @@ func checkSpam(db *database.DkfDB, origMessage string, authUser *database.User) } } + // Auto HB "new here" retards + if isNewHereRetard(authUser, lowerCaseMessage) { + dutils.SelfHellBan(db, *authUser) + return nil + } + tot, wordsMap := utils.WordCount(lowerCaseMessage) if tot >= 5 { totalUniqueWords := len(wordsMap) @@ -117,3 +123,12 @@ func checkSpam(db *database.DkfDB, origMessage string, authUser *database.User) return nil } + +func isNewHereRetard(authUser *database.User, lowerCaseMessage string) bool { + if authUser.GeneralMessagesCount <= 5 { + if strings.Contains(lowerCaseMessage, "new here") { + return true + } + } + return false +} diff --git a/pkg/web/handlers/api/v1/spamInterceptor_test.go b/pkg/web/handlers/api/v1/spamInterceptor_test.go @@ -0,0 +1,26 @@ +package v1 + +import ( + "dkforest/pkg/database" + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_isNewHereRetard(t *testing.T) { + type args struct { + authUser *database.User + lowerCaseMessage string + } + tests := []struct { + name string + args args + want bool + }{ + {name: "", args: args{authUser: &database.User{GeneralMessagesCount: 2}, lowerCaseMessage: "hi new here"}, want: true}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equalf(t, tt.want, isNewHereRetard(tt.args.authUser, tt.args.lowerCaseMessage), "isNewHereRetard(%v, %v)", tt.args.authUser, tt.args.lowerCaseMessage) + }) + } +}