commit 60d715d986be9c94ce30949f54f90871068160a7
parent a4010f5af75f4f9fbb4a635cacef4f9e0c6b941f
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 19 Feb 2025 21:39:50 +0000
Merge branch 'master' of Comb/dkforest into master
Diffstat:
2 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/interceptors/command/command.go b/pkg/web/handlers/interceptors/command/command.go
@@ -132,6 +132,9 @@ func (c *Command) zeroProcMsgRoomToUser(rawMsg, roomKey string, roomID database.
func (c *Command) ZeroMsg(msg string) {
c.zeroRawMsg(c.AuthUser, msg, msg)
}
+func (c *Command) ZeroMsgToUser(AuthUser *database.User, msg string) {
+ c.zeroRawMsg(AuthUser, msg, msg)
+}
func (c *Command) ZeroSysMsgTo(user2 *database.User, msg string) {
c.zeroSysRawMsg(user2, msg, msg, false)
diff --git a/pkg/web/handlers/interceptors/slashInterceptor.go b/pkg/web/handlers/interceptors/slashInterceptor.go
@@ -21,6 +21,7 @@ import (
"html"
"os"
"path/filepath"
+ "regexp"
"sort"
"strconv"
"strings"
@@ -80,6 +81,7 @@ var userCmdsMap = map[string]CmdHandler{
"/sha256": handleSha256Cmd,
"/sha512": handleSha512Cmd,
"/dice": handleDiceCmd,
+ "/invite": handleInviteCmd,
"/rand": handleRandCmd,
"/choice": handleChoiceCmd,
"/memes": handleListMemes,
@@ -535,6 +537,48 @@ func handleDiceCmd(c *command.Command) (handled bool) {
return
}
+func handleInviteCmd(c *command.Command) (handled bool) {
+
+ if !c.AuthUser.IsAdmin || !c.AuthUser.IsModerator() {
+ return
+ }
+
+ if strings.HasPrefix(c.Message, "/invite") {
+ text := c.Message
+ getUserName := regexp.MustCompile(`@\w+`)
+ matchUserName := getUserName.FindAllString(text, -1)
+ user := matchUserName[0]
+ RemoveAtFromUserName := strings.ReplaceAll(user, "@", "")
+ sendTouser, _ := c.DB.GetUserByUsername(database.Username(RemoveAtFromUserName))
+
+ getNumberOfInvites := regexp.MustCompile(`@\w+\s(\d+)`)
+ match := getNumberOfInvites.FindStringSubmatch(text)
+ numberOfInvites := 0
+ number, err := strconv.Atoi(match[1])
+ if err == nil {
+ numberOfInvites = number
+ }
+ if err != nil {
+ fmt.Println("error")
+ numberOfInvites = 1
+ }
+ fmt.Println(numberOfInvites)
+ for i := 0; i < numberOfInvites; i++ {
+ inviteToken, _ := c.DB.CreateInvitation(c.AuthUser.ID)
+ msg := fmt.Sprintf(`your Invite token from @%s . "<span style="color: Aqua;">%s</span>"`, c.AuthUser.Username, inviteToken.Token)
+ msg, _ = dutils.ColorifyTaggedUsers(msg, c.DB.GetUsersByUsername)
+
+ go func() {
+ time.Sleep(time.Second)
+ c.ZeroMsgToUser(&sendTouser, msg)
+
+ }()
+ }
+ return true
+ }
+ return
+}
+
func handleRandCmd(c *command.Command) (handled bool) {
if strings.HasPrefix(c.Message, "/rand") {
minV := 1