commit 7917234ace6c4bb6f052cbd98caf9a7878bdec15
parent 5a8624f1f67f79a4501ef8788e70881a0006da1c
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 28 Dec 2023 22:59:33 -0500
levenshtein distance helper
Diffstat:
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/interceptors/msgInterceptor.go b/pkg/web/handlers/interceptors/msgInterceptor.go
@@ -82,6 +82,7 @@ var locateRgx = regexp.MustCompile(`^/locate ` + optAtGUser)
var chipsRgx = regexp.MustCompile(`^/chips ` + optAtGUser + ` (\d+)`)
var chipsSendRgx = regexp.MustCompile(`^/chips-send ` + optAtGUser + ` (\d+)`)
var betRgx = regexp.MustCompile(`^/bet (\d+)$`)
+var distRgx = regexp.MustCompile(`^/dist ` + optAtGUser + ` ` + optAtGUser + `$`)
type MsgInterceptor struct{}
diff --git a/pkg/web/handlers/interceptors/slashInterceptor.go b/pkg/web/handlers/interceptors/slashInterceptor.go
@@ -5,6 +5,7 @@ import (
"dkforest/pkg/config"
"dkforest/pkg/database"
dutils "dkforest/pkg/database/utils"
+ "dkforest/pkg/levenshtein"
"dkforest/pkg/managers"
"dkforest/pkg/utils"
"dkforest/pkg/web/handlers/interceptors/command"
@@ -100,6 +101,7 @@ var userCmdsMap = map[string]CmdHandler{
"/allin": handleAllInCmd,
"/bet": handleBetCmd,
"/deal": handleDealCmd,
+ "/dist": handleDistCmd,
//"/chips-send": handleChipsSendCmd,
}
@@ -2004,3 +2006,15 @@ func handleDealCmd(c *command.Command) (handled bool) {
}
return false
}
+
+func handleDistCmd(c *command.Command) (handled bool) {
+ if m := distRgx.FindStringSubmatch(c.Message); len(m) == 3 {
+ u1 := strings.ToLower(m[1])
+ u2 := strings.ToLower(m[2])
+ dist := levenshtein.ComputeDistance(u1, u2)
+ c.ZeroProcMsg(fmt.Sprintf("levenshtein distance is %d", dist))
+ c.Err = command.ErrRedirect
+ return true
+ }
+ return false
+}