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() }