You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.0 KiB

package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
"github.com/dghubble/go-twitter/twitter"
)
func postTweet(client *twitter.Client, content string) {
tweet, httpResp, err := client.Statuses.Update(content, nil)
if err != nil {
fmt.Println(err)
}
if httpResp.Status != "200 OK" {
c.Red("error: " + httpResp.Status)
c.Purple("maybe twitter has blocked the account, CTRL+C, wait 15 minutes and try again")
}
fmt.Print("tweet posted: ")
c.Green(tweet.Text)
}
func tweetRandom(client *twitter.Client, nTweets int, screenName string) {
fmt.Println("Starting to publish " + strconv.Itoa(nTweets) + " tweets")
tweets := getTweets(client, screenName, 1)
fmt.Println("the selected account have more than " + strconv.Itoa(len(tweets)))
for i := 0; i < nTweets && i < len(tweets); i++ {
postTweet(client, tweets[i].Text)
waitTime(1)
}
}
func optionTweetRandom(client *twitter.Client) {
c.Red("ATTENTION!")
c.Purple("Publishing tweets from a bot can be banned by twitter!")
c.Cyan("Twitter can consider your account an spam account")
c.Red("Maybe you can publish the random tweets by hand")
c.Red("how many tweets to publish?")
newcommand := bufio.NewReader(os.Stdin)
answer, _ := newcommand.ReadString('\n')
answer = strings.TrimSpace(answer)
fmt.Print("Number of tweets to publish: ")
c.Purple(answer)
nTweets, err := strconv.Atoi(answer)
if err != nil {
fmt.Println("incorrect entry, need a positive number")
}
fmt.Print("entry @username of a twitter account, the content of the tweets will be from the account tweets: @")
newcommand = bufio.NewReader(os.Stdin)
screenName, _ := newcommand.ReadString('\n')
screenName = strings.TrimSpace(screenName)
fmt.Print("user to get tweets content: @")
c.Purple(screenName)
c.Red("Are you sure? [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")
tweetRandom(client, nTweets, screenName)
break
default:
fmt.Println("Operation cancelled")
break
}
}