commit 7efdc276c6cedbba76f0e25932ff335f57b46452
parent 658036aaa6707f6e59881083bdf482aa4c260a7e
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 10 Nov 2022 14:45:48 -0800
count public messages
Diffstat:
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go
@@ -542,5 +542,5 @@ func (u *User) CanSendPM() bool {
if u.IsModerator() || u.Vetted {
return true
}
- return u.Karma >= 1
+ return u.GeneralMessagesCount >= 20
}
diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go
@@ -300,6 +300,11 @@ func ChatDeleteMessageHandler(c echo.Context) error {
return c.Redirect(http.StatusFound, c.Request().Referer())
}
+ if msg.RoomID == config.GeneralRoomID && msg.ToUserID == nil {
+ authUser.GeneralMessagesCount--
+ authUser.DoSave()
+ }
+
// If we delete message manually, also delete linked inbox if any
_ = database.DeleteChatInboxMessageByChatMessageID(msg.ID)
if err := database.DeleteChatMessageByUUID(messageUUID); err != nil {
diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go
@@ -1091,6 +1091,13 @@ func handleTutorialCmd(c *Command) (handled bool) {
}
func handleDeleteMsgCmd(c *Command) (handled bool) {
+ delMsgFn := func(msg database.ChatMessage) {
+ if msg.RoomID == config.GeneralRoomID && msg.ToUserID == nil {
+ msg.User.GeneralMessagesCount--
+ msg.User.DoSave()
+ }
+ _ = database.DeleteChatMessageByUUID(msg.UUID)
+ }
if c.message == "/d" {
if msg, err := database.GetUserLastChatMessageInRoom(c.authUser.ID, c.room.ID); err != nil {
c.err = errors.New("unable to find last message")
@@ -1099,7 +1106,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) {
c.err = errors.New("message is to old to be deleted")
return true
} else {
- _ = database.DeleteChatMessageByUUID(msg.UUID)
+ delMsgFn(msg)
}
c.err = ErrRedirect
return true
@@ -1134,7 +1141,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) {
c.err = errors.New("message is to old to be deleted")
return true
}
- _ = database.DeleteChatMessageByUUID(msg.UUID)
+ delMsgFn(msg)
c.err = ErrRedirect
return true
}
@@ -1160,7 +1167,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) {
c.err = errors.New("message is to old to be deleted")
return true
}
- _ = database.DeleteChatMessageByUUID(msg.UUID)
+ delMsgFn(msg)
c.err = ErrRedirect
return true