From f50c30266ae8f0939f619958a8a98962c6c6cb08 Mon Sep 17 00:00:00 2001 From: unwox Date: Tue, 24 Dec 2024 16:11:21 +0600 Subject: add luna.crypto.sha1 and luna.http.encode-url functions --- main.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'main.go') diff --git a/main.go b/main.go index 5530a06..93c46c3 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,15 @@ package main import ( "bufio" "database/sql" + "crypto/sha1" + "encoding/hex" "errors" "flag" "fmt" "io" "log" "net/http" + "net/url" "os" "unicode/utf8" "runtime" @@ -167,6 +170,14 @@ func main() { res["body"] = string(respBody) return luaOk(l, res) } + httpModule["encode-url"] = func (l *Lua) int { + var str string + err := l.Scan(&str) + if err != nil { + return luaErr(l, err) + } + return luaOk(l, url.QueryEscape(str)) + } // define luna.db module dbModule := make(map[string]any) @@ -392,12 +403,24 @@ func main() { cut := runes[start-1:start-1+length] return luaOk(l, string(cut)) } + cryptoModule := make(map[string]any) + cryptoModule["sha1"] = func (l *Lua) int { + var str string + err := l.Scan(&str) + if err != nil { + return luaErr(l, err) + } + h := sha1.New() + io.WriteString(h, str) + return luaOk(l, hex.EncodeToString(h.Sum(nil))) + } module := make(map[string]any) module["router"] = routeModule module["http"] = httpModule module["db"] = dbModule module["utf8"] = utf8Module + module["crypto"] = cryptoModule module["evalfn"] = func (l *Lua) int { var evalFn LuaRef err := l.Scan(&evalFn) -- cgit v1.2.3