Skip to content

Commit bcbbf64

Browse files
fixes 8
1 parent 7c8e016 commit bcbbf64

File tree

5 files changed

+57
-28
lines changed

5 files changed

+57
-28
lines changed

README.md

+4-8
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ databaseAddress = "postgres:5432"
342342
databasePassword = "changeme"
343343
databaseUser = "devi"
344344
databaseName = "milla"
345-
scrapeChannels = ["#soulhack", "#warroom"]
345+
scrapeChannels = ["#soulhack", "#warroom", "#securityfeeds"]
346346
ircProxy = "socks5://127.0.0.1:9050"
347347
llmProxy = "http://127.0.0.1:8180"
348348
skipTLSVerify = false
@@ -353,19 +353,15 @@ plugins = ["/plugins/ip.lua", "/plugins/urban.lua"]
353353
watchList = ["#securityfeeds"]
354354
watchFiles = ["/watchfiles/voidbox.list"]
355355
alertChannel = "#milla_alerts"
356+
eventTypes = ["PRIVMSG"]
357+
fgColor = 0
358+
bgColor = 28
356359
[ircd.devinet.rss.manga]
357360
rssFile = "/rssfeeds/manga.json"
358361
channel = "#manga"
359362
[ircd.devinet.rss.anime]
360363
rssFile = "/rssfeeds/anime.json"
361364
channel = "#anime"
362-
[ircd.devinet.watchlist.security]
363-
watchList = ["#securityfeeds"]
364-
watchFiles = ["/watchfiles/voidbox.list"]
365-
alertChannel = "#milla_alerts"
366-
eventTypes = ["PRIVMSG"]
367-
fgColor = 0
368-
bgColor = 28
369365

370366
[ircd.liberanet]
371367
ircServer = "irc.libera.chat"

main.go

+37-8
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ func handleCustomCommand(
315315

316316
logs, err := pgx.CollectRows(rows, pgx.RowToStructByName[LogModel])
317317
if err != nil {
318-
log.Println(err.Error())
318+
LogError(err)
319319

320320
return
321321
}
@@ -327,7 +327,7 @@ func handleCustomCommand(
327327
log.Println(logs)
328328

329329
if err != nil {
330-
log.Println(err.Error())
330+
LogError(err)
331331

332332
return
333333
}
@@ -807,15 +807,44 @@ func OllamaHandler(
807807
})
808808
}
809809

810+
func (t *ProxyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
811+
transport := http.DefaultTransport.(*http.Transport).Clone()
812+
813+
if t.ProxyURL != "" {
814+
proxyURL, err := url.Parse(t.ProxyURL)
815+
if err != nil {
816+
return nil, err
817+
}
818+
transport.Proxy = http.ProxyURL(proxyURL)
819+
}
820+
821+
newReq := req.Clone(req.Context())
822+
vals := newReq.URL.Query()
823+
vals.Set("key", t.APIKey)
824+
newReq.URL.RawQuery = vals.Encode()
825+
826+
resp, err := transport.RoundTrip(newReq)
827+
if err != nil {
828+
return nil, err
829+
}
830+
831+
return resp, nil
832+
}
833+
810834
func DoGeminiRequest(
811835
appConfig *TomlConfig,
812836
geminiMemory *[]*genai.Content,
813837
prompt string,
814838
) (string, error) {
839+
httpProxyClient := &http.Client{Transport: &ProxyRoundTripper{
840+
APIKey: appConfig.Apikey,
841+
ProxyURL: appConfig.LLMProxy,
842+
}}
843+
815844
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(appConfig.RequestTimeout)*time.Second)
816845
defer cancel()
817846

