arnaucube
arnaucube/argosPublic Self-hosted repository
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}