147 lines
3.3 KiB
Go
147 lines
3.3 KiB
Go
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()
|
|
}
|