diff options
author | terminaldweller <devi@terminaldweller.com> | 2024-06-26 23:49:06 +0000 |
---|---|---|
committer | terminaldweller <devi@terminaldweller.com> | 2024-06-26 23:49:06 +0000 |
commit | 2d45235aaa8456c1cbd8303bba41e4d3a95f627a (patch) | |
tree | 7b46beafbdb3d0313ef2804270a3e4264b9c0cd2 /plugins | |
parent | added watchlists (diff) | |
download | milla-2d45235aaa8456c1cbd8303bba41e4d3a95f627a.tar.gz milla-2d45235aaa8456c1cbd8303bba41e4d3a95f627a.zip |
WIP
Diffstat (limited to '')
-rw-r--r-- | plugins.go | 30 | ||||
-rw-r--r-- | plugins/ip.lua | 23 | ||||
-rw-r--r-- | plugins/proxy_test.lua | 10 |
3 files changed, 62 insertions, 1 deletions
@@ -4,6 +4,8 @@ import ( "context" "log" "net/http" + "net/url" + "os" "reflect" "github.com/ailncode/gluaxmlpath" @@ -11,6 +13,7 @@ import ( "github.com/google/generative-ai-go/genai" "github.com/jackc/pgx/v5" "github.com/kohkimakimoto/gluayaml" + gopherjson "github.com/layeh/gopher-json" "github.com/lrstanley/girc" openai "github.com/sashabaranov/go-openai" "github.com/yuin/gluare" @@ -331,9 +334,34 @@ func RunScript(scriptPath string, client *girc.Client, appConfig *TomlConfig) { luaState.PreloadModule("milla", millaModuleLoaderClosure(luaState, client, appConfig)) gluasocket.Preload(luaState) gluaxmlpath.Preload(luaState) - luaState.PreloadModule("http", gluahttp.NewHttpModule(&http.Client{}).Loader) luaState.PreloadModule("yaml", gluayaml.Loader) luaState.PreloadModule("re", gluare.Loader) + luaState.PreloadModule("json", gopherjson.Loader) + + var proxyString string + if os.Getenv("ALL_PROXY") != "" { + proxyString = os.Getenv("ALL_PROXY") + } else if os.Getenv("HTTPS_PROXY") != "" { + proxyString = os.Getenv("HTTPS_PROXY") + } else if os.Getenv("HTTP_PROXY") != "" { + proxyString = os.Getenv("HTTP_PROXY") + } else if os.Getenv("https_proxy") != "" { + proxyString = os.Getenv("https_proxy") + } else if os.Getenv("http_proxy") != "" { + proxyString = os.Getenv("http_proxy") + } + + proxyTransport := &http.Transport{} + + if proxyString != "" { + proxyURL, err := url.Parse(proxyString) + if err != nil { + log.Print(err) + } + proxyTransport.Proxy = http.ProxyURL(proxyURL) + } + + luaState.PreloadModule("http", gluahttp.NewHttpModule(&http.Client{Transport: proxyTransport}).Loader) log.Print("Running script: ", scriptPath) diff --git a/plugins/ip.lua b/plugins/ip.lua new file mode 100644 index 0000000..57cb0f5 --- /dev/null +++ b/plugins/ip.lua @@ -0,0 +1,23 @@ +local milla = require("milla") +local os = require("os") +local json = require("json") + +os.setenv("ALL_PROXY", "socks5://172.17.0.1:9057") + +local http = require("http") + +local function get_ip(arg) + local ip = arg + local response, err = http.request("GET", + "https://getip-api.com/json?" .. ip) + local json_response, err = json.decode(response.body) + + local result = "" + for key, value in ipairs(json_response) do + result = result .. key .. ": " .. value .. "\n" + end + + return result +end + +milla.register_cmd("ip", "get_ip") diff --git a/plugins/proxy_test.lua b/plugins/proxy_test.lua new file mode 100644 index 0000000..841fefa --- /dev/null +++ b/plugins/proxy_test.lua @@ -0,0 +1,10 @@ +local milla = require("milla") +local os = require("os") +local json = require("json") + +os.setenv("ALL_PROXY", "socks5://172.17.0.1:9057") + +local http = require("http") + +local response, err = http.request("GET", "https://icanhazip.com") +print(response.body) |