func Test_Yellow_2(t *testing.T) { expected := "polru" actual := Color.Yellow("polru", false) if actual != expected { t.Errorf("Test failed, expected: '%s', got: '%s'", expected, actual) } }
func Test_Yellow_1(t *testing.T) { expected := "\x1b[33mpolru\x1b[39;49m" actual := Color.Yellow("polru", true) if actual != expected { t.Errorf("Test failed, expected: '%s', got: '%s'", expected, actual) } }
func printSummary(user anaconda.User, color bool) { fmt.Print(" ", user.Name) fmt.Printf("(%s)", Color.Blue(user.ScreenName, color)) fmt.Print(" id:", Color.Blue(user.IdStr, color)) fmt.Print("\n") fmt.Print(" ", user.Name) if user.GeoEnabled { fmt.Printf(" has geolocation %s\n", Color.Green("enabled", color)) } else { fmt.Printf(" has geolocation %s\n", Color.Magenta("disabled", color)) } locale := "" location := user.Location if "" != location { locale += "Location: " + Color.Green(location, color) + "; " } timezone := user.TimeZone if "" != timezone { locale += "Timezone: " + Color.Green(timezone, color) + "; " } language := user.Lang if "" != language { locale += "Language: " + Color.Green(language, color) + ";" } if "" != locale { fmt.Printf(" %s\n", locale) } fmt.Printf(" Created: %s\n", Color.Green(user.CreatedAt, color)) fmt.Printf(" URL: %s\n", Color.Yellow(user.URL, color)) fmt.Printf(" Profile Image: %s\n", Color.Yellow(user.ProfileImageURL, color)) fmt.Printf(" %v favorites; %v friends; %v followers;\n", user.FriendsCount, user.FavouritesCount, user.FollowersCount) fmt.Printf(" Member of %v public lists\n", user.ListedCount) numberOfTweets := user.StatusesCount fmt.Printf(" Number of Tweets: %v\n", numberOfTweets) if numberOfTweets > 0 { fmt.Printf(" Most Recent Tweet: %s\n", user.Status.Text) } }
func main() { namePtr := flag.String("name", "prvn_30", "target's twitter handle") count := flag.Int("count", 100, "number of tweets to analyze") outputSummary := flag.Bool("summary", true, "summary of the target's account") outputGeolocationDate := flag.Bool("loc", false, "target's locations arranged by date") outputGeolocationFreq := flag.Bool("loc-freq", false, "target's locations arranged by frequency") outputHashtagFreq := flag.Bool("hash-freq", false, "targets's hashtags arranged by frequency") outputHashtagDate := flag.Bool("hash", false, "targets's hashtags arranged by date") outputMediaFreq := flag.Bool("media-freq", false, "targets's media arranged by frequency") outputMediaDate := flag.Bool("media", false, "targets's media arranged by date") outputMentionFreq := flag.Bool("mention-freq", false, "targets's user mentions arranged by frequency") outputMentionDate := flag.Bool("mention", false, "targets's user mentions arranged by date") outputUriFreq := flag.Bool("url-freq", false, "targets's urls arranged by frequency") outputUriDate := flag.Bool("url", false, "targets's urls arranged by date") outputNoColor := flag.Bool("nocolor", false, "plain output") flag.Parse() color := !*outputNoColor anaconda.SetConsumerKey(apiKey) anaconda.SetConsumerSecret(apiSecret) api := anaconda.NewTwitterApi(accessToken, accessSecret) if *outputSummary { user, errGetUser := api.GetUsersShow(*namePtr, nil) if errGetUser != nil { fmt.Println(errGetUser) } else { printSummary(user, color) } } if *outputGeolocationFreq || *outputGeolocationDate || *outputHashtagFreq || *outputHashtagDate || *outputMediaFreq || *outputMediaDate || *outputMentionFreq || *outputMentionDate || *outputUriFreq || *outputUriDate { v := url.Values{} v.Set("screen_name", *namePtr) v.Set("count", strconv.Itoa(*count)) tweetsUnparsed, errTweets := api.GetUserTimeline(v) if nil != errTweets { fmt.Println(errTweets) } else { tweets := anacondaTweetsToTweets(tweetsUnparsed) if *outputGeolocationDate { fmt.Println("\n", Color.Yellow("Date Location", color)) printGeolocationByDate(tweets, color) } if *outputGeolocationFreq { fmt.Println("\n", Color.Yellow("Frequency Location", color)) locations := getGeolocationFreq(tweets) printEntitiesByFrequency(locations, "", color) } if *outputHashtagDate { fmt.Println("\n", Color.Yellow("Date Hashtag", color)) printHashtagsByDate(tweets, color) } if *outputHashtagFreq { fmt.Println("\n", Color.Yellow("Frequency Hashtag", color)) hashtags := getHashtagsFrequency(tweets) printEntitiesByFrequency(hashtags, "#", color) } if *outputMediaDate { fmt.Println("\n", Color.Yellow("Date Media", color)) printMediaByDate(tweets, color) } if *outputMediaFreq { fmt.Println("\n", Color.Yellow("Frequency Media", color)) media := getMediaFrequency(tweets) printEntitiesByFrequency(media, "", color) } if *outputMentionDate { fmt.Println("\n", Color.Yellow("Date Users Mentioned", color)) printMentionsByDate(tweets, color) } if *outputMentionFreq { fmt.Println("\n", Color.Yellow("Frequency Users Mentioned", color)) mentions := getMentionsFrequency(tweets) printEntitiesByFrequency(mentions, "@", color) } if *outputUriDate { fmt.Println("\n", Color.Yellow("Date URL", color)) printMediaByDate(tweets, color) } if *outputUriFreq { fmt.Println("\n", Color.Yellow("Frequency URL", color)) uri := getUriFrequency(tweets) printEntitiesByFrequency(uri, "", color) } } } }