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