commit 9cbc00298602d1adb1423b16badc4b57776c0a3c
parent 27f0503e09aa399d9249dae06f5f20b50866324c
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 19 Mar 2023 02:23:24 -0700
auto HB "new here" retards
Diffstat:
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)
+ })
+ }
+}