commit e6b6b5fd565a04973147bd4d91d99cab494a10c5
Author: Wim <wim@42.be>
Date: Mon Nov 13 00:20:31 2017 +0000
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 0dfba94..b412434 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -338 +339 @@ type Message struct {
}
type FileInfo struct {
- Name string
- Data *[]byte
+ Name string
+ Data *[]byte
+ Comment string
}
type ChannelInfo struct {
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go
index 12e0d82..183b119 100644
--- a/bridge/discord/discord.go
+++ b/bridge/discord/discord.go
@@ -15111 +15112 @@ func (b *bdiscord) Send(msg config.Message) (string, error) {
fi := f.(config.FileInfo)
files := []*discordgo.File{}
files = append(files, &discordgo.File{fi.Name, "", bytes.NewReader(*fi.Data)})
- _, err = b.c.ChannelMessageSendComplex(channelID, &discordgo.MessageSend{Content: msg.Text, Files: files})
+ _, err = b.c.ChannelMessageSendComplex(channelID, &discordgo.MessageSend{Content: msg.Username + fi.Comment, Files: files})
if err != nil {
flog.Errorf("file upload failed: %#v", err)
}
}
+ return "", nil
}
}
diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go
index 3274d81..9d9990b 100644
--- a/bridge/mattermost/mattermost.go
+++ b/bridge/mattermost/mattermost.go
@@ -1909 +1909 @@ func (b *Bmattermost) Send(msg config.Message) (string, error) {
flog.Debugf("ERROR %#v", err)
return "", err
}
- message = "uploaded a file: " + fi.Name
+ message = fi.Comment
if b.Config.PrefixMessagesWithNick {
- message = nick + "uploaded a file: " + fi.Name
+ message = nick + fi.Comment
}
res, err = b.mc.PostMessageWithFiles(b.mc.GetChannelId(channel, ""), message, []string{id})
}
diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go
index 7400375..b753c1a 100644
--- a/bridge/slack/slack.go
+++ b/bridge/slack/slack.go
@@ -1959 +19510 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
for _, f := range msg.Extra["file"] {
fi := f.(config.FileInfo)
_, err = b.sc.UploadFile(slack.FileUploadParameters{
- Reader: bytes.NewReader(*fi.Data),
- Filename: fi.Name,
- Channels: []string{schannel.ID},
+ Reader: bytes.NewReader(*fi.Data),
+ Filename: fi.Name,
+ Channels: []string{schannel.ID},
+ InitialComment: fi.Comment,
})
if err != nil {
flog.Errorf("uploadfile %#v", err)
@@ -29416 +29521 @@ func (b *Bslack) handleSlack() {
if message.Raw.File != nil {
// limit to 1MB for now
if message.Raw.File.Size <= 1000000 {
+ comment := ""
data, err := b.downloadFile(message.Raw.File.URLPrivateDownload)
if err != nil {
flog.Errorf("download %s failed %#v", message.Raw.File.URLPrivateDownload, err)
} else {
- msg.Extra["file"] = append(msg.Extra["file"], config.FileInfo{Name: message.Raw.File.Name, Data: data})
+ results := regexp.MustCompile(`.*?commented: (.*)`).FindAllStringSubmatch(msg.Text, -1)
+ if len(results) > 0 {
+ comment = results[0][1]
+ }
+ msg.Extra["file"] = append(msg.Extra["file"], config.FileInfo{Name: message.Raw.File.Name, Data: data, Comment: comment})
}
+ flog.Debugf("Message is %#v", msg)
+ b.Remote <- msg
}
}
- flog.Debugf("Message is %#v", msg)
- b.Remote <- msg
}
}
diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go
index f466266..5cd4925 100644
--- a/bridge/telegram/telegram.go
+++ b/bridge/telegram/telegram.go
@@ -11420 +11414 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {
if err != nil {
log.Errorf("file upload failed: %#v", err)
}
+ if fi.Comment != "" {
+ b.sendMessage(chatid, msg.Username+fi.Comment)
+ }
}
+ return "", nil
}
}
-
- m := tgbotapi.NewMessage(chatid, msg.Username+msg.Text)
- if b.Config.MessageFormat == "HTML" {
- m.ParseMode = tgbotapi.ModeHTML
- }
- res, err := b.c.Send(m)
- if err != nil {
- return "", err
- }
- return strconv.Itoa(res.MessageID), nil
-
+ return b.sendMessage(chatid, msg.Username+msg.Text)
}
func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
@@ -2753 +26915 @@ func (b *Btelegram) handleDownload(file interface{}, msg *config.Message) {
}
}
}
+
+func (b *Btelegram) sendMessage(chatid int64, text string) (string, error) {
+ m := tgbotapi.NewMessage(chatid, text)
+ if b.Config.MessageFormat == "HTML" {
+ m.ParseMode = tgbotapi.ModeHTML
+ }
+ res, err := b.c.Send(m)
+ if err != nil {
+ return "", err
+ }
+ return strconv.Itoa(res.MessageID), nil
+}