dkforest

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

commit 7efdc276c6cedbba76f0e25932ff335f57b46452
parent 658036aaa6707f6e59881083bdf482aa4c260a7e
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 10 Nov 2022 14:45:48 -0800

count public messages

Diffstat:
Mpkg/database/tableUsers.go | 2+-
Mpkg/web/handlers/api/v1/handlers.go | 5+++++
Mpkg/web/handlers/api/v1/slashInterceptor.go | 13++++++++++---
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