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