Thumbnail

rani/matterbridge.git

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

commit 49e398ef1934dbdf02c2570b9678aa0cf0dba661 Author: Alexander <korelskiy@uteka.ru> Date: Fri Apr 01 00:50:38 2022 +0000 Ignore sending file with comment, if comment contains IgnoreMessages value (#1783) * Ignore sending file with comment, if comment contains message to ignore * Fix linter issue diff --git a/gateway/gateway.go b/gateway/gateway.go index fc75916..a2d572b 100644 --- a/gateway/gateway.go +++ b/gateway/gateway.go @@ -29913 +29930 @@ func (gw *Gateway) ignoreMessage(msg *config.Message) bool {     igNicks := strings.Fields(gw.Bridges[msg.Account].GetString("IgnoreNicks"))   igMessages := strings.Fields(gw.Bridges[msg.Account].GetString("IgnoreMessages")) - if gw.ignoreTextEmpty(msg) || gw.ignoreText(msg.Username, igNicks) || gw.ignoreText(msg.Text, igMessages) { + if gw.ignoreTextEmpty(msg) || gw.ignoreText(msg.Username, igNicks) || gw.ignoreText(msg.Text, igMessages) || gw.ignoreFilesComment(msg.Extra, igMessages) {   return true   }     return false  }   +// ignoreFilesComment returns true if we need to ignore a file with matched comment. +func (gw *Gateway) ignoreFilesComment(extra map[string][]interface{}, igMessages []string) bool { + if extra == nil { + return false + } + for _, f := range extra["file"] { + fi, ok := f.(config.FileInfo) + if !ok { + continue + } + if gw.ignoreText(fi.Comment, igMessages) { + return true + } + } + return false +} +  func (gw *Gateway) modifyUsername(msg *config.Message, dest *bridge.Bridge) string {   if dest.GetBool("StripNick") {   re := regexp.MustCompile("[^a-zA-Z0-9]+")