slackApp: a few fixes...

* DMs work again and are logged
* bot knows who itself is
This commit is contained in:
Chris Sexton 2019-06-07 16:49:18 -04:00
parent ac95fcc5e1
commit 74b32dd2e9
1 changed files with 23 additions and 17 deletions

View File

@ -185,27 +185,29 @@ func (s *SlackApp) msgReceivd(msg *slackevents.MessageEvent) {
} }
isItMe := msg.BotID != "" && msg.BotID == s.myBotID isItMe := msg.BotID != "" && msg.BotID == s.myBotID
if !isItMe && msg.ThreadTimeStamp == "" {
m := s.buildMessage(msg) m := s.buildMessage(msg)
if m.Time.Before(s.lastRecieved) { if m.Time.Before(s.lastRecieved) {
log.Debug(). log.Debug().
Time("ts", m.Time). Time("ts", m.Time).
Interface("lastRecv", s.lastRecieved). Interface("lastRecv", s.lastRecieved).
Msg("Ignoring message") Msg("Ignoring message")
} else { return
}
if err := s.log(m); err != nil { if err := s.log(m); err != nil {
log.Fatal().Err(err).Msg("Error logging message") log.Fatal().Err(err).Msg("Error logging message")
} }
if !isItMe && msg.ThreadTimeStamp == "" {
s.lastRecieved = m.Time s.lastRecieved = m.Time
s.event(s, bot.Message, m) s.event(s, bot.Message, m)
}
} else if msg.ThreadTimeStamp != "" { } else if msg.ThreadTimeStamp != "" {
//we're throwing away some information here by not parsing the correct reply object type, but that's okay //we're throwing away some information here by not parsing the correct reply object type, but that's okay
s.event(s, bot.Reply, s.buildMessage(msg), msg.ThreadTimeStamp) s.event(s, bot.Reply, s.buildMessage(msg), msg.ThreadTimeStamp)
} else if isItMe {
s.event(s, bot.SelfMessage, m)
} else { } else {
log.Debug(). log.Debug().
Str("text", msg.Text). Str("text", msg.Text).
Msg("THAT MESSAGE WAS HIDDEN") Msg("Unknown message is hidden")
} }
} }
@ -408,12 +410,16 @@ func (s *SlackApp) buildMessage(m *slackevents.MessageEvent) msg.Message {
name := "UNKNOWN" name := "UNKNOWN"
u, _ := s.getUser(m.User) u, _ := s.getUser(m.User)
if u != nil { if u != nil {
name = u.Name name = u.Profile.DisplayName
} }
if m.Username != "" && u == nil { if m.Username != "" && u == nil {
name = m.Username name = m.Username
} }
ch, _ := s.getChannel(m.Channel)
chName := m.Channel
if ch, _ := s.getChannel(m.Channel); ch != nil {
chName = ch.Name
}
tstamp := slackTStoTime(m.TimeStamp) tstamp := slackTStoTime(m.TimeStamp)
@ -425,7 +431,7 @@ func (s *SlackApp) buildMessage(m *slackevents.MessageEvent) msg.Message {
Body: text, Body: text,
Raw: m, Raw: m,
Channel: m.Channel, Channel: m.Channel,
ChannelName: ch.Name, ChannelName: chName,
IsIM: m.ChannelType == "im", IsIM: m.ChannelType == "im",
Command: isCmd, Command: isCmd,
Action: isAction, Action: isAction,