|
|
@ -0,0 +1,73 @@ |
|
|
|
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) |
|
|
|
} |
|
|
|
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 |
|
|
|
} |
|
|
|
} |