arnaucube
arnaucube/argosPublic Self-hosted repository
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}