@ -0,0 +1,17 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"strings" |
||||
|
|
||||
|
"github.com/dghubble/go-twitter/twitter" |
||||
|
) |
||||
|
|
||||
|
func analyzeUserInteractions(tweets []twitter.Tweet, words map[string]int) map[string]int { |
||||
|
var userInteractions = make(map[string]int) |
||||
|
for v, k := range words { |
||||
|
if strings.Contains(v, "@") { |
||||
|
userInteractions[v] = k |
||||
|
} |
||||
|
} |
||||
|
return (userInteractions) |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
{ |
||||
|
"consumer_key": "xxxxxxxxxxxxxxxx", |
||||
|
"consumer_secret": "xxxxxxxxxxxxxxxx", |
||||
|
"access_token_key": "xxxxxxxxxxxxxxxx", |
||||
|
"access_token_secret": "xxxxxxxxxxxxxxxx" |
||||
|
} |
@ -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 |
||||
|
} |
||||
|
} |