argos/getOperations.go
getOperations.goRaw
1package main
2
3import (
4 "fmt"
5 "strconv"
6
7 "github.com/dghubble/go-twitter/twitter"
8)
9
10func getTweets(client *twitter.Client, username string, iterations int) []twitter.Tweet {
11 var tweets []twitter.Tweet
12 var maxid int64
13 for i := 0; i < iterations; i++ {
14 tweetsRaw, _, _ := client.Timelines.UserTimeline(&twitter.UserTimelineParams{
15 ScreenName: username,
16 Count: 200,
17 MaxID: maxid,
18 })
19 //if no tweets, stop getting tweets
20 if len(tweetsRaw) == 0 {
21 break
22 }
23 maxid = tweetsRaw[len(tweetsRaw)-1].ID
24
25 for _, v := range tweetsRaw {
26 tweets = append(tweets, v)
27 }
28 }
29
30 return tweets
31}
32
33func getFavs(client *twitter.Client, username string, iterations int) []twitter.Tweet {
34 var tweets []twitter.Tweet
35 var maxid int64
36 for i := 0; i < iterations; i++ {
37 tweetsRaw, _, _ := client.Favorites.List(&twitter.FavoriteListParams{
38 ScreenName: username,
39 Count: 200,
40 MaxID: maxid,
41 })
42
43 //if no tweets, stop getting tweets
44 if len(tweetsRaw) == 0 {
45 break
46 }
47 maxid = tweetsRaw[len(tweetsRaw)-1].ID
48
49 for _, v := range tweetsRaw {
50 tweets = append(tweets, v)
51 }
52 }
53
54 return tweets
55}
56
57func getUserData(client *twitter.Client) *twitter.User {
58 // Verify Credentials
59 verifyParams := &twitter.AccountVerifyParams{
60 SkipStatus: twitter.Bool(true),
61 IncludeEmail: twitter.Bool(true),
62 }
63 user, _, _ := client.Accounts.VerifyCredentials(verifyParams)
64 return user
65}
66
67func printUserData(user *twitter.User) {
68 fmt.Print("username: ")
69 c.Cyan(user.Name + " @" + user.ScreenName)
70 if user.Email != "" {
71 fmt.Print("Email ")
72 c.Red(user.Email)
73 }
74 if user.Location != "" {
75 fmt.Print("Location: ")
76 c.Red(user.Location)
77 }
78 fmt.Print("user created on: ")
79 c.Cyan(user.CreatedAt)
80
81 fmt.Print("number of tweets: ")
82 c.Purple(strconv.Itoa(user.StatusesCount))
83
84 fmt.Print("number of favs: ")
85 c.Purple(strconv.Itoa(user.FavouritesCount))
86}
87
88func getRetweets(client *twitter.Client, tweetId int64) []twitter.Tweet {
89 var tweets []twitter.Tweet
90 tweets, _, err := client.Statuses.Retweets(tweetId, &twitter.StatusRetweetsParams{
91 Count: 200,
92 })
93 if err != nil {
94 fmt.Println(err)
95 }
96 return tweets
97}