dkforest

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

commit 7917234ace6c4bb6f052cbd98caf9a7878bdec15
parent 5a8624f1f67f79a4501ef8788e70881a0006da1c
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 28 Dec 2023 22:59:33 -0500

levenshtein distance helper

Diffstat:
Mpkg/web/handlers/interceptors/msgInterceptor.go | 1+
Mpkg/web/handlers/interceptors/slashInterceptor.go | 14++++++++++++++
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 +}