started implementation of functionallity to delete tweets, implemented better colors println

This commit is contained in:
arnaucode
2017-04-18 00:42:20 +02:00
parent ebbbbc8cdc
commit 19b11221bc
4 changed files with 111 additions and 7 deletions

37
color.go Normal file
View File

@@ -0,0 +1,37 @@
package main
import "fmt"
type Color struct{}
var c Color
func (c Color) Cyan(t string) {
fmt.Print("\x1b[36;1m") //cyan
fmt.Println(t)
fmt.Print("\x1b[0m") //defaultColor
}
func (c Color) Red(t string) {
fmt.Print("\x1b[31;1m") //red
fmt.Println(t)
fmt.Print("\x1b[0m") //defaultColor
}
func (c Color) Green(t string) {
fmt.Print("\x1b[32;1m") //green
fmt.Println(t)
fmt.Print("\x1b[0m") //defaultColor
}
func (c Color) Blue(t string) {
fmt.Print("\x1b[34;1m") //blue
fmt.Println(t)
fmt.Print("\x1b[0m") //defaultColor
}
func (c Color) Purple(t string) {
fmt.Print("\x1b[35;1m") //purple
fmt.Println(t)
fmt.Print("\x1b[0m") //defaultColor
}

66
deleteTweetsAndFavs.go Normal file
View File

@@ -0,0 +1,66 @@
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
"github.com/dghubble/go-twitter/twitter"
)
func getAndPrintUserData(client *twitter.Client) *twitter.User {
// Verify Credentials
verifyParams := &twitter.AccountVerifyParams{
SkipStatus: twitter.Bool(true),
IncludeEmail: twitter.Bool(true),
}
user, _, _ := client.Accounts.VerifyCredentials(verifyParams)
fmt.Print("username: ")
c.Cyan(user.Name + " @" + user.ScreenName)
if user.Email != "" {
fmt.Print("Email ")
c.Red(user.Email)
}
if user.Location != "" {
fmt.Print("Location: ")
c.Red(user.Location)
}
c.Cyan("user created on: " + user.CreatedAt)
fmt.Print("number of tweets: ")
c.Purple(strconv.Itoa(user.StatusesCount))
return user
}
func deleteTweets(client *twitter.Client, user *twitter.User) {
tweets := getTweets(client, user.ScreenName, iterationsCount)
for _, v := range tweets {
c.Red("deleting: [id: " + v.IDStr + "] " + v.Text)
deleted, _, _ := client.Statuses.Destroy(v.ID, nil)
c.Green("deleting: [id: " + deleted.IDStr + "] " + deleted.Text)
}
}
func deleteFavs(client *twitter.Client) {
}
func deleteTweetsAndFavs(client *twitter.Client) {
fmt.Println("Getting user data...")
user := getAndPrintUserData(client)
fmt.Println("")
fmt.Println("Are you sure you want to delete you tweets? [y/n]")
newcommand := bufio.NewReader(os.Stdin)
answer, _ := newcommand.ReadString('\n')
answer = strings.TrimSpace(answer)
switch answer {
case "y":
fmt.Println("ok, you are sure")
deleteTweets(client, user)
deleteFavs(client)
user = getAndPrintUserData(client)
break
default:
fmt.Println("Operation cancelled")
break
}
}

View File

@@ -37,8 +37,8 @@ func getUserTweets(client *twitter.Client) {
fmt.Print("enter username: @") fmt.Print("enter username: @")
username, _ := newcommand.ReadString('\n') username, _ := newcommand.ReadString('\n')
username = strings.TrimSpace(username) username = strings.TrimSpace(username)
fmt.Println("user selected: \x1b[36;1m@" + username) fmt.Print("user selected: ")
fmt.Print("\x1b[0m") //defaultColor c.Cyan("@" + username)
fmt.Println("-----------------------") fmt.Println("-----------------------")
//get tweets //get tweets
@@ -77,5 +77,7 @@ func getUserTweets(client *twitter.Client) {
fmt.Println(" ") fmt.Println(" ")
fmt.Println("Total of " + strconv.Itoa(len(tweets)) + " tweets analyzed") fmt.Println("Total of " + strconv.Itoa(len(tweets)) + " tweets analyzed")
fmt.Println(" ") fmt.Println(" ")
fmt.Println("User @" + username + " analysis finished") fmt.Print("User @")
c.Cyan(username)
fmt.Println(" analysis finished")
} }

View File

@@ -27,6 +27,7 @@ func main() {
fmt.Print("Please select command number") fmt.Print("Please select command number")
options := ` options := `
1 - Analyze username 1 - Analyze username
2 - Delete Tweets
0 - Exit script 0 - Exit script
option to select: ` option to select: `
for { for {
@@ -41,10 +42,8 @@ option to select: `
getUserTweets(client) getUserTweets(client)
break break
case "2": case "2":
fmt.Println("selected 2 - Delete all Favs") fmt.Println("selected 2 - Delete Tweets")
break deleteTweetsAndFavs(client)
case "3":
fmt.Println("selected 3 - Delete all Tweets and Favs")
break break
case "0": case "0":
fmt.Println("selected 0 - exit script") fmt.Println("selected 0 - exit script")