initial test

master
DustyP 5 years ago
parent cab45af1f5
commit 0258e0910f

@ -1,15 +1,25 @@
package main package main
import ( import (
"fmt"
"log" "log"
"os"
"os/signal"
"syscall"
"github.com/dustinpianalto/overpass/internal/twitter" "github.com/dustinpianalto/overpass/internal/twitter"
) )
func main() { func main() {
tClient := twitter.Connect() tClient := twitter.Connect()
_, err := twitter.GetTimeline(tClient, 20) tweetChan, stream := twitter.StartUserScanner(tClient, "3347145623")
if err != nil { for tweet := range tweetChan {
log.Fatal(err) log.Printf("%s\n%s - %s\n%s", tweet.IDStr, tweet.User.Name, tweet.User.IDStr, tweet.FullText)
} }
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)
log.Println(<-ch)
fmt.Println("Stopping Stream...")
stream.Stop()
} }

@ -1,7 +1,7 @@
package twitter package twitter
import ( import (
"fmt" "log"
"github.com/dghubble/go-twitter/twitter" "github.com/dghubble/go-twitter/twitter"
oauth "github.com/dustinpianalto/overpass/internal/oauth2" oauth "github.com/dustinpianalto/overpass/internal/oauth2"
@ -12,14 +12,33 @@ func Connect() *twitter.Client {
return twitter.NewClient(httpClient) return twitter.NewClient(httpClient)
} }
func GetTimeline(client *twitter.Client, count int) ([]twitter.Tweet, error) { func StartUserScanner(client *twitter.Client, userID string) (chan *twitter.Tweet, *twitter.Stream) {
tweets, resp, err := client.Timelines.HomeTimeline(&twitter.HomeTimelineParams{ demux := twitter.NewSwitchDemux()
Count: count, tweetChan := make(chan *twitter.Tweet, 10)
}) demux.Tweet = func(tweet *twitter.Tweet) {
tweetChan <- tweet
}
demux.StatusDeletion = func(deletion *twitter.StatusDeletion) {
log.Printf("%#v\n", deletion)
}
demux.StreamLimit = func(limit *twitter.StreamLimit) {
log.Printf("%#v\n", limit)
}
demux.StreamDisconnect = func(disconnect *twitter.StreamDisconnect) {
log.Printf("%#v\n", disconnect)
}
demux.Event = func(event *twitter.Event) {
log.Printf("%#v\n", event)
}
log.Printf("Starting Stream for %s\n", userID)
filterParams := &twitter.StreamFilterParams{
Follow: []string{userID},
StallWarnings: twitter.Bool(true),
}
stream, err := client.Streams.Filter(filterParams)
if err != nil { if err != nil {
return nil, err log.Println(err)
} }
fmt.Println(resp) go demux.HandleChan(stream.Messages)
fmt.Printf("%#v", tweets) return tweetChan, stream
return tweets, nil
} }

Binary file not shown.
Loading…
Cancel
Save