From 0dda7050174144d8cfc195bac2db95ce59e9dae3 Mon Sep 17 00:00:00 2001 From: mudler Date: Wed, 10 Apr 2024 20:29:30 +0200 Subject: [PATCH] Slack: no need of serial messages. in this way can be interrupted --- example/webui/connector/slack.go | 40 ++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/example/webui/connector/slack.go b/example/webui/connector/slack.go index dda683a..8d48a10 100644 --- a/example/webui/connector/slack.go +++ b/example/webui/connector/slack.go @@ -101,16 +101,18 @@ func (t *Slack) Start(a *agent.Agent) { } message := ev.Text - res := a.Ask( - agent.WithText(message), - ) + go func() { + res := a.Ask( + agent.WithText(message), + ) - _, _, err = api.PostMessage(ev.Channel, - slack.MsgOptionText(res.Response, false), - slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) - if err != nil { - fmt.Printf("Error posting message: %v", err) - } + _, _, err = api.PostMessage(ev.Channel, + slack.MsgOptionText(res.Response, false), + slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) + if err != nil { + fmt.Printf("Error posting message: %v", err) + } + }() case *slackevents.AppMentionEvent: if b.UserID == ev.User { @@ -123,16 +125,18 @@ func (t *Slack) Start(a *agent.Agent) { message = strings.ReplaceAll(message, "<@"+b.UserID+"> ", "") fmt.Println("Message", message) - res := a.Ask( - agent.WithText(message), - ) + go func() { + res := a.Ask( + agent.WithText(message), + ) - _, _, err = api.PostMessage(ev.Channel, - slack.MsgOptionText(res.Response, false), - slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) - if err != nil { - fmt.Printf("Error posting message: %v", err) - } + _, _, err = api.PostMessage(ev.Channel, + slack.MsgOptionText(res.Response, false), + slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) + if err != nil { + fmt.Printf("Error posting message: %v", err) + } + }() case *slackevents.MemberJoinedChannelEvent: fmt.Printf("user %q joined to channel %q", ev.User, ev.Channel) }