event-bot/chatbot/chatbot.go

65 lines
1.2 KiB
Go

package chatbot
import (
"log"
"time"
"github.com/xmppo/go-xmpp"
"gopkg.in/ini.v1"
)
type EventBot struct {
cl *xmpp.Client
host string
user string
mcuJid string
nick string
}
func NewEventBot() (*EventBot, error) {
cfg, err := ini.Load("config.ini")
if err != nil {
log.Fatalf("Failed to load INI file: %v", err)
}
host := cfg.Section("credentials").Key("HOST").String()
user := cfg.Section("credentials").Key("JID").String()
passwd := cfg.Section("credentials").Key("PASSWORD").String()
mcuJid := cfg.Section("credentials").Key("ROOM").String()
nick := cfg.Section("credentials").Key("NICK").String()
cl, err := xmpp.NewClientNoTLS(host, user, passwd, false)
if err != nil {
return &EventBot{}, err
}
n, err := cl.JoinMUCNoHistory(mcuJid, nick)
if err != nil {
return &EventBot{}, err
}
_ = n
return &EventBot{cl: cl,
host: host,
user: user,
mcuJid: mcuJid,
nick: nick}, nil
}
func (nkbot *EventBot) SendMessage(ans string) {
chat := xmpp.Chat{
Remote: "dmztest@chat.hookipa.net",
Type: "groupchat",
Text: ans,
Stamp: time.Now(),
}
n, err := nkbot.cl.Send(chat)
if err != nil {
log.Print(err)
}
_ = n
}