diff --git a/handlers/message_created.go b/handlers/message_created.go index a8d5e0b..2706850 100644 --- a/handlers/message_created.go +++ b/handlers/message_created.go @@ -2,7 +2,6 @@ package handlers import ( "fmt" - "hal/env" "hal/openai" "log" "regexp" @@ -14,7 +13,17 @@ const MAX_HISTORY = 50 var messagesHistory = []*openai.ChatMessage{} -func OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) { +type Handler struct { + client *openai.Client +} + +func Init(token string) Handler { + return Handler{ + client: openai.NewClient(token), + } +} + +func (h Handler) OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) { isHal := m.Author.ID == s.State.User.ID addMessageToHistory(m.Message, isHal) @@ -24,9 +33,7 @@ func OnMessageCreated(s *discordgo.Session, m *discordgo.MessageCreate) { } if containUser(m.Mentions, s.State.User.ID) { - aiclient := openai.NewClient(env.GetEnvVariables().OpenaiHalToken) - - res, err := aiclient.Chat(messagesHistory) + res, err := h.client.Chat(messagesHistory) if err != nil { sendResponse( s, diff --git a/main.go b/main.go index 7cfa66d..f71358b 100644 --- a/main.go +++ b/main.go @@ -17,13 +17,15 @@ func main() { var err error + handler := handlers.Init(env.OpenaiHalToken) + discordToken := fmt.Sprintf("Bot %s", env.Token) dgclient, err := discordbot.New(discordToken) if err != nil { panic(fmt.Errorf("failed to create discord client: %s", err.Error())) } - dgclient.AddHandler(handlers.OnMessageCreated) + dgclient.AddHandler(handler.OnMessageCreated) err = dgclient.Open() if err != nil {