diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -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) |
