You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
972 B

7 years ago
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "os/signal"
  7. "syscall"
  8. "github.com/dghubble/go-twitter/twitter"
  9. )
  10. func stream(client *twitter.Client) {
  11. // Convenience Demux demultiplexed stream messages
  12. demux := twitter.NewSwitchDemux()
  13. demux.All = func(message interface{}) {
  14. //fmt.Println(message)
  15. }
  16. demux.DM = func(dm *twitter.DirectMessage) {
  17. if dm.SenderScreenName != twitterConfig.ScreenName {
  18. matrixSendMsg(dm.SenderScreenName, dm.Text, dm.CreatedAt)
  19. }
  20. }
  21. demux.Event = func(event *twitter.Event) {
  22. //fmt.Printf("%#v\n", event)
  23. }
  24. fmt.Println("Starting Stream...")
  25. streamUserParams := &twitter.StreamUserParams{}
  26. stream, err := client.Streams.User(streamUserParams)
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30. // Receive messages until stopped or stream quits
  31. demux.HandleChan(stream.Messages)
  32. ch := make(chan os.Signal)
  33. signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
  34. log.Println(<-ch)
  35. fmt.Println("Stopping Stream...")
  36. stream.Stop()
  37. }