From fbcc618355298bc59aa7ea8f997d0ac5dc54fb5e Mon Sep 17 00:00:00 2001 From: mudler Date: Fri, 28 Feb 2025 19:30:12 +0100 Subject: [PATCH] Reply to mentions in threads --- services/connectors/slack.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/services/connectors/slack.go b/services/connectors/slack.go index 2582282..d046aa2 100644 --- a/services/connectors/slack.go +++ b/services/connectors/slack.go @@ -107,10 +107,12 @@ func (t *Slack) Start(a *agent.Agent) { res := a.Ask( agent.WithText(message), ) + ts := ev.ThreadTimeStamp _, _, err = api.PostMessage(ev.Channel, slack.MsgOptionText(res.Response, false), - slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) + slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1}), + slack.MsgOptionTS(ts)) if err != nil { fmt.Printf("Error posting message: %v", err) } @@ -132,9 +134,19 @@ func (t *Slack) Start(a *agent.Agent) { agent.WithText(message), ) - _, _, err = api.PostMessage(ev.Channel, - slack.MsgOptionText(res.Response, false), - slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1})) + ts := ev.ThreadTimeStamp + + if ts != "" { + _, _, err = api.PostMessage(ev.Channel, + slack.MsgOptionText(res.Response, false), + slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1}), + slack.MsgOptionTS(ts)) + } else { + _, _, err = api.PostMessage(ev.Channel, + slack.MsgOptionText(res.Response, false), + slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{LinkNames: 1}), + slack.MsgOptionTS(ev.TimeStamp)) + } if err != nil { fmt.Printf("Error posting message: %v", err) }