init commit with sending hello world xmpp message
This commit is contained in:
commit
c868f76681
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
# ---> Go
|
||||
# If you prefer the allow list template instead of the deny list, see community template:
|
||||
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
|
||||
#
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, built with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
# vendor/
|
||||
|
||||
# Go workspace file
|
||||
go.work
|
||||
|
||||
config.ini
|
64
chatbot/chatbot.go
Normal file
64
chatbot/chatbot.go
Normal file
@ -0,0 +1,64 @@
|
||||
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
|
||||
}
|
6
config.ini.example
Normal file
6
config.ini.example
Normal file
@ -0,0 +1,6 @@
|
||||
[credentials]
|
||||
JID = botusername@example.org
|
||||
PASSWORD = bot_password
|
||||
NICK = chatbot
|
||||
ROOM = room_jid@example.org
|
||||
HOST = example.org
|
15
go.mod
Normal file
15
go.mod
Normal file
@ -0,0 +1,15 @@
|
||||
module gitea.dmz.rs/txrpe/event-bot
|
||||
|
||||
go 1.23.1
|
||||
|
||||
require github.com/xmppo/go-xmpp v0.2.6
|
||||
|
||||
require github.com/apognu/gocal v0.9.1
|
||||
|
||||
require gopkg.in/ini.v1 v1.67.0
|
||||
|
||||
require (
|
||||
github.com/ChannelMeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61 // indirect
|
||||
golang.org/x/crypto v0.29.0 // indirect
|
||||
golang.org/x/net v0.31.0 // indirect
|
||||
)
|
Loading…
Reference in New Issue
Block a user