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: nkbot.mcuJid, Type: "groupchat", Text: ans, Stamp: time.Now(), } n, err := nkbot.cl.Send(chat) if err != nil { log.Print(err) } _ = n }