You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.1 KiB

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