Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit e2dc7d63e19eaa1da8ce9940857d304d0f896daf Author: Qais Patankar <qaisjp@gmail.com> Date: Sun Jun 16 00:15:18 2019 +0000 Support bulk deletions (discord) diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index 49dfe4b..ea43bd2 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -756 +757 @@ func (b *Bdiscord) Connect() error {   b.c.AddHandler(b.memberUpdate)   b.c.AddHandler(b.messageUpdate)   b.c.AddHandler(b.messageDelete) + b.c.AddHandler(b.messageDeleteBulk)   b.c.AddHandler(b.memberAdd)   b.c.AddHandler(b.memberRemove)   err = b.c.Open() diff --git a/bridge/discord/handlers.go b/bridge/discord/handlers.go index 85a36e1..19e0ad6 100644 --- a/bridge/discord/handlers.go +++ b/bridge/discord/handlers.go @@ -166 +1627 @@ func (b *Bdiscord) messageDelete(s *discordgo.Session, m *discordgo.MessageDelet   b.Remote <- rmsg  }   +// TODO(qaisjp): if other bridges support bulk deletions, it could be fanned out centrally +func (b *Bdiscord) messageDeleteBulk(s *discordgo.Session, m *discordgo.MessageDeleteBulk) { //nolint:unparam + for _, msgID := range m.Messages { + rmsg := config.Message{ + Account: b.Account, + ID: msgID, + Event: config.EventMsgDelete, + Text: config.EventMsgDelete, + Channel: "ID:" + m.ChannelID, + } + + if !b.useChannelID { + rmsg.Channel = b.getChannelName(m.ChannelID) + } + + b.Log.Debugf("<= Sending message from %s to gateway", b.Account) + b.Log.Debugf("<= Message is %#v", rmsg) + b.Remote <- rmsg + } +} +  func (b *Bdiscord) messageUpdate(s *discordgo.Session, m *discordgo.MessageUpdate) { //nolint:unparam   if b.GetBool("EditDisable") {   return