package main import ( "fmt" "log" "os" "os/signal" "syscall" "github.com/dghubble/go-twitter/twitter" ) func stream(client *twitter.Client) { // Convenience Demux demultiplexed stream messages demux := twitter.NewSwitchDemux() demux.All = func(message interface{}) { //fmt.Println(message) } demux.DM = func(dm *twitter.DirectMessage) { if dm.SenderScreenName != twitterConfig.ScreenName { matrixSendMsg(dm.SenderScreenName, dm.Text, dm.CreatedAt) } } demux.Event = func(event *twitter.Event) { //fmt.Printf("%#v\n", event) } fmt.Println("Starting Stream...") streamUserParams := &twitter.StreamUserParams{} stream, err := client.Streams.User(streamUserParams) if err != nil { log.Fatal(err) } // Receive messages until stopped or stream quits demux.HandleChan(stream.Messages) ch := make(chan os.Signal) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) log.Println(<-ch) fmt.Println("Stopping Stream...") stream.Stop() }