aboutsummaryrefslogblamecommitdiff
path: root/test/main.go
blob: 60dfe5a1b3c008aec4686112860417989c357812 (plain) (tree)

















































































































































                                                                                 
package main

import (
	"strings"
	"time"
	"fmt"
	"log"

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