+func RunXMPPBot(ps *pubsub.PubSub, zmqctx *zmq.Context) {
+ var xmpperr error
+ var bot *r3xmppbot.XmppBot
+ var xmpp_presence_events_chan chan interface{}
+ psevents := ps.Sub("presence","door","buttons","updateinterval")
+ for {
+ bot, xmpp_presence_events_chan, xmpperr = r3xmppbot.NewStartedBot(xmpp_login_.jid, xmpp_login_.pass, xmpp_bot_authstring_, xmpp_state_save_dir_, true)
+ if xmpperr == nil {
+ QueryLatestEventsAndInjectThem(ps, zmqctx)
+ EventToXMPP(psevents, xmpp_presence_events_chan)
+ bot.StopBot()
+ } else {
+ Syslog_.Printf("Error starting XMPP Bot: %s", xmpperr.Error())
+ }
+ time.Sleep(5 * time.Second)
+ }
+}
+