diff options
author | Qais Patankar <qaisjp@gmail.com> | 2019-10-03 23:18:56 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2019-10-04 00:18:56 +0200 |
commit | ba6759010bc3c1c6b2793b3fdf92f8dadf481117 (patch) | |
tree | 8d04845d26ae6736bb04d167fecce80c74872569 /bridge/discord | |
parent | da3868c104f9e044b97c86c93a88843b7d8d4ead (diff) | |
download | matterbridge-msglm-ba6759010bc3c1c6b2793b3fdf92f8dadf481117.tar.gz matterbridge-msglm-ba6759010bc3c1c6b2793b3fdf92f8dadf481117.tar.bz2 matterbridge-msglm-ba6759010bc3c1c6b2793b3fdf92f8dadf481117.zip |
Add UserTypingSupport (discord) (#914)
* Add Discord to UserTypingSupport
* discord: start typing in a channel on EventUserTyping receive
* discord: emit EventUserTyping to gateway
Diffstat (limited to 'bridge/discord')
-rw-r--r-- | bridge/discord/discord.go | 9 | ||||
-rw-r--r-- | bridge/discord/handlers.go | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index 84171fa5..1c6c40d9 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -72,6 +72,7 @@ func (b *Bdiscord) Connect() error { } b.Log.Info("Connection succeeded") b.c.AddHandler(b.messageCreate) + b.c.AddHandler(b.messageTyping) b.c.AddHandler(b.memberUpdate) b.c.AddHandler(b.messageUpdate) b.c.AddHandler(b.messageDelete) @@ -188,6 +189,14 @@ func (b *Bdiscord) Send(msg config.Message) (string, error) { return "", fmt.Errorf("Could not find channelID for %v", msg.Channel) } + if msg.Event == config.EventUserTyping { + if b.GetBool("ShowUserTyping") { + err := b.c.ChannelTyping(channelID) + return "", err + } + return "", nil + } + // Make a action /me of the message if msg.Event == config.EventUserAction { msg.Text = "_" + msg.Text + "_" diff --git a/bridge/discord/handlers.go b/bridge/discord/handlers.go index cfda2de9..9260427d 100644 --- a/bridge/discord/handlers.go +++ b/bridge/discord/handlers.go @@ -37,6 +37,19 @@ func (b *Bdiscord) messageDeleteBulk(s *discordgo.Session, m *discordgo.MessageD } } +func (b *Bdiscord) messageTyping(s *discordgo.Session, m *discordgo.TypingStart) { + if !b.GetBool("ShowUserTyping") { + return + } + + rmsg := config.Message{Account: b.Account, Event: config.EventUserTyping} + rmsg.Channel = b.getChannelName(m.ChannelID) + if b.useChannelID { + rmsg.Channel = "ID:" + m.ChannelID + } + b.Remote <- rmsg +} + func (b *Bdiscord) messageUpdate(s *discordgo.Session, m *discordgo.MessageUpdate) { //nolint:unparam if b.GetBool("EditDisable") { return |