argos/getUserTweets.go
getUserTweets.goRaw
1package main
2
3import (
4 "bufio"
5 "fmt"
6 "os"
7 "strconv"
8 "strings"
9
10 "github.com/dghubble/go-twitter/twitter"
11)
12
13func getTweets(client *twitter.Client, username string, iterations int) []twitter.Tweet {
14 var tweets []twitter.Tweet
15 var maxid int64
16 for i := 0; i < iterations; i++ {
17 tweetsRaw, _, _ := client.Timelines.UserTimeline(&twitter.UserTimelineParams{
18 ScreenName: username,
19 Count: 200,
20 MaxID: maxid,
21 })
22 maxid = tweetsRaw[len(tweetsRaw)-1].ID
23
24 for _, v := range tweetsRaw {
25 tweets = append(tweets, v)
26 }
27 }
28
29 return tweets
30}
31func getUserTweets(client *twitter.Client) {
32 newcommand := bufio.NewReader(os.Stdin)
33 fmt.Print("enter username: @")
34 username, _ := newcommand.ReadString('\n')
35 username = strings.TrimSpace(username)
36 fmt.Println("user selected: " + username)
37
38 fmt.Println("-----------------------")
39
40 //get tweets
41 tweets := getTweets(client, username, iterationsCount)
42
43 //now analyze words and dates
44 fmt.Println("word count")
45 analyzeWords(tweets)
46
47 analyzeDates(tweets)
48 fmt.Println("")
49 fmt.Println("Devices:")
50 sources := analyzeSource(tweets)
51 for k, v := range sources {
52 fmt.Print(k + ": ")
53 fmt.Println(strconv.Itoa(v) + "tw ")
54 }
55
56 fmt.Println(" ")
57 fmt.Print("first tweet analyzed: ")
58 fmt.Println(tweets[len(tweets)-1].CreatedAt)
59 fmt.Print("last tweet analyzed: ")
60 fmt.Println(tweets[0].CreatedAt)
61
62 fmt.Println(" ")
63 fmt.Println("total of " + strconv.Itoa(len(tweets)) + " tweets")
64 fmt.Println(" ")
65 fmt.Println("User @" + username + " analysis finished")
66}