commit a781fe03d2fe468ff9bae200046940bc5bd35395
parent e983e1ccb1000a84b874aa4ebb7a792c577144a2
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 4 Dec 2022 20:03:48 -0500
cleanup
Diffstat:
3 files changed, 36 insertions(+), 32 deletions(-)
diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go
@@ -2,7 +2,9 @@ package database
import (
"dkforest/pkg/config"
+ "dkforest/pkg/managers"
"errors"
+ "fmt"
"strings"
"time"
@@ -553,3 +555,32 @@ func (u *User) CanSendPM() bool {
}
return u.GeneralMessagesCount >= 20
}
+
+func (u *User) Kick(kickedBy User) {
+ silent := u.IsHellbanned
+ u.kick(kickedBy, silent)
+}
+
+func (u *User) SilentKick(kickedBy User) {
+ u.kick(kickedBy, true)
+}
+
+func (u *User) kick(kickedBy User, silent bool) {
+ NewAudit(kickedBy, fmt.Sprintf("kick %s #%d", u.Username, u.ID))
+ u.Verified = false
+ u.DoSave()
+
+ // Remove user from the user cache
+ managers.ActiveUsers.RemoveUser(u.ID)
+
+ // Purge user messages
+ if err := DeleteUserChatMessages(u.ID); err != nil {
+ logrus.Error(err)
+ }
+
+ // If user is HB, do not display system message
+ if !silent {
+ // Display kick message
+ CreateKickMsg(*u, kickedBy)
+ }
+}
diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go
@@ -177,23 +177,8 @@ func handleKickCmd(c *Command) (handled bool) {
c.err = ErrRedirect
return true
}
- database.NewAudit(*c.authUser, fmt.Sprintf("kick %s #%d", user.Username, user.ID))
- user.Verified = false
- _ = user.Save()
-
- // Remove user from the user cache
- managers.ActiveUsers.RemoveUser(user.ID)
-
- // Purge user messages
- if err := database.DeleteUserChatMessages(user.ID); err != nil {
- logrus.Error(err)
- }
- // If user is HB, do not display system message
- if !user.IsHellbanned {
- // Display kick message
- database.CreateKickMsg(user, *c.authUser)
- }
+ user.Kick(*c.authUser)
c.err = ErrRedirect
return true
diff --git a/pkg/web/handlers/api/v1/spamInterceptor.go b/pkg/web/handlers/api/v1/spamInterceptor.go
@@ -2,7 +2,6 @@ package v1
import (
"dkforest/pkg/database"
- "dkforest/pkg/managers"
"dkforest/pkg/utils"
"errors"
"github.com/sirupsen/logrus"
@@ -25,17 +24,6 @@ func (i SpamInterceptor) InterceptMsg(c *Command) {
}
}
-func silentKick(authUser *database.User) {
- authUser.Verified = false
- authUser.DoSave()
- // Remove user from the user cache
- managers.ActiveUsers.RemoveUser(authUser.ID)
- // Purge user messages
- if err := database.DeleteUserChatMessages(authUser.ID); err != nil {
- logrus.Error(err)
- }
-}
-
var ErrSpamFilterTriggered = errors.New("spam filter triggered")
func checkSpam(origMessage string, authUser *database.User) error {
@@ -47,13 +35,13 @@ func checkSpam(origMessage string, authUser *database.User) error {
strings.Contains(lowerCaseMessage, "i wanna see gore") ||
strings.Contains(lowerCaseMessage, "how can i make money") ||
strings.Contains(lowerCaseMessage, "any links for scary stuff") {
- silentKick(authUser)
+ authUser.SilentKick(*authUser)
return ErrSpamFilterTriggered
}
}
if authUser.GeneralMessagesCount < 20 || time.Since(authUser.CreatedAt) < 5*time.Hour {
if strings.Contains(lowerCaseMessage, "cp link") {
- silentKick(authUser)
+ authUser.SilentKick(*authUser)
return ErrSpamFilterTriggered
}
}
@@ -62,7 +50,7 @@ func checkSpam(origMessage string, authUser *database.User) error {
if authUser.IsModerator() {
return ErrSpamFilterTriggered
}
- silentKick(authUser)
+ authUser.SilentKick(*authUser)
return ErrSpamFilterTriggered
}
@@ -90,7 +78,7 @@ func checkSpam(origMessage string, authUser *database.User) error {
if authUser.GeneralMessagesCount < 20 || time.Since(authUser.CreatedAt) < 5*time.Hour {
if wordsMap["cp"] > 0 && (wordsMap["link"] > 0 || wordsMap["links"] > 0) {
- silentKick(authUser)
+ authUser.SilentKick(*authUser)
return ErrSpamFilterTriggered
}
}