Don't transmit typing events from ourselves (slack/discord) (#1056)
This commit is contained in:
		@@ -21,6 +21,7 @@ type Bdiscord struct {
 | 
			
		||||
	c *discordgo.Session
 | 
			
		||||
 | 
			
		||||
	nick            string
 | 
			
		||||
	userID          string
 | 
			
		||||
	guildID         string
 | 
			
		||||
	webhookID       string
 | 
			
		||||
	webhookToken    string
 | 
			
		||||
@@ -92,6 +93,7 @@ func (b *Bdiscord) Connect() error {
 | 
			
		||||
	}
 | 
			
		||||
	serverName := strings.Replace(b.GetString("Server"), "ID:", "", -1)
 | 
			
		||||
	b.nick = userinfo.Username
 | 
			
		||||
	b.userID = userinfo.ID
 | 
			
		||||
	b.channelsMutex.Lock()
 | 
			
		||||
	for _, guild := range guilds {
 | 
			
		||||
		if guild.Name == serverName || guild.ID == serverName {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,11 @@ func (b *Bdiscord) messageTyping(s *discordgo.Session, m *discordgo.TypingStart)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Ignore our own typing messages
 | 
			
		||||
	if m.UserID == b.userID {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rmsg := config.Message{Account: b.Account, Event: config.EventUserTyping}
 | 
			
		||||
	rmsg.Channel = b.getChannelName(m.ChannelID)
 | 
			
		||||
	b.Remote <- rmsg
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package bslack
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"html"
 | 
			
		||||
	"time"
 | 
			
		||||
@@ -10,6 +11,9 @@ import (
 | 
			
		||||
	"github.com/slack-go/slack"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ErrEventIgnored is for events that should be ignored
 | 
			
		||||
var ErrEventIgnored = errors.New("this event message should ignored")
 | 
			
		||||
 | 
			
		||||
func (b *Bslack) handleSlack() {
 | 
			
		||||
	messages := make(chan *config.Message)
 | 
			
		||||
	if b.GetString(incomingWebhookConfig) != "" {
 | 
			
		||||
@@ -53,7 +57,9 @@ func (b *Bslack) handleSlackClient(messages chan *config.Message) {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			rmsg, err := b.handleTypingEvent(ev)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
			if err == ErrEventIgnored {
 | 
			
		||||
				continue
 | 
			
		||||
			} else if err != nil {
 | 
			
		||||
				b.Log.Errorf("%#v", err)
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
@@ -276,6 +282,9 @@ func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *Bslack) handleTypingEvent(ev *slack.UserTypingEvent) (*config.Message, error) {
 | 
			
		||||
	if ev.User == b.si.User.ID {
 | 
			
		||||
		return nil, ErrEventIgnored
 | 
			
		||||
	}
 | 
			
		||||
	channelInfo, err := b.channels.getChannelByID(ev.Channel)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user