summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
Diffstat (limited to 'bridge')
-rw-r--r--bridge/config/config.go3
-rw-r--r--bridge/helper/helper.go14
2 files changed, 16 insertions, 1 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 351e6cad..0fa76b52 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -74,10 +74,11 @@ type Protocol struct {
Jid string // xmpp
Label string // all protocols
Login string // mattermost, matrix
+ MediaDownloadBlackList []string
+ MediaDownloadPath string // Basically MediaServerUpload, but instead of uploading it, just write it to a file on the same server.
MediaDownloadSize int // all protocols
MediaServerDownload string
MediaServerUpload string
- MediaDownloadPath string // Basically MediaServerUpload, but instead of uploading it, just write it to a file on the same server.
MessageDelay int // IRC, time in millisecond to wait between messages
MessageFormat string // telegram
MessageLength int // IRC, max length of a message allowed
diff --git a/bridge/helper/helper.go b/bridge/helper/helper.go
index a3f4255c..13d94ede 100644
--- a/bridge/helper/helper.go
+++ b/bridge/helper/helper.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io"
"net/http"
+ "regexp"
"strings"
"time"
@@ -73,6 +74,19 @@ func GetAvatar(av map[string]string, userid string, general *config.Protocol) st
}
func HandleDownloadSize(flog *log.Entry, msg *config.Message, name string, size int64, general *config.Protocol) error {
+ // check blacklist here
+ for _, entry := range general.MediaDownloadBlackList {
+ if entry != "" {
+ re, err := regexp.Compile(entry)
+ if err != nil {
+ flog.Errorf("incorrect regexp %s for %s", entry, msg.Account)
+ continue
+ }
+ if re.MatchString(name) {
+ return fmt.Errorf("Matching blacklist %s. Not downloading %s", entry, name)
+ }
+ }
+ }
flog.Debugf("Trying to download %#v with size %#v", name, size)
if int(size) > general.MediaDownloadSize {
msg.Event = config.EVENT_FILE_FAILURE_SIZE