mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-06-27 04:09:24 +00:00
Add Connect() to Bridger interface
This commit is contained in:
@ -20,38 +20,27 @@ type Birc struct {
|
||||
names map[string][]string
|
||||
ircIgnoreNicks []string
|
||||
*config.Config
|
||||
kind string
|
||||
Remote chan config.Message
|
||||
}
|
||||
|
||||
type FancyLog struct {
|
||||
irc *log.Entry
|
||||
mm *log.Entry
|
||||
xmpp *log.Entry
|
||||
irc *log.Entry
|
||||
}
|
||||
|
||||
var flog FancyLog
|
||||
|
||||
const Legacy = "legacy"
|
||||
|
||||
func init() {
|
||||
flog.irc = log.WithFields(log.Fields{"module": "irc"})
|
||||
flog.mm = log.WithFields(log.Fields{"module": "mattermost"})
|
||||
flog.xmpp = log.WithFields(log.Fields{"module": "xmpp"})
|
||||
}
|
||||
|
||||
func New(config *config.Config, c chan config.Message) *Birc {
|
||||
b := &Birc{}
|
||||
b.Config = config
|
||||
b.kind = "legacy"
|
||||
b.Remote = c
|
||||
b.ircNick = b.Config.IRC.Nick
|
||||
b.ircMap = make(map[string]string)
|
||||
b.names = make(map[string][]string)
|
||||
b.ircIgnoreNicks = strings.Fields(b.Config.IRC.IgnoreNicks)
|
||||
flog.irc.Info("Trying IRC connection")
|
||||
b.i = b.connect()
|
||||
flog.irc.Info("Connection succeeded")
|
||||
return b
|
||||
}
|
||||
|
||||
@ -63,6 +52,27 @@ func (b *Birc) Command(msg *config.Message) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (b *Birc) Connect() error {
|
||||
flog.irc.Info("Trying IRC connection")
|
||||
i := irc.IRC(b.Config.IRC.Nick, b.Config.IRC.Nick)
|
||||
i.UseTLS = b.Config.IRC.UseTLS
|
||||
i.UseSASL = b.Config.IRC.UseSASL
|
||||
i.SASLLogin = b.Config.IRC.NickServNick
|
||||
i.SASLPassword = b.Config.IRC.NickServPassword
|
||||
i.TLSConfig = &tls.Config{InsecureSkipVerify: b.Config.IRC.SkipTLSVerify}
|
||||
if b.Config.IRC.Password != "" {
|
||||
i.Password = b.Config.IRC.Password
|
||||
}
|
||||
i.AddCallback(ircm.RPL_WELCOME, b.handleNewConnection)
|
||||
err := i.Connect(b.Config.IRC.Server)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
flog.irc.Info("Connection succeeded")
|
||||
b.i = i
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Birc) Name() string {
|
||||
return "irc"
|
||||
}
|
||||
@ -80,24 +90,6 @@ func (b *Birc) Send(msg config.Message) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Birc) connect() *irc.Connection {
|
||||
i := irc.IRC(b.Config.IRC.Nick, b.Config.IRC.Nick)
|
||||
i.UseTLS = b.Config.IRC.UseTLS
|
||||
i.UseSASL = b.Config.IRC.UseSASL
|
||||
i.SASLLogin = b.Config.IRC.NickServNick
|
||||
i.SASLPassword = b.Config.IRC.NickServPassword
|
||||
i.TLSConfig = &tls.Config{InsecureSkipVerify: b.Config.IRC.SkipTLSVerify}
|
||||
if b.Config.IRC.Password != "" {
|
||||
i.Password = b.Config.IRC.Password
|
||||
}
|
||||
i.AddCallback(ircm.RPL_WELCOME, b.handleNewConnection)
|
||||
err := i.Connect(b.Config.IRC.Server)
|
||||
if err != nil {
|
||||
flog.irc.Fatal(err)
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
func (b *Birc) endNames(event *irc.Event) {
|
||||
channel := event.Arguments[1]
|
||||
sort.Strings(b.names[channel])
|
||||
|
Reference in New Issue
Block a user