ccchatbot/schalter/main.go

46 lines
820 B
Go

package schalter
import (
"github.com/bdlm/log"
"gosrc.io/xmpp"
"gosrc.io/xmpp/stanza"
"dev.sum7.eu/ccchb/ccchatbot/runtime"
)
type Schalter struct {
URL string `toml:"url"`
Path string `toml:"path"`
Nickname string `toml:"nickname"`
Users []string `toml:"users"`
MUCs []string `toml:"mucs"`
state bool
spaceName string
}
func (s *Schalter) updatePresence(c xmpp.Sender) {
pres := stanza.Presence{
Show: stanza.PresenceShowChat,
Status: s.stateString(),
}
if s.state {
pres.Show = stanza.PresenceShowXA
}
c.Send(pres)
}
func (s *Schalter) Run(c xmpp.Sender) {
if s.Nickname == "" {
s.Nickname = "ccchalter"
}
s.fetchState()
s.updatePresence(c)
for _, m := range s.MUCs {
runtime.JoinMUC(c, m, s.Nickname)
}
log.Infof("started schalter with state: %s", s.stateString())
}