From 335ddf8db543bf64522196e6928c3d10af64694c Mon Sep 17 00:00:00 2001
From: Wim <wim@42.be>
Date: Sun, 16 Jul 2017 14:18:33 +0200
Subject: [PATCH] Fix lookup bot username (slack). #213

---
 bridge/slack/slack.go | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go
index 1e956e9c..cad6959c 100644
--- a/bridge/slack/slack.go
+++ b/bridge/slack/slack.go
@@ -226,7 +226,8 @@ func (b *Bslack) handleSlack() {
 			text = b.replaceURL(text)
 			text = html.UnescapeString(text)
 			flog.Debugf("Sending message from %s on %s to gateway", message.Username, b.Account)
-			b.Remote <- config.Message{Text: text, Username: message.Username, Channel: message.Channel, Account: b.Account, Avatar: b.getAvatar(message.Username), UserID: message.UserID}
+			msg := config.Message{Text: text, Username: message.Username, Channel: message.Channel, Account: b.Account, Avatar: b.getAvatar(message.Username), UserID: message.UserID}
+			b.Remote <- msg
 		}
 	}
 }
@@ -249,24 +250,27 @@ func (b *Bslack) handleSlackClient(mchan chan *MMMessage) {
 				if err != nil {
 					continue
 				}
-				user, err := b.rtm.GetUserInfo(ev.User)
-				if err != nil {
-					continue
-				}
 				m := &MMMessage{}
-				m.UserID = user.ID
-				m.Username = user.Name
+				if ev.BotID == "" {
+					user, err := b.rtm.GetUserInfo(ev.User)
+					if err != nil {
+						continue
+					}
+					m.UserID = user.ID
+					m.Username = user.Name
+				}
 				m.Channel = channel.Name
 				m.Text = ev.Text
 				m.Raw = ev
 				m.Text = b.replaceMention(m.Text)
-				if ev.BotID != "" && user.Name == "" {
+				if ev.BotID != "" {
 					bot, err := b.rtm.GetBotInfo(ev.BotID)
 					if err != nil {
 						continue
 					}
 					if bot.Name != "" {
 						m.Username = bot.Name
+						m.UserID = bot.ID
 					}
 				}
 				mchan <- m