dkforest

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

commit c5a1d48b6e81a82a88efe810c8856c7fb21d40db
parent 18f4c3274c67fcdf0d31bca60efd80d1eef7379f
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed, 19 Feb 2025 14:46:28 -0800

/invite to send a pm message to the user instead of using the zero user

Diffstat:
Mpkg/web/handlers/interceptors/slashInterceptor.go | 21++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/pkg/web/handlers/interceptors/slashInterceptor.go b/pkg/web/handlers/interceptors/slashInterceptor.go @@ -491,25 +491,20 @@ func handleInviteCmd(c *command.Command) (handled bool) { if m := inviteRgx.FindStringSubmatch(c.Message); len(m) == 3 { username := database.Username(m[1]) nbInvites := utils.Clamp(utils.DoParseInt(m[2]), 1, 10) - sendToUser, err := c.DB.GetUserByUsername(username) - if err != nil { - c.Err = ErrUsernameNotFound - return true - } tokens := make([]string, 0) for i := 0; i < nbInvites; i++ { if inviteToken, err := c.DB.CreateInvitation(c.AuthUser.ID); err == nil { tokens = append(tokens, fmt.Sprintf(`<span style="color: Aqua; user-select: all; -webkit-user-select: all;">%s</span>`, inviteToken.Token)) } } - go func() { - time.Sleep(time.Second) - tokensStr := strings.Join(tokens, "<br />") - msg := fmt.Sprintf(`invitation tokens from @%s:<br />%s`, c.AuthUser.Username, tokensStr) - msg, _ = dutils.ColorifyTaggedUsers(msg, c.DB.GetUsersByUsername) - c.ZeroMsgToUser(sendToUser, msg) - }() - c.Err = command.NewErrSuccess(fmt.Sprintf("%d tokens sent", len(tokens))) + if err := c.SetToUser(username); err != nil { + return true + } + tokensStr := strings.Join(tokens, "<br />") + c.OrigMessage = "<invitation tokens>" + c.Message = fmt.Sprintf(`invitation tokens:<br />%s`, tokensStr) + c.Raw = true + c.RedirectQP.Set(command.RedirectPmQP, string(c.ToUser.Username)) return true } return