package main import ( "os" "github.com/eleksir/go-xmpp" "gopkg.in/tomb.v1" ) // Config - это у нас глобальная штука :) . var config myConfig // Списки тех, кого мы не баним никогда. var whiteList myWhiteList // Списки злодеев, которых мы баним. var blackList myBlackList // Ставится в true, если мы получили сигнал на выключение. var shutdown = false // Чтобы не организовывать драку за установку коннекта. var connecting = false // Глобальное состояние соединения. var isConnected = false // Канал, в который приходят уведомления для хэндлера сигналов от траппера сигналов. var sigChan = make(chan os.Signal, 1) // Основной инстанс xmpp-клиента. var talk *xmpp.Client // Опции подключения к xmpp-серверу. var options *xmpp.Options // Список комнат, в которых находится бот. var roomsConnected []string // Время последней активности, нужно для jabber:iq:last. var lastActivity int64 // Время последней активности, нужно для c2s пингов - посылаем пинги, только если давненько ничего не приходило с // сервера. var lastServerActivity int64 // Время последней активности MUC-ов, нужно для пингов - посылаем пинги, только если давненько ничего не приходило из // muc-ов. var lastMucActivity *Collection // Получен ли ответ на запрос disco#info к серверу. var serverCapsQueried bool // sync.Map-ка с капабилити сервера. var serverCapsList *Collection // sync.Map-ка с комнатами и их capability. var mucCapsList *Collection // Время, когда был отправлен c2s ping. var serverPingTimestampTx int64 // Время, когда был принят s2c pong. var serverPingTimestampRx int64 // Объектик для хранения стейта утилизатора горутинок. var gTomb tomb.Tomb // sync.Map-ка со списком участников конференций (в json-формате, согласно структуре xmpp.Presence, "room".[]json). var roomPresences *Collection /* vim: set ft=go noet ai ts=4 sw=4 sts=4: */