mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-25 04:02:03 -08:00
parent
a8fe54a78d
commit
d76a04bd0a
@ -92,6 +92,10 @@ func (b *Birc) handleJoinPart(client *girc.Client, event girc.Event) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
b.Log.Debugf("<= Sending JOIN_LEAVE event from %s to gateway", b.Account)
|
b.Log.Debugf("<= Sending JOIN_LEAVE event from %s to gateway", b.Account)
|
||||||
|
// QUIT isn't channel bound, happens for all channels on the bridge
|
||||||
|
if event.Command == "QUIT" {
|
||||||
|
channel = ""
|
||||||
|
}
|
||||||
msg := config.Message{Username: "system", Text: event.Source.Name + " " + strings.ToLower(event.Command) + "s", Channel: channel, Account: b.Account, Event: config.EventJoinLeave}
|
msg := config.Message{Username: "system", Text: event.Source.Name + " " + strings.ToLower(event.Command) + "s", Channel: channel, Account: b.Account, Event: config.EventJoinLeave}
|
||||||
b.Log.Debugf("<= Message is %#v", msg)
|
b.Log.Debugf("<= Message is %#v", msg)
|
||||||
b.Remote <- msg
|
b.Remote <- msg
|
||||||
|
@ -176,7 +176,6 @@ func (gw *Gateway) getDestChannel(msg *config.Message, dest bridge.Bridge) []con
|
|||||||
|
|
||||||
// discord join/leave is for the whole bridge, isn't a per channel join/leave
|
// discord join/leave is for the whole bridge, isn't a per channel join/leave
|
||||||
if msg.Event == config.EventJoinLeave && dest.Protocol == "discord" && msg.Account == dest.Account {
|
if msg.Event == config.EventJoinLeave && dest.Protocol == "discord" && msg.Account == dest.Account {
|
||||||
flog.Error("here")
|
|
||||||
for _, channel := range gw.Channels {
|
for _, channel := range gw.Channels {
|
||||||
if channel.Account == msg.Account && strings.Contains(channel.Direction, "out") &&
|
if channel.Account == msg.Account && strings.Contains(channel.Direction, "out") &&
|
||||||
gw.validGatewayDest(msg) {
|
gw.validGatewayDest(msg) {
|
||||||
@ -186,6 +185,18 @@ func (gw *Gateway) getDestChannel(msg *config.Message, dest bridge.Bridge) []con
|
|||||||
return channels
|
return channels
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// irc quit is for the whole bridge, isn't a per channel quit.
|
||||||
|
// channel is empty when we quit
|
||||||
|
if msg.Event == config.EventJoinLeave && getProtocol(msg) == "irc" && msg.Channel == "" {
|
||||||
|
for _, channel := range gw.Channels {
|
||||||
|
if channel.Account == dest.Account && strings.Contains(channel.Direction, "out") &&
|
||||||
|
gw.validGatewayDest(msg) {
|
||||||
|
channels = append(channels, *channel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return channels
|
||||||
|
}
|
||||||
|
|
||||||
// if source channel is in only, do nothing
|
// if source channel is in only, do nothing
|
||||||
for _, channel := range gw.Channels {
|
for _, channel := range gw.Channels {
|
||||||
// lookup the channel from the message
|
// lookup the channel from the message
|
||||||
@ -435,3 +446,8 @@ func (gw *Gateway) ignoreText(text string, input []string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getProtocol(msg *config.Message) string {
|
||||||
|
p := strings.Split(msg.Account, ".")
|
||||||
|
return p[0]
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user