Thumbnail

rani/matterbridge.git

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

commit 1a38df8a86cbfd589106e6031df66c7de8b7a5b9 Author: c0ncord2 <59669788+c0ncord2@users.noreply.github.com> Date: Thu Jan 09 17:02:53 2020 +0000 move stripCustomoji logic to default Tengo script (#973) * move stripCustomoji logic to default Tengo script Removing the image ID from the message (without any possibility of recovering it later) is a loss of valuable data that prevents users from giving support to custom emoji via Tengo scripts. * bugfix - do send colors to other irc bridges "if we're not sending to an irc bridge we strip the IRC colors" Co-authored-by: c0ncord <59654954+c0ncord@users.noreply.github.com> diff --git a/bridge/discord/handlers.go b/bridge/discord/handlers.go index 4ffbf5a..c86a9e8 100644 --- a/bridge/discord/handlers.go +++ b/bridge/discord/handlers.go @@ -887 +886 @@ func (b *Bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat     if m.Content != "" {   b.Log.Debugf("== Receiving event %#v", m.Message) - m.Message.Content = b.stripCustomoji(m.Message.Content)   m.Message.Content = b.replaceChannelMentions(m.Message.Content)   rmsg.Text, err = m.ContentWithMoreMentionsReplaced(b.c)   if err != nil { diff --git a/bridge/discord/helpers.go b/bridge/discord/helpers.go index 734de3c..c094e47 100644 --- a/bridge/discord/helpers.go +++ b/bridge/discord/helpers.go @@ -1297 +1296 @@ func (b *Bdiscord) getCategoryChannelName(name, parentID string) string {  var (   // See https://discordapp.com/developers/docs/reference#message-formatting.   channelMentionRE = regexp.MustCompile("<#[0-9]+>") - emojiRE = regexp.MustCompile("<(:.*?:)[0-9]+>")   userMentionRE = regexp.MustCompile("@[^@\n]{1,32}")  )   @@ -17610 +1756 @@ func (b *Bdiscord) replaceUserMentions(text string) string {   return userMentionRE.ReplaceAllStringFunc(text, replaceUserMentionFunc)  }   -func (b *Bdiscord) stripCustomoji(text string) string { - return emojiRE.ReplaceAllString(text, `$1`) -} -  func (b *Bdiscord) replaceAction(text string) (string, bool) {   if strings.HasPrefix(text, "_") && strings.HasSuffix(text, "_") {   return text[1 : len(text)-1], true diff --git a/internal/tengo/outmessage.tengo b/internal/tengo/outmessage.tengo index d218088..a68bb3d 100644 --- a/internal/tengo/outmessage.tengo +++ b/internal/tengo/outmessage.tengo @@ -128 +1214 @@ text := import("text")    // start - strip irc colors  // if we're not sending to an irc bridge we strip the IRC colors -if inProtocol == "irc" { +if inProtocol == "irc" && outProtocol != "irc" { re := text.re_compile(`\x03(?:\d{1,2}(?:,\d{1,2})?)?|[[:cntrl:]]`) msgText=re.replace(msgText,"")  }  // end - strip irc colors + +// strip custom emoji +if inProtocol == "discord" { + re := text.re_compile(`<a?(:.*?:)[0-9]+>`) + msgText=re.replace(msgText,"$1") +}