Thumbnail

rani/matterbridge.git

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

commit 5a15b80974c877366481b28c2ef5c047060dbd36 Author: Wim <wim@42.be> Date: Tue May 23 22:26:37 2017 +0000 Replace long ids in channel metions (discord). Fixes #174 diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index f6f3077..f379ede 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -1406 +1407 @@ func (b *bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat   m.Message.Content = b.replaceRoleMentions(m.Message.Content)   }   m.Message.Content = b.stripCustomoji(m.Message.Content) + m.Message.Content = b.replaceChannelMentions(m.Message.Content)   b.Remote <- config.Message{Username: username, Text: m.ContentWithMentionsReplaced(), Channel: channelName,   Account: b.Account, Avatar: "https://cdn.discordapp.com/avatars/" + m.Author.ID + "/" + m.Author.Avatar + ".jpg"}  } @@ -2136 +21425 @@ func (b *bdiscord) replaceRoleMentions(text string) string {   return text  }   +func (b *bdiscord) replaceChannelMentions(text string) string { + var err error + re := regexp.MustCompile("<#[0-9]+>") + text = re.ReplaceAllStringFunc(text, func(m string) string { + channel := b.getChannelName(m[2 : len(m)-1]) + // if at first don't succeed, try again + if channel == "" { + b.Channels, err = b.c.GuildChannels(b.guildID) + if err != nil { + return "#unknownchannel" + } + channel = b.getChannelName(m[2 : len(m)-1]) + return channel + } + return channel + }) + return text +} +  func (b *bdiscord) stripCustomoji(text string) string {   // <:doge:302803592035958784>   re := regexp.MustCompile("<(:.*?:)[0-9]+>")