mirror of
https://github.com/cwinfo/matterbridge.git
synced 2024-11-22 07:00:27 +00:00
Do some small cleanups
This commit is contained in:
parent
2110db6f0c
commit
02a5bc096f
@ -208,18 +208,9 @@ func (gw *Gateway) getDestChannel(msg *config.Message, dest bridge.Bridge) []con
|
|||||||
func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrMsgID {
|
func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrMsgID {
|
||||||
var brMsgIDs []*BrMsgID
|
var brMsgIDs []*BrMsgID
|
||||||
|
|
||||||
// TODO refactor
|
// if we have an attached file, or other info
|
||||||
// only slack now, check will have to be done in the different bridges.
|
|
||||||
// we need to check if we can't use fallback or text in other bridges
|
|
||||||
if msg.Extra != nil {
|
if msg.Extra != nil {
|
||||||
if dest.Protocol != "discord" &&
|
if len(msg.Extra[config.EVENT_FILE_FAILURE_SIZE]) == 0 {
|
||||||
dest.Protocol != "slack" &&
|
|
||||||
dest.Protocol != "mattermost" &&
|
|
||||||
dest.Protocol != "telegram" &&
|
|
||||||
dest.Protocol != "matrix" &&
|
|
||||||
dest.Protocol != "xmpp" &&
|
|
||||||
dest.Protocol != "irc" &&
|
|
||||||
len(msg.Extra[config.EVENT_FILE_FAILURE_SIZE]) == 0 {
|
|
||||||
if msg.Text == "" {
|
if msg.Text == "" {
|
||||||
return brMsgIDs
|
return brMsgIDs
|
||||||
}
|
}
|
||||||
@ -233,10 +224,13 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrM
|
|||||||
return brMsgIDs
|
return brMsgIDs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// only relay join/part when configged
|
|
||||||
|
// only relay join/part when configured
|
||||||
if msg.Event == config.EVENT_JOIN_LEAVE && !gw.Bridges[dest.Account].Config.ShowJoinPart {
|
if msg.Event == config.EVENT_JOIN_LEAVE && !gw.Bridges[dest.Account].Config.ShowJoinPart {
|
||||||
return brMsgIDs
|
return brMsgIDs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// only relay topic change when configured
|
||||||
if msg.Event == config.EVENT_TOPIC_CHANGE && !gw.Bridges[dest.Account].Config.ShowTopicChange {
|
if msg.Event == config.EVENT_TOPIC_CHANGE && !gw.Bridges[dest.Account].Config.ShowTopicChange {
|
||||||
return brMsgIDs
|
return brMsgIDs
|
||||||
}
|
}
|
||||||
@ -246,6 +240,7 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrM
|
|||||||
flog.Debug("empty channel")
|
flog.Debug("empty channel")
|
||||||
return brMsgIDs
|
return brMsgIDs
|
||||||
}
|
}
|
||||||
|
|
||||||
originchannel := msg.Channel
|
originchannel := msg.Channel
|
||||||
origmsg := msg
|
origmsg := msg
|
||||||
channels := gw.getDestChannel(&msg, *dest)
|
channels := gw.getDestChannel(&msg, *dest)
|
||||||
@ -297,8 +292,10 @@ func (gw *Gateway) ignoreMessage(msg *config.Message) bool {
|
|||||||
if _, ok := gw.Bridges[msg.Account]; !ok {
|
if _, ok := gw.Bridges[msg.Account]; !ok {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if we need to ignore a empty message
|
||||||
if msg.Text == "" {
|
if msg.Text == "" {
|
||||||
// we have an attachment or actual bytes
|
// we have an attachment or actual bytes, do not ignore
|
||||||
if msg.Extra != nil &&
|
if msg.Extra != nil &&
|
||||||
(msg.Extra["attachments"] != nil ||
|
(msg.Extra["attachments"] != nil ||
|
||||||
len(msg.Extra["file"]) > 0 ||
|
len(msg.Extra["file"]) > 0 ||
|
||||||
@ -308,12 +305,16 @@ func (gw *Gateway) ignoreMessage(msg *config.Message) bool {
|
|||||||
flog.Debugf("ignoring empty message %#v from %s", msg, msg.Account)
|
flog.Debugf("ignoring empty message %#v from %s", msg, msg.Account)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// is the username in IgnoreNicks field
|
||||||
for _, entry := range strings.Fields(gw.Bridges[msg.Account].Config.IgnoreNicks) {
|
for _, entry := range strings.Fields(gw.Bridges[msg.Account].Config.IgnoreNicks) {
|
||||||
if msg.Username == entry {
|
if msg.Username == entry {
|
||||||
flog.Debugf("ignoring %s from %s", msg.Username, msg.Account)
|
flog.Debugf("ignoring %s from %s", msg.Username, msg.Account)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// does the message match regex in IgnoreMessages field
|
||||||
// TODO do not compile regexps everytime
|
// TODO do not compile regexps everytime
|
||||||
for _, entry := range strings.Fields(gw.Bridges[msg.Account].Config.IgnoreMessages) {
|
for _, entry := range strings.Fields(gw.Bridges[msg.Account].Config.IgnoreMessages) {
|
||||||
if entry != "" {
|
if entry != "" {
|
||||||
@ -368,6 +369,7 @@ func (gw *Gateway) modifyUsername(msg config.Message, dest *bridge.Bridge) strin
|
|||||||
}
|
}
|
||||||
nick = strings.Replace(nick, "{NOPINGNICK}", msg.Username[:i]+""+msg.Username[i:], -1)
|
nick = strings.Replace(nick, "{NOPINGNICK}", msg.Username[:i]+""+msg.Username[i:], -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
nick = strings.Replace(nick, "{BRIDGE}", br.Name, -1)
|
nick = strings.Replace(nick, "{BRIDGE}", br.Name, -1)
|
||||||
nick = strings.Replace(nick, "{PROTOCOL}", br.Protocol, -1)
|
nick = strings.Replace(nick, "{PROTOCOL}", br.Protocol, -1)
|
||||||
nick = strings.Replace(nick, "{LABEL}", br.Config.Label, -1)
|
nick = strings.Replace(nick, "{LABEL}", br.Config.Label, -1)
|
||||||
@ -390,6 +392,7 @@ func (gw *Gateway) modifyAvatar(msg config.Message, dest *bridge.Bridge) string
|
|||||||
func (gw *Gateway) modifyMessage(msg *config.Message) {
|
func (gw *Gateway) modifyMessage(msg *config.Message) {
|
||||||
// replace :emoji: to unicode
|
// replace :emoji: to unicode
|
||||||
msg.Text = emojilib.Replace(msg.Text)
|
msg.Text = emojilib.Replace(msg.Text)
|
||||||
|
|
||||||
br := gw.Bridges[msg.Account]
|
br := gw.Bridges[msg.Account]
|
||||||
// loop to replace messages
|
// loop to replace messages
|
||||||
for _, outer := range br.Config.ReplaceMessages {
|
for _, outer := range br.Config.ReplaceMessages {
|
||||||
@ -411,9 +414,12 @@ func (gw *Gateway) modifyMessage(msg *config.Message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (gw *Gateway) handleFiles(msg *config.Message) {
|
func (gw *Gateway) handleFiles(msg *config.Message) {
|
||||||
|
// if we don't have a attachfield or we don't have a mediaserver configured return
|
||||||
if msg.Extra == nil || gw.Config.General.MediaServerUpload == "" {
|
if msg.Extra == nil || gw.Config.General.MediaServerUpload == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if we actually have files, start uploading them to the mediaserver
|
||||||
if len(msg.Extra["file"]) > 0 {
|
if len(msg.Extra["file"]) > 0 {
|
||||||
client := &http.Client{
|
client := &http.Client{
|
||||||
Timeout: time.Second * 5,
|
Timeout: time.Second * 5,
|
||||||
@ -441,16 +447,12 @@ func (gw *Gateway) handleFiles(msg *config.Message) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getChannelID(msg config.Message) string {
|
|
||||||
return msg.Channel + msg.Account
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gw *Gateway) validGatewayDest(msg *config.Message, channel *config.ChannelInfo) bool {
|
func (gw *Gateway) validGatewayDest(msg *config.Message, channel *config.ChannelInfo) bool {
|
||||||
return msg.Gateway == gw.Name
|
return msg.Gateway == gw.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
func isApi(account string) bool {
|
func getChannelID(msg config.Message) string {
|
||||||
return strings.HasPrefix(account, "api.")
|
return msg.Channel + msg.Account
|
||||||
}
|
}
|
||||||
|
|
||||||
//getField returns the Protocol configuration for a specific protocol (field)
|
//getField returns the Protocol configuration for a specific protocol (field)
|
||||||
@ -460,3 +462,7 @@ func getField(cfg *config.Config, field string) map[string]config.Protocol {
|
|||||||
i := f.Interface()
|
i := f.Interface()
|
||||||
return i.(map[string]config.Protocol)
|
return i.(map[string]config.Protocol)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isApi(account string) bool {
|
||||||
|
return strings.HasPrefix(account, "api.")
|
||||||
|
}
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"github.com/42wim/matterbridge/bridge"
|
"github.com/42wim/matterbridge/bridge"
|
||||||
"github.com/42wim/matterbridge/bridge/config"
|
"github.com/42wim/matterbridge/bridge/config"
|
||||||
"github.com/42wim/matterbridge/gateway/samechannel"
|
"github.com/42wim/matterbridge/gateway/samechannel"
|
||||||
//log "github.com/sirupsen/logrus"
|
|
||||||
// "github.com/davecgh/go-spew/spew"
|
// "github.com/davecgh/go-spew/spew"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -17,10 +16,7 @@ type Router struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewRouter(cfg *config.Config) (*Router, error) {
|
func NewRouter(cfg *config.Config) (*Router, error) {
|
||||||
r := &Router{}
|
r := &Router{Message: make(chan config.Message), Gateways: make(map[string]*Gateway), Config: cfg}
|
||||||
r.Config = cfg
|
|
||||||
r.Message = make(chan config.Message)
|
|
||||||
r.Gateways = make(map[string]*Gateway)
|
|
||||||
sgw := samechannelgateway.New(cfg)
|
sgw := samechannelgateway.New(cfg)
|
||||||
gwconfigs := sgw.GetConfig()
|
gwconfigs := sgw.GetConfig()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user