argos/getUser.go
getUser.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 fmt.Println("total of " + strconv.Itoa(len(tweets)) + " tweets")
30 return tweets
31}
32func getUser(client *twitter.Client) {
33 newcommand := bufio.NewReader(os.Stdin)
34 fmt.Print("enter username: @")
35 username, _ := newcommand.ReadString('\n')
36 username = strings.TrimSpace(username)
37 fmt.Println("user selected: " + username)
38
39 fmt.Println("-----------------------")
40
41 //get tweets
42 tweets := getTweets(client, username, 2)
43
44 //now analyze words and dates
45 fmt.Println("word count")
46 analyzeWords(tweets)
47
48 analyzeDates(tweets)
49 fmt.Println("")
50 fmt.Println("Devices:")
51 sources := analyzeSource(tweets)
52 for k, v := range sources {
53 fmt.Print(k + ": ")
54 fmt.Println(strconv.Itoa(v) + "tw ")
55 }
56
57 fmt.Println(" ")
58 fmt.Print("first tweet analyzed: ")
59 fmt.Println(tweets[len(tweets)-1].CreatedAt)
60 fmt.Print("last tweet analyzed: ")
61 fmt.Println(tweets[0].CreatedAt)
62
63 fmt.Println(" ")
64 fmt.Println("User @" + username + " analysis finished")
65}