package main
import (
"strings"
"time"
"fmt"
log "github.com/sirupsen/logrus"
"git.deuxfleurs.fr/Deuxfleurs/easybridge/connector"
"git.deuxfleurs.fr/Deuxfleurs/easybridge/connector/irc"
"git.deuxfleurs.fr/Deuxfleurs/easybridge/connector/xmpp"
)
type TmpHandler struct{
exit chan bool
}
func (h *TmpHandler) Joined(roomId connector.RoomID) {
fmt.Printf("C Joined: %s\n", roomId)
}
func (h *TmpHandler) Left(roomId connector.RoomID) {
fmt.Printf("C Joined: %s\n", roomId)
}
func (h *TmpHandler) UserInfoUpdated(u connector.UserID, i *connector.UserInfo) {
fmt.Printf("C User info: %s => %#v\n", u, i)
}
func (h *TmpHandler) RoomInfoUpdated(r connector.RoomID, i *connector.RoomInfo) {
fmt.Printf("C Room info: %s => %#v\n", r, i)
}
func (h *TmpHandler) Event(e *connector.Event) {
if e.Type == connector.EVENT_JOIN {
fmt.Printf("C E Join %s %s\n", e.Author, e.Room)
} else if e.Type == connector.EVENT_LEAVE {
fmt.Printf("C E Leave %s %s\n", e.Author, e.Room)
} else if e.Type == connector.EVENT_MESSAGE {
fmt.Printf("C E Message %s %s %s\n", e.Author, e.Room, e.Text)
if strings.Contains(e.Text, "ezbrexit") {
fmt.Printf("we have to exit\n")
h.exit <- true
}
} else if e.Type == connector.EVENT_ACTION {
fmt.Printf("C E Action %s %s %s\n", e.Author, e.Room, e.Text)
}
}
func testIrc() {
irc := &irc.IRC{}
h := TmpHandler{
exit: make(chan bool),
}
irc.SetHandler(&h)
err := irc.Configure(connector.Configuration{
"server": "irc.ulminfo.fr",
"port": "6666",
"ssl": "true",
"nick": "ezbr",
})
if err != nil {
log.Fatalf("Connect: %s", err)
}
err = irc.Join(connector.RoomID("#ezbrtest@irc.ulminfo.fr"))
if err != nil {
log.Fatalf("Join: %s", err)
}
time.Sleep(time.Duration(1)*time.Second)
err = irc.Send(&connector.Event{
Room: connector.RoomID("#ezbrtest@irc.ulminfo.fr"),
Type: connector.EVENT_MESSAGE,
Text: "EZBR TEST",
})
if err != nil {
log.Fatalf("Send: %s", err)
}
time.Sleep(time.Duration(1)*time.Second)
err = irc.Send(&connector.Event{
Recipient: connector.UserID("lx@irc.ulminfo.fr"),
Type: connector.EVENT_MESSAGE,
Text: "EZBR TEST direct message lol",
})
if err != nil {
log.Fatalf("Send: %s", err)
}
fmt.Printf("waiting exit signal\n")
<-h.exit
fmt.Printf("got exit signal\n")
irc.Close()
}
func testXmpp() {
xmpp := &xmpp.XMPP{}
h := TmpHandler{
exit: make(chan bool),
}
xmpp.SetHandler(&h)
err := xmpp.Configure(connector.Configuration{
"server": "jabber.fr",
"jid": "ezbr@jabber.fr",
"password": "azerty1234",
})
if err != nil {
log.Fatalf("Connect: %s", err)
}
err = xmpp.Join(connector.RoomID("ezbrtest@muc.linkmauve.fr"))
if err != nil {
log.Fatalf("Join: %s", err)
}
time.Sleep(time.Duration(1)*time.Second)
err = xmpp.Send(&connector.Event{
Room: connector.RoomID("ezbrtest@muc.linkmauve.fr"),
Type: connector.EVENT_MESSAGE,
Text: "EZBR TEST",
})
if err != nil {
log.Fatalf("Send: %s", err)
}
time.Sleep(time.Duration(1)*time.Second)
err = xmpp.Send(&connector.Event{
Recipient: connector.UserID("alexis211@jabber.fr"),
Type: connector.EVENT_MESSAGE,
Text: "EZBR TEST direct message lol",
})
if err != nil {
log.Fatalf("Send: %s", err)
}
fmt.Printf("waiting exit signal\n")
<-h.exit
fmt.Printf("got exit signal\n")
xmpp.Close()
}
func main() {
testXmpp()
}