summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bridge/mattermost/mattermost.go9
-rw-r--r--bridge/telegram/telegram.go24
-rw-r--r--gateway/gateway.go12
-rw-r--r--gateway/gateway_test.go54
4 files changed, 58 insertions, 41 deletions
diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go
index 2e934469..5e04923e 100644
--- a/bridge/mattermost/mattermost.go
+++ b/bridge/mattermost/mattermost.go
@@ -10,6 +10,7 @@ import (
"github.com/42wim/matterbridge/bridge/helper"
"github.com/42wim/matterbridge/matterclient"
"github.com/42wim/matterbridge/matterhook"
+ "github.com/mattermost/platform/model"
"github.com/rs/xid"
)
@@ -239,11 +240,11 @@ func (b *Bmattermost) handleMatterClient(messages chan *config.Message) {
}
// create a text for bridges that don't support native editing
- if message.Raw.Event == "post_edited" && !b.GetBool("EditDisable") {
+ if message.Raw.Event == model.WEBSOCKET_EVENT_POST_EDITED && !b.GetBool("EditDisable") {
rmsg.Text = message.Text + b.GetString("EditSuffix")
}
- if message.Raw.Event == "post_deleted" {
+ if message.Raw.Event == model.WEBSOCKET_EVENT_POST_DELETED {
rmsg.Event = config.EVENT_MSG_DELETE
}
@@ -434,7 +435,7 @@ func (b *Bmattermost) skipMessage(message *matterclient.Message) bool {
}
// Handle edited messages
- if (message.Raw.Event == "post_edited") && b.GetBool("EditDisable") {
+ if (message.Raw.Event == model.WEBSOCKET_EVENT_POST_EDITED) && b.GetBool("EditDisable") {
return true
}
@@ -462,7 +463,7 @@ func (b *Bmattermost) skipMessage(message *matterclient.Message) bool {
}
// only handle posted, edited or deleted events
- if !(message.Raw.Event == "posted" || message.Raw.Event == "post_edited" || message.Raw.Event == "post_deleted") {
+ if !(message.Raw.Event == "posted" || message.Raw.Event == model.WEBSOCKET_EVENT_POST_EDITED || message.Raw.Event == model.WEBSOCKET_EVENT_POST_DELETED) {
return true
}
return false
diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go
index 43d68edc..748ee87d 100644
--- a/bridge/telegram/telegram.go
+++ b/bridge/telegram/telegram.go
@@ -12,6 +12,12 @@ import (
"github.com/go-telegram-bot-api/telegram-bot-api"
)
+const (
+ unknownUser = "unknown"
+ HTMLFormat = "HTML"
+ HTMLNick = "htmlnick"
+)
+
type Btelegram struct {
c *tgbotapi.BotAPI
*bridge.Config
@@ -64,7 +70,7 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {
return b.cacheAvatar(&msg)
}
- if b.GetString("MessageFormat") == "HTML" {
+ if b.GetString("MessageFormat") == HTMLFormat {
msg.Text = makeHTML(msg.Text)
}
@@ -98,12 +104,12 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {
if err != nil {
return "", err
}
- if strings.ToLower(b.GetString("MessageFormat")) == "htmlnick" {
+ if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick {
b.Log.Debug("Using mode HTML - nick only")
msg.Text = html.EscapeString(msg.Text)
}
m := tgbotapi.NewEditMessageText(chatid, msgid, msg.Username+msg.Text)
- if b.GetString("MessageFormat") == "HTML" {
+ if b.GetString("MessageFormat") == HTMLFormat {
b.Log.Debug("Using mode HTML")
m.ParseMode = tgbotapi.ModeHTML
}
@@ -111,7 +117,7 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {
b.Log.Debug("Using mode markdown")
m.ParseMode = tgbotapi.ModeMarkdown
}
- if strings.ToLower(b.GetString("MessageFormat")) == "htmlnick" {
+ if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick {
b.Log.Debug("Using mode HTML - nick only")
m.ParseMode = tgbotapi.ModeHTML
}
@@ -187,7 +193,7 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
// if we really didn't find a username, set it to unknown
if rmsg.Username == "" {
- rmsg.Username = "unknown"
+ rmsg.Username = unknownUser
}
// handle any downloads
@@ -209,7 +215,7 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
}
}
if usernameForward == "" {
- usernameForward = "unknown"
+ usernameForward = unknownUser
}
rmsg.Text = "Forwarded from " + usernameForward + ": " + rmsg.Text
}
@@ -229,7 +235,7 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
}
}
if usernameReply == "" {
- usernameReply = "unknown"
+ usernameReply = unknownUser
}
if !b.GetBool("QuoteDisable") {
rmsg.Text = b.handleQuote(rmsg.Text, usernameReply, message.ReplyToMessage.Text)
@@ -401,7 +407,7 @@ func (b *Btelegram) handleUploadFile(msg *config.Message, chatid int64) (string,
func (b *Btelegram) sendMessage(chatid int64, username, text string) (string, error) {
m := tgbotapi.NewMessage(chatid, "")
m.Text = username + text
- if b.GetString("MessageFormat") == "HTML" {
+ if b.GetString("MessageFormat") == HTMLFormat {
b.Log.Debug("Using mode HTML")
m.ParseMode = tgbotapi.ModeHTML
}
@@ -409,7 +415,7 @@ func (b *Btelegram) sendMessage(chatid int64, username, text string) (string, er
b.Log.Debug("Using mode markdown")
m.ParseMode = tgbotapi.ModeMarkdown
}
- if strings.ToLower(b.GetString("MessageFormat")) == "htmlnick" {
+ if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick {
b.Log.Debug("Using mode HTML - nick only")
m.Text = username + html.EscapeString(text)
m.ParseMode = tgbotapi.ModeHTML
diff --git a/gateway/gateway.go b/gateway/gateway.go
index 3a6fa1e0..34cdd7fe 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -70,6 +70,10 @@ var bridgeMap = map[string]bridge.Factory{
"zulip": bzulip.New,
}
+const (
+ apiProtocol = "api"
+)
+
func init() {
flog = log.WithFields(log.Fields{"prefix": "gateway"})
}
@@ -158,7 +162,7 @@ RECONNECT:
func (gw *Gateway) mapChannelConfig(cfg []config.Bridge, direction string) {
for _, br := range cfg {
if isApi(br.Account) {
- br.Channel = "api"
+ br.Channel = apiProtocol
}
// make sure to lowercase irc channels in config #348
if strings.HasPrefix(br.Account, "irc.") {
@@ -191,7 +195,7 @@ func (gw *Gateway) getDestChannel(msg *config.Message, dest bridge.Bridge) []con
var channels []config.ChannelInfo
// for messages received from the api check that the gateway is the specified one
- if msg.Protocol == "api" && gw.Name != msg.Gateway {
+ if msg.Protocol == apiProtocol && gw.Name != msg.Gateway {
return channels
}
@@ -310,7 +314,7 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrM
msg.ID = gw.getDestMsgID(origmsg.ID, dest, channel)
// for api we need originchannel as channel
- if dest.Protocol == "api" {
+ if dest.Protocol == apiProtocol {
msg.Channel = originchannel
}
@@ -459,7 +463,7 @@ func (gw *Gateway) modifyMessage(msg *config.Message) {
}
// messages from api have Gateway specified, don't overwrite
- if msg.Protocol != "api" {
+ if msg.Protocol != apiProtocol {
msg.Gateway = gw.Name
}
}
diff --git a/gateway/gateway_test.go b/gateway/gateway_test.go
index 0a1470ff..e7b77bf4 100644
--- a/gateway/gateway_test.go
+++ b/gateway/gateway_test.go
@@ -152,6 +152,12 @@ enable=true
channel="--333333333333"
`)
+const (
+ ircTestAccount = "irc.zzz"
+ tgTestAccount = "telegram.zzz"
+ slackTestAccount = "slack.zzz"
+)
+
func maketestRouter(input []byte) *Router {
cfg := config.NewConfigFromString(input)
r, err := NewRouter(cfg)
@@ -248,31 +254,31 @@ func TestGetDestChannelAdvanced(t *testing.T) {
switch gw.Name {
case "bridge":
if (msg.Channel == "#main" || msg.Channel == "-1111111111111" || msg.Channel == "irc") &&
- (msg.Account == "irc.zzz" || msg.Account == "telegram.zzz" || msg.Account == "slack.zzz") {
+ (msg.Account == ircTestAccount || msg.Account == tgTestAccount || msg.Account == slackTestAccount) {
hits[gw.Name]++
switch br.Account {
- case "irc.zzz":
+ case ircTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "#main",
- Account: "irc.zzz",
+ Account: ircTestAccount,
Direction: "inout",
ID: "#mainirc.zzz",
SameChannel: map[string]bool{"bridge": false},
Options: config.ChannelOptions{Key: ""},
}}, channels)
- case "telegram.zzz":
+ case tgTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "-1111111111111",
- Account: "telegram.zzz",
+ Account: tgTestAccount,
Direction: "inout",
ID: "-1111111111111telegram.zzz",
SameChannel: map[string]bool{"bridge": false},
Options: config.ChannelOptions{Key: ""},
}}, channels)
- case "slack.zzz":
+ case slackTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "irc",
- Account: "slack.zzz",
+ Account: slackTestAccount,
Direction: "inout",
ID: "ircslack.zzz",
SameChannel: map[string]bool{"bridge": false},
@@ -282,22 +288,22 @@ func TestGetDestChannelAdvanced(t *testing.T) {
}
case "bridge2":
if (msg.Channel == "#main-help" || msg.Channel == "--444444444444") &&
- (msg.Account == "irc.zzz" || msg.Account == "telegram.zzz") {
+ (msg.Account == ircTestAccount || msg.Account == tgTestAccount) {
hits[gw.Name]++
switch br.Account {
- case "irc.zzz":
+ case ircTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "#main-help",
- Account: "irc.zzz",
+ Account: ircTestAccount,
Direction: "inout",
ID: "#main-helpirc.zzz",
SameChannel: map[string]bool{"bridge2": false},
Options: config.ChannelOptions{Key: ""},
}}, channels)
- case "telegram.zzz":
+ case tgTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "--444444444444",
- Account: "telegram.zzz",
+ Account: tgTestAccount,
Direction: "inout",
ID: "--444444444444telegram.zzz",
SameChannel: map[string]bool{"bridge2": false},
@@ -307,22 +313,22 @@ func TestGetDestChannelAdvanced(t *testing.T) {
}
case "bridge3":
if (msg.Channel == "#main-telegram" || msg.Channel == "--333333333333") &&
- (msg.Account == "irc.zzz" || msg.Account == "telegram.zzz") {
+ (msg.Account == ircTestAccount || msg.Account == tgTestAccount) {
hits[gw.Name]++
switch br.Account {
- case "irc.zzz":
+ case ircTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "#main-telegram",
- Account: "irc.zzz",
+ Account: ircTestAccount,
Direction: "inout",
ID: "#main-telegramirc.zzz",
SameChannel: map[string]bool{"bridge3": false},
Options: config.ChannelOptions{Key: ""},
}}, channels)
- case "telegram.zzz":
+ case tgTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "--333333333333",
- Account: "telegram.zzz",
+ Account: tgTestAccount,
Direction: "inout",
ID: "--333333333333telegram.zzz",
SameChannel: map[string]bool{"bridge3": false},
@@ -337,11 +343,11 @@ func TestGetDestChannelAdvanced(t *testing.T) {
}
hits[gw.Name]++
switch br.Account {
- case "irc.zzz":
+ case ircTestAccount:
assert.Len(t, channels, 2)
assert.Contains(t, channels, config.ChannelInfo{
Name: "#main",
- Account: "irc.zzz",
+ Account: ircTestAccount,
Direction: "out",
ID: "#mainirc.zzz",
SameChannel: map[string]bool{"announcements": false},
@@ -349,25 +355,25 @@ func TestGetDestChannelAdvanced(t *testing.T) {
})
assert.Contains(t, channels, config.ChannelInfo{
Name: "#main-help",
- Account: "irc.zzz",
+ Account: ircTestAccount,
Direction: "out",
ID: "#main-helpirc.zzz",
SameChannel: map[string]bool{"announcements": false},
Options: config.ChannelOptions{Key: ""},
})
- case "slack.zzz":
+ case slackTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "general",
- Account: "slack.zzz",
+ Account: slackTestAccount,
Direction: "out",
ID: "generalslack.zzz",
SameChannel: map[string]bool{"announcements": false},
Options: config.ChannelOptions{Key: ""},
}}, channels)
- case "telegram.zzz":
+ case tgTestAccount:
assert.Equal(t, []config.ChannelInfo{{
Name: "--333333333333",
- Account: "telegram.zzz",
+ Account: tgTestAccount,
Direction: "out",
ID: "--333333333333telegram.zzz",
SameChannel: map[string]bool{"announcements": false},