4
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2025-06-26 07:29:24 +00:00

Refactor. Make extra options easier for other protocols

This commit is contained in:
Wim
2017-02-14 23:52:45 +01:00
parent 163f55f9c2
commit dc37232100
2 changed files with 33 additions and 12 deletions

View File

@ -40,10 +40,8 @@ func (gw *Gateway) AddBridge(cfg *config.Bridge) error {
}
log.Infof("Starting bridge: %s ", cfg.Account)
br := bridge.New(gw.Config, cfg, gw.Message)
br.ChannelsOut = gw.ChannelsOut[br.Account]
br.ChannelsIn = gw.ChannelsIn[br.Account]
br.ChannelOptions = gw.ChannelOptions[br.Account]
gw.mapChannelsToBridge(br, gw.ChannelsOut)
gw.mapChannelsToBridge(br, gw.ChannelsIn)
gw.Bridges[cfg.Account] = br
err := br.Connect()
if err != nil {
@ -53,6 +51,16 @@ func (gw *Gateway) AddBridge(cfg *config.Bridge) error {
return nil
}
func (gw *Gateway) mapChannelsToBridge(br *bridge.Bridge, cMap map[string][]string) {
for _, channel := range cMap[br.Account] {
if _, ok := gw.ChannelOptions[br.Account+channel]; ok {
br.ChannelsOut[channel] = gw.ChannelOptions[br.Account+channel]
} else {
br.ChannelsOut[channel] = config.ChannelOptions{}
}
}
}
func (gw *Gateway) Start() error {
gw.mapChannels()
for _, br := range append(gw.MyConfig.In, append(gw.MyConfig.InOut, gw.MyConfig.Out...)...) {