package xmpp import ( "dev.narayana.im/narayana/telegabber/config" "dev.narayana.im/narayana/telegabber/persistence" "dev.narayana.im/narayana/telegabber/telegram" "gosrc.io/xmpp" ) var jid *xmpp.Jid var tgConf config.TelegramConfig var sessions map[string]telegram.Client var db persistence.SessionsYamlDB // NewComponent starts a new component and wraps it in // a stream manager that you should start yourself func NewComponent(conf config.XMPPConfig, tc config.TelegramConfig) (*xmpp.StreamManager, error) { var err error jid, err = xmpp.NewJid(conf.Jid) if err != nil { return nil, err } tgConf = tc sessions = make(map[string]telegram.Client) db, err = persistence.LoadSessions(conf.Db) if err != nil { return nil, err } options := xmpp.ComponentOptions{ Address: conf.Host + ":" + conf.Port, Domain: conf.Jid, Secret: conf.Password, Name: "telegabber", } router := xmpp.NewRouter() router.HandleFunc("iq", HandleIq) router.HandleFunc("presence", HandlePresence) router.HandleFunc("message", HandleMessage) component, err := xmpp.NewComponent(options, router) if err != nil { return nil, err } cm := xmpp.NewStreamManager(component, nil) return cm, nil }