Thumbnail

rani/matterbridge.git

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

commit a7a529967f0724c267716cd0d4cda7a300c3a900 Author: Qais Patankar <qaisjp@gmail.com> Date: Mon Jul 15 02:53:09 2019 +0000 Fix discord channel & category name clash. #860 (#861) diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index 4c1c0f4..66c8134 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -9512 +9514 @@ func (b *Bdiscord) Connect() error {   b.channelsMutex.Lock()   for _, guild := range guilds {   if guild.Name == serverName || guild.ID == serverName { - b.channels, err = b.c.GuildChannels(guild.ID) - b.guildID = guild.ID - guildFound = true + var chans []*discordgo.Channel + chans, err = b.c.GuildChannels(guild.ID)   if err != nil {   break   } + b.channels = filterChannelsByType(chans, discordgo.ChannelTypeGuildText, false) + b.guildID = guild.ID + guildFound = true   }   }   b.channelsMutex.Unlock() diff --git a/bridge/discord/helpers.go b/bridge/discord/helpers.go index e150d19..5bf6931 100644 --- a/bridge/discord/helpers.go +++ b/bridge/discord/helpers.go @@ -8813 +8813 @@ var (    func (b *Bdiscord) replaceChannelMentions(text string) string {   replaceChannelMentionFunc := func(match string) string { - var err error   channelID := match[2 : len(match)-1] -   channelName := b.getChannelName(channelID) +   // If we don't have the channel refresh our list.   if channelName == "" { - b.channels, err = b.c.GuildChannels(b.guildID) + chans, err := b.c.GuildChannels(b.guildID) + b.channels = filterChannelsByType(chans, discordgo.ChannelTypeGuildCategory, true)   if err != nil {   return "#unknownchannel"   } @@ -2113 +21119 @@ func (b *Bdiscord) webhookExecute(webhookID, token string, wait bool, data *disc     return st, nil  } + +func filterChannelsByType(chans []*discordgo.Channel, t discordgo.ChannelType, filterOut bool) []*discordgo.Channel { + cs := []*discordgo.Channel{} + for _, c := range chans { + keep := c.Type == t + if filterOut { + keep = c.Type != t + } + + if keep { + cs = append(cs, c) + } + } + return cs + +}