Remove logger and replace it with a library

This commit is contained in:
2025-04-18 12:47:47 +02:00
parent 58586395fb
commit 75bf449bed
13 changed files with 108 additions and 799 deletions

View File

@@ -2,11 +2,12 @@ package processor
import (
"fmt"
"io"
"net/http"
"strings"
logger "git.site.quack-lab.dev/dave/cylogger"
lua "github.com/yuin/gopher-lua"
"cook/logger"
)
// Maybe we make this an interface again for the shits and giggles
@@ -249,6 +250,7 @@ modified = false
logger.Debug("Setting up Lua print function to Go")
L.SetGlobal("print", L.NewFunction(printToGo))
L.SetGlobal("fetch", L.NewFunction(fetch))
return nil
}
@@ -324,3 +326,90 @@ func printToGo(L *lua.LState) int {
logger.Lua("%s", message)
return 0
}
func fetch(L *lua.LState) int {
// Get URL from first argument
url := L.ToString(1)
if url == "" {
L.Push(lua.LNil)
L.Push(lua.LString("URL is required"))
return 2
}
// Get options from second argument if provided
var method string = "GET"
var headers map[string]string = make(map[string]string)
var body string = ""
if L.GetTop() > 1 {
options := L.ToTable(2)
if options != nil {
// Get method
if methodVal := options.RawGetString("method"); methodVal != lua.LNil {
method = methodVal.String()
}
// Get headers
if headersVal := options.RawGetString("headers"); headersVal != lua.LNil {
if headersTable, ok := headersVal.(*lua.LTable); ok {
headersTable.ForEach(func(key lua.LValue, value lua.LValue) {
headers[key.String()] = value.String()
})
}
}
// Get body
if bodyVal := options.RawGetString("body"); bodyVal != lua.LNil {
body = bodyVal.String()
}
}
}
// Create HTTP request
req, err := http.NewRequest(method, url, strings.NewReader(body))
if err != nil {
L.Push(lua.LNil)
L.Push(lua.LString(fmt.Sprintf("Error creating request: %v", err)))
return 2
}
// Set headers
for key, value := range headers {
req.Header.Set(key, value)
}
// Make request
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
L.Push(lua.LNil)
L.Push(lua.LString(fmt.Sprintf("Error making request: %v", err)))
return 2
}
defer resp.Body.Close()
// Read response body
bodyBytes, err := io.ReadAll(resp.Body)
if err != nil {
L.Push(lua.LNil)
L.Push(lua.LString(fmt.Sprintf("Error reading response: %v", err)))
return 2
}
// Create response table
responseTable := L.NewTable()
responseTable.RawSetString("status", lua.LNumber(resp.StatusCode))
responseTable.RawSetString("statusText", lua.LString(resp.Status))
responseTable.RawSetString("ok", lua.LBool(resp.StatusCode >= 200 && resp.StatusCode < 300))
responseTable.RawSetString("body", lua.LString(string(bodyBytes)))
// Set headers in response
headersTable := L.NewTable()
for key, values := range resp.Header {
headersTable.RawSetString(key, lua.LString(values[0]))
}
responseTable.RawSetString("headers", headersTable)
L.Push(responseTable)
return 1
}

View File

@@ -1,16 +1,15 @@
package processor
import (
"cook/utils"
"fmt"
"regexp"
"strconv"
"strings"
"time"
logger "git.site.quack-lab.dev/dave/cylogger"
lua "github.com/yuin/gopher-lua"
"cook/logger"
"cook/utils"
)
type CaptureGroup struct {

View File

@@ -2,8 +2,9 @@ package processor
import (
"io"
"cook/logger"
"os"
logger "git.site.quack-lab.dev/dave/cylogger"
)
func init() {
@@ -20,7 +21,7 @@ func init() {
if disableTestLogs {
// Create a new logger that writes to nowhere
silentLogger := logger.New(io.Discard, "", 0)
logger.DefaultLogger = silentLogger
logger.Default = silentLogger
}
}
}