forked from jshiffer/matterbridge
Tag messages we send ourself using CallbackID hack (slack). Closes #219
This commit is contained in:
parent
cc5ce3d5ae
commit
dc8743e0c0
@ -32,7 +32,6 @@ type Bslack struct {
|
|||||||
Account string
|
Account string
|
||||||
si *slack.Info
|
si *slack.Info
|
||||||
channels []slack.Channel
|
channels []slack.Channel
|
||||||
BotID string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var flog *log.Entry
|
var flog *log.Entry
|
||||||
@ -160,6 +159,7 @@ func (b *Bslack) Send(msg config.Message) error {
|
|||||||
if msg.Avatar != "" {
|
if msg.Avatar != "" {
|
||||||
np.IconURL = msg.Avatar
|
np.IconURL = msg.Avatar
|
||||||
}
|
}
|
||||||
|
np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge"})
|
||||||
b.sc.PostMessage(schannel.ID, message, np)
|
b.sc.PostMessage(schannel.ID, message, np)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -219,7 +219,7 @@ func (b *Bslack) handleSlack() {
|
|||||||
flog.Debug("Start listening for Slack messages")
|
flog.Debug("Start listening for Slack messages")
|
||||||
for message := range mchan {
|
for message := range mchan {
|
||||||
// do not send messages from ourself
|
// do not send messages from ourself
|
||||||
if b.Config.WebhookURL == "" && b.Config.WebhookBindAddress == "" && (message.Username == b.si.User.Name || message.UserID == b.BotID) {
|
if b.Config.WebhookURL == "" && b.Config.WebhookBindAddress == "" && message.Username == b.si.User.Name {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
texts := strings.Split(message.Text, "\n")
|
texts := strings.Split(message.Text, "\n")
|
||||||
@ -241,6 +241,12 @@ func (b *Bslack) handleSlackClient(mchan chan *MMMessage) {
|
|||||||
// ignore first message
|
// ignore first message
|
||||||
if count > 0 {
|
if count > 0 {
|
||||||
flog.Debugf("Receiving from slackclient %#v", ev)
|
flog.Debugf("Receiving from slackclient %#v", ev)
|
||||||
|
if len(ev.Attachments) > 0 {
|
||||||
|
// skip messages we made ourselves
|
||||||
|
if ev.Attachments[0].CallbackID == "matterbridge" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
if !b.Config.EditDisable && ev.SubMessage != nil && ev.SubMessage.ThreadTimestamp != ev.SubMessage.Timestamp {
|
if !b.Config.EditDisable && ev.SubMessage != nil && ev.SubMessage.ThreadTimestamp != ev.SubMessage.Timestamp {
|
||||||
flog.Debugf("SubMessage %#v", ev.SubMessage)
|
flog.Debugf("SubMessage %#v", ev.SubMessage)
|
||||||
ev.User = ev.SubMessage.User
|
ev.User = ev.SubMessage.User
|
||||||
@ -293,12 +299,6 @@ func (b *Bslack) handleSlackClient(mchan chan *MMMessage) {
|
|||||||
case *slack.ConnectedEvent:
|
case *slack.ConnectedEvent:
|
||||||
b.channels = ev.Info.Channels
|
b.channels = ev.Info.Channels
|
||||||
b.si = ev.Info
|
b.si = ev.Info
|
||||||
for _, bot := range b.si.Bots {
|
|
||||||
if bot.Name == "Slack API Tester" {
|
|
||||||
b.BotID = bot.ID
|
|
||||||
flog.Debugf("my bot ID is %#v", bot.ID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
b.Users, _ = b.sc.GetUsers()
|
b.Users, _ = b.sc.GetUsers()
|
||||||
// add private channels
|
// add private channels
|
||||||
groups, _ := b.sc.GetGroups(true)
|
groups, _ := b.sc.GetGroups(true)
|
||||||
|
Loading…
Reference in New Issue
Block a user