818-
clientGemini, err := genai.NewClient(ctx, option.WithAPIKey(appConfig.Apikey))
847+
clientGemini, err := genai.NewClient(ctx, option.WithHTTPClient(httpProxyClient))
819848
if err != nil {
820849

821850
return "", err
@@ -1338,17 +1367,17 @@ func runIRC(appConfig TomlConfig) {
13381367
if appConfig.IRCProxy != "" {
13391368
proxyURL, err := url.Parse(appConfig.IRCProxy)
13401369
if err != nil {
1341-
log.Fatal(err.Error())
1370+
LogErrorFatal(err)
13421371
}
13431372

13441373
dialer, err = proxy.FromURL(proxyURL, &net.Dialer{Timeout: time.Duration(appConfig.RequestTimeout) * time.Second})
13451374
if err != nil {
1346-
log.Fatal(err.Error())
1375+
LogErrorFatal(err)
13471376
}
13481377
}
13491378

13501379
if err := irc.DialerConnect(dialer); err != nil {
1351-
log.Println(err)
1380+
LogError(err)
13521381
log.Println("reconnecting in " + strconv.Itoa(appConfig.MillaReconnectDelay))
13531382
time.Sleep(time.Duration(appConfig.MillaReconnectDelay) * time.Second)
13541383
} else {
@@ -1367,14 +1396,14 @@ func main() {
13671396

13681397
data, err := os.ReadFile(*configPath)
13691398
if err != nil {
1370-
log.Fatal(err)
1399+
LogErrorFatal(err)
13711400
}
13721401

13731402
var config AppConfig
13741403

13751404
_, err = toml.Decode(string(data), &config)
13761405
if err != nil {
1377-
log.Fatal(err)
1406+
LogErrorFatal(err)
13781407
}
13791408

13801409
for key, value := range config.Ircd {

plugins.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ func ollamaRequestClosure(luaState *lua.LState, appConfig *TomlConfig) func(*lua
244244

245245
result, err := DoOllamaRequest(appConfig, &[]MemoryElement{}, prompt)
246246
if err != nil {
247-
log.Print(err)
247+
LogError(err)
248248
}
249249

250250
luaState.Push(lua.LString(result))
@@ -259,7 +259,7 @@ func geminiRequestClosure(luaState *lua.LState, appConfig *TomlConfig) func(*lua
259259

260260
result, err := DoGeminiRequest(appConfig, &[]*genai.Content{}, prompt)
261261
if err != nil {
262-
log.Print(err)
262+
LogError(err)
263263
}
264264

265265
luaState.Push(lua.LString(result))
@@ -274,7 +274,7 @@ func chatGPTRequestClosure(luaState *lua.LState, appConfig *TomlConfig) func(*lu
274274

275275
result, err := DoChatGPTRequest(appConfig, &[]openai.ChatCompletionMessage{}, prompt)
276276
if err != nil {
277-
log.Print(err)
277+
LogError(err)
278278
}
279279

280280
luaState.Push(lua.LString(result))
@@ -295,13 +295,13 @@ func dbQueryClosure(luaState *lua.LState, appConfig *TomlConfig) func(*lua.LStat
295295

296296
rows, err := appConfig.pool.Query(context.Background(), query)
297297
if err != nil {
298-
log.Println(err.Error())
298+
LogError(err)
299299
}
300300
defer rows.Close()
301301

302302
logs, err := pgx.CollectRows(rows, pgx.RowToStructByName[LogModel])
303303
if err != nil {
304-
log.Println(err.Error())
304+
LogError(err)
305305
}
306306

307307
table := luaState.CreateTable(0, len(logs))
@@ -388,7 +388,7 @@ func RunScript(scriptPath string, client *girc.Client, appConfig *TomlConfig) {
388388
if proxyString != "" {
389389
proxyURL, err := url.Parse(proxyString)
390390
if err != nil {
391-
log.Print(err)
391+
LogError(err)
392392
}
393393
proxyTransport.Proxy = http.ProxyURL(proxyURL)
394394
}
@@ -399,7 +399,7 @@ func RunScript(scriptPath string, client *girc.Client, appConfig *TomlConfig) {
399399

400400
err := luaState.DoFile(scriptPath)
401401
if err != nil {
402-
log.Print(err)
402+
LogError(err)
403403
}
404404
}
405405

@@ -454,7 +454,7 @@ func RunLuaFunc(
454454
if proxyString != "" {
455455
proxyURL, err := url.Parse(proxyString)
456456
if err != nil {
457-
log.Print(err)
457+
LogError(err)
458458
}
459459
proxyTransport.Proxy = http.ProxyURL(proxyURL)
460460
}
@@ -464,7 +464,7 @@ func RunLuaFunc(
464464
log.Print("Running lua command script: ", scriptPath)
465465

466466
if err := luaState.DoFile(scriptPath); err != nil {
467-
log.Print(err)
467+
LogError(err)
468468

469469
return ""
470470
}
@@ -479,7 +479,7 @@ func RunLuaFunc(
479479
log.Print(args)
480480
if err := luaState.CallByParam(funcLValue, lua.LString(args)); err != nil {
481481
log.Print("failed running lua command ...")
482-
log.Print(err)
482+
LogError(err)
483483

484484
return ""
485485
}

rss.go

-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ func GetFeed(feed FeedConfig,
4141
pool.Exec(ctx, fmt.Sprintf("insert into rss (name, newest_unix_time) values ('%s',0)", rowName))
4242
}
4343

44-
log.Print("Newset from DB: ", newestFromDB)
45-
4644
sortFunc := func(a, b *gofeed.Item) int {
4745
if a.PublishedParsed.Before(*b.PublishedParsed) {
4846
return -1

types.go

+6
Original file line numberDiff line numberDiff line change
@@ -211,3 +211,9 @@ func LogErrorFatal(err error) {
211211
log.Fatal(err)
212212
}
213213
}
214+
215+
type ProxyRoundTripper struct {
216+
APIKey string
217+
218+
ProxyURL string
219+
}

0 commit comments

Comments
 (0)