package main
|
|
|
|
import (
|
|
"bufio"
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/dghubble/go-twitter/twitter"
|
|
"github.com/dghubble/oauth1"
|
|
)
|
|
|
|
type Config struct {
|
|
Consumer_key string `json:"consumer_key"`
|
|
Consumer_secret string `json:"consumer_secret"`
|
|
Access_token_key string `json:"access_token_key"`
|
|
Access_token_secret string `json:"access_token_secret"`
|
|
}
|
|
|
|
func readConfigTokensAndConnect() (client *twitter.Client) {
|
|
var config Config
|
|
file, e := ioutil.ReadFile("twitterConfig.json")
|
|
if e != nil {
|
|
fmt.Println("error:", e)
|
|
}
|
|
content := string(file)
|
|
json.Unmarshal([]byte(content), &config)
|
|
//fmt.Printf("%+v\n", config)
|
|
fmt.Println("twitterConfig.json read comlete")
|
|
|
|
fmt.Print("connecting to twitter api --> ")
|
|
configu := oauth1.NewConfig(config.Consumer_key, config.Consumer_secret)
|
|
token := oauth1.NewToken(config.Access_token_key, config.Access_token_secret)
|
|
httpClient := configu.Client(oauth1.NoContext, token)
|
|
// twitter client
|
|
client = twitter.NewClient(httpClient)
|
|
|
|
fmt.Println("connection successfull")
|
|
|
|
return client
|
|
}
|
|
|
|
func analyzeUsername(client *twitter.Client) {
|
|
newcommand := bufio.NewReader(os.Stdin)
|
|
fmt.Print("enter username: @")
|
|
username, _ := newcommand.ReadString('\n')
|
|
username = strings.TrimSpace(username)
|
|
fmt.Println("user selected: " + username)
|
|
|
|
// Home Timeline
|
|
user, resp, err := client.Users.Show(&twitter.UserShowParams{
|
|
ScreenName: username,
|
|
})
|
|
if err != nil {
|
|
fmt.Println("error:", err)
|
|
}
|
|
fmt.Println("%+v\n", user)
|
|
fmt.Println(resp)
|
|
}
|
|
|
|
func main() {
|
|
fmt.Println("---------------")
|
|
fmt.Println("Tweets and favs delete script. Starting.")
|
|
fmt.Println("Reading twitterConfig.json file")
|
|
client := readConfigTokensAndConnect()
|
|
|
|
fmt.Println("---------------")
|
|
newcommand := bufio.NewReader(os.Stdin)
|
|
fmt.Print("Please select command number:")
|
|
options := `
|
|
1 - Analyze username
|
|
0 - Exit script
|
|
option to select: `
|
|
for {
|
|
fmt.Print(options)
|
|
option, _ := newcommand.ReadString('\n')
|
|
option = strings.TrimSpace(option)
|
|
|
|
switch option {
|
|
case "1":
|
|
fmt.Println("selected 1 - Analyze username")
|
|
analyzeUsername(client)
|
|
break
|
|
case "2":
|
|
fmt.Println("selected 2 - Delete all Favs")
|
|
break
|
|
case "3":
|
|
fmt.Println("selected 3 - Delete all Tweets and Favs")
|
|
break
|
|
case "0":
|
|
fmt.Println("selected 0 - exit script")
|
|
os.Exit(3)
|
|
break
|
|
default:
|
|
fmt.Println("Invalid option")
|
|
break
|
|
}
|
|
}
|
|
}
|