summaryrefslogtreecommitdiffstats
path: root/gateway
diff options
context:
space:
mode:
Diffstat (limited to 'gateway')
-rw-r--r--gateway/bridgemap/bmatrix.go1
-rw-r--r--gateway/gateway.go5
-rw-r--r--gateway/router.go15
3 files changed, 17 insertions, 4 deletions
diff --git a/gateway/bridgemap/bmatrix.go b/gateway/bridgemap/bmatrix.go
index e1d761eb..2b0510bb 100644
--- a/gateway/bridgemap/bmatrix.go
+++ b/gateway/bridgemap/bmatrix.go
@@ -8,4 +8,5 @@ import (
func init() {
FullMap["matrix"] = bmatrix.New
+ UserTypingSupport["matrix"] = struct{}{}
}
diff --git a/gateway/gateway.go b/gateway/gateway.go
index a2d572be..04f0f117 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -323,11 +323,12 @@ func (gw *Gateway) ignoreFilesComment(extra map[string][]interface{}, igMessages
return false
}
-func (gw *Gateway) modifyUsername(msg *config.Message, dest *bridge.Bridge) string {
+func (gw *Gateway) ModifyUsername(msg *config.Message, dest *bridge.Bridge) string {
if dest.GetBool("StripNick") {
re := regexp.MustCompile("[^a-zA-Z0-9]+")
msg.Username = re.ReplaceAllString(msg.Username, "")
}
+
nick := dest.GetString("RemoteNickFormat")
// loop to replace nicks
@@ -462,7 +463,7 @@ func (gw *Gateway) SendMessage(
msg.Channel = channel.Name
msg.Avatar = gw.modifyAvatar(rmsg, dest)
- msg.Username = gw.modifyUsername(rmsg, dest)
+ msg.Username = gw.ModifyUsername(rmsg, dest)
// exclude file delete event as the msg ID here is the native file ID that needs to be deleted
if msg.Event != config.EventFileDelete {
diff --git a/gateway/router.go b/gateway/router.go
index a0d5f402..d7df1225 100644
--- a/gateway/router.go
+++ b/gateway/router.go
@@ -75,7 +75,7 @@ func (r *Router) Start() error {
r.logger.Infof("Starting bridge: %s ", br.Account)
err := br.Connect()
if err != nil {
- e := fmt.Errorf("Bridge %s failed to start: %v", br.Account, err)
+ e := fmt.Errorf("bridge %s failed to initialize: %v", br.Account, err)
if r.disableBridge(br, e) {
continue
}
@@ -83,12 +83,23 @@ func (r *Router) Start() error {
}
err = br.JoinChannels()
if err != nil {
- e := fmt.Errorf("Bridge %s failed to join channel: %v", br.Account, err)
+ e := fmt.Errorf("bridge %s failed to join channel: %v", br.Account, err)
if r.disableBridge(br, e) {
continue
}
return e
}
+
+ if starter, ok := br.Bridger.(bridge.BridgerWithChannelDependency); ok {
+ err = starter.Start()
+ if err != nil {
+ e := fmt.Errorf("bridge %s failed to start: %v", br.Account, err)
+ if r.disableBridge(br, e) {
+ continue
+ }
+ return e
+ }
+ }
}
// remove unused bridges
for _, gw := range r.Gateways {