aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorterminaldweller <devi@terminaldweller.com>2024-06-26 23:49:06 +0000
committerterminaldweller <devi@terminaldweller.com>2024-06-26 23:49:06 +0000
commit2d45235aaa8456c1cbd8303bba41e4d3a95f627a (patch)
tree7b46beafbdb3d0313ef2804270a3e4264b9c0cd2 /plugins
parentadded watchlists (diff)
downloadmilla-2d45235aaa8456c1cbd8303bba41e4d3a95f627a.tar.gz
milla-2d45235aaa8456c1cbd8303bba41e4d3a95f627a.zip
WIP
Diffstat (limited to '')
-rw-r--r--plugins.go30
-rw-r--r--plugins/ip.lua23
-rw-r--r--plugins/proxy_test.lua10
3 files changed, 62 insertions, 1 deletions
diff --git a/plugins.go b/plugins.go
index 08f81a9..08f2e59 100644
--- a/plugins.go
+++ b/plugins.go
@@ -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)