commit 6844d4e02da7956e10c21186816cd1aaf1347d96
parent 2ba2dbc57d7083d82b06a793f72f8d19f0e8ccb1
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 10 Nov 2022 16:12:56 -0800
token slash command
Diffstat:
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go
@@ -50,6 +50,7 @@ var forceCaptchaRgx = regexp.MustCompile(`^/(?:captcha) ` + optAtGUser)
var unkickRgx = regexp.MustCompile(`^/(?:unkick|uk) ` + optAtGUser)
var hellbanRgx = regexp.MustCompile(`^/(?:hellban|hb) ` + optAtGUser)
var unhellbanRgx = regexp.MustCompile(`^/(?:unhellban|uhb) ` + optAtGUser)
+var tokenRgx = regexp.MustCompile(`^/token (\d{1,2})$`)
var tagRgx = regexp.MustCompile(`@(` + userOr0 + `)`)
var roomTagRgx = regexp.MustCompile(`#(` + roomName + `)`)
var tzRgx = regexp.MustCompile(`(\d{4}-\d{1,2}-\d{1,2} at \d{1,2}\.\d{1,2}\.\d{1,2} [A|P]M)`) // Screen Shot 2022-02-04 at 11.58.58 PM
diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go
@@ -10,6 +10,7 @@ import (
"fmt"
"github.com/sirupsen/logrus"
"sort"
+ "strconv"
"strings"
"time"
)
@@ -65,6 +66,7 @@ func handleUserCmd(c *Command) (handled bool) {
handleInboxCmd(c) ||
handleChessCmd(c) ||
handleHbmCmd(c) ||
+ handleTokenCmd(c) ||
handleMd5Cmd(c) ||
handleSha1Cmd(c) ||
handleSha256Cmd(c) ||
@@ -381,6 +383,24 @@ func handleChoiceCmd(c *Command) (handled bool) {
return
}
+func handleTokenCmd(c *Command) (handled bool) {
+ if c.message == "/token" {
+ c.zeroMsg(utils.GenerateToken10())
+ c.err = ErrRedirect
+ return true
+ } else if m := tokenRgx.FindStringSubmatch(c.message); len(m) == 2 {
+ n, _ := strconv.Atoi(m[1])
+ if n < 1 || n > 32 {
+ c.err = errors.New("value must be [1;32]")
+ return true
+ }
+ c.zeroMsg(utils.GenerateTokenN(n))
+ c.err = ErrRedirect
+ return true
+ }
+ return
+}
+
func handleMd5Cmd(c *Command) (handled bool) {
return handleHasherCmd(c, "/md5 ", utils.MD5)
}