arnaucube
arnaucube/argosPublic Self-hosted repository
argos/deleteTweetsAndFavs.go
deleteTweetsAndFavs.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 getAndPrintUserData(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	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	c.Cyan("user created on: " + user.CreatedAt)
31
32	fmt.Print("number of tweets: ")
33	c.Purple(strconv.Itoa(user.StatusesCount))
34	return user
35}
36func deleteTweets(client *twitter.Client, user *twitter.User) {
37	tweets := getTweets(client, user.ScreenName, iterationsCount)
38	for _, v := range tweets {
39		c.Red("deleting: [id: " + v.IDStr + "] " + v.Text)
40		deleted, _, _ := client.Statuses.Destroy(v.ID, nil)
41		c.Green("deleting: [id: " + deleted.IDStr + "] " + deleted.Text)
42	}
43}
44func deleteFavs(client *twitter.Client) {
45
46}
47func deleteTweetsAndFavs(client *twitter.Client) {
48	fmt.Println("Getting user data...")
49	user := getAndPrintUserData(client)
50	fmt.Println("")
51	fmt.Println("Are you sure you want to delete you tweets? [y/n]")
52	newcommand := bufio.NewReader(os.Stdin)
53	answer, _ := newcommand.ReadString('\n')
54	answer = strings.TrimSpace(answer)
55	switch answer {
56	case "y":
57		fmt.Println("ok, you are sure")
58		deleteTweets(client, user)
59		deleteFavs(client)
60		user = getAndPrintUserData(client)
61		break
62	default:
63		fmt.Println("Operation cancelled")
64		break
65	}
66}