summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go23
1 files changed, 23 insertions, 0 deletions
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)