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.

71 lines
1.7 KiB

7 years ago
7 years ago
7 years ago
  1. package main
  2. import (
  3. "bufio"
  4. "fmt"
  5. "os"
  6. "strconv"
  7. "strings"
  8. "github.com/dghubble/go-twitter/twitter"
  9. )
  10. func getUserData(client *twitter.Client) *twitter.User {
  11. // Verify Credentials
  12. verifyParams := &twitter.AccountVerifyParams{
  13. SkipStatus: twitter.Bool(true),
  14. IncludeEmail: twitter.Bool(true),
  15. }
  16. user, _, _ := client.Accounts.VerifyCredentials(verifyParams)
  17. return user
  18. }
  19. func printUserData(user *twitter.User) {
  20. fmt.Print("username: ")
  21. c.Cyan(user.Name + " @" + user.ScreenName)
  22. if user.Email != "" {
  23. fmt.Print("Email ")
  24. c.Red(user.Email)
  25. }
  26. if user.Location != "" {
  27. fmt.Print("Location: ")
  28. c.Red(user.Location)
  29. }
  30. fmt.Print("user created on: ")
  31. c.Cyan(user.CreatedAt)
  32. fmt.Print("number of tweets: ")
  33. c.Purple(strconv.Itoa(user.StatusesCount))
  34. }
  35. func deleteTweets(client *twitter.Client, user *twitter.User) {
  36. tweets := getTweets(client, user.ScreenName, iterationsCount)
  37. count := 0
  38. //fmt.Println(tweets)
  39. for _, v := range tweets {
  40. c.Red("deleting: [id: " + v.IDStr + "] " + v.Text)
  41. deleted, _, _ := client.Statuses.Destroy(v.ID, nil)
  42. c.Green("DELETED: [id: " + deleted.IDStr + "] " + deleted.Text)
  43. count++
  44. }
  45. c.Red("Deleted " + strconv.Itoa(count) + " tweets")
  46. }
  47. func optionDeleteTweets(client *twitter.Client) {
  48. fmt.Println("Getting user data...")
  49. user := getUserData(client)
  50. printUserData(user)
  51. fmt.Println("")
  52. c.Red("Are you sure you want to delete you tweets? [y/n]")
  53. newcommand := bufio.NewReader(os.Stdin)
  54. answer, _ := newcommand.ReadString('\n')
  55. answer = strings.TrimSpace(answer)
  56. switch answer {
  57. case "y":
  58. fmt.Println("ok, you are sure")
  59. deleteTweets(client, user)
  60. user = getUserData(client)
  61. printUserData(user)
  62. break
  63. default:
  64. fmt.Println("Operation cancelled")
  65. break
  66. }
  67. }