mirror of
https://github.com/arnaucube/argos.git
synced 2026-02-07 19:16:40 +01:00
reorganization and a little bit of code robustness, and implemented TweetRandom functionallity
This commit is contained in:
89
optionFollowRandom.go
Normal file
89
optionFollowRandom.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/dghubble/go-twitter/twitter"
|
||||
)
|
||||
|
||||
func waitTime(minutes int) {
|
||||
//wait to avoid the twitter api limitation
|
||||
timeToSleep := time.Duration(minutes) * time.Minute
|
||||
fmt.Println("waiting " + strconv.Itoa(minutes) + " min to avoid twitter api limitation")
|
||||
fmt.Println(time.Now().Local())
|
||||
time.Sleep(timeToSleep)
|
||||
}
|
||||
func getUserToFollowFromUser(client *twitter.Client, fromUser string) string {
|
||||
friends, httpResp, err := client.Friends.List(&twitter.FriendListParams{
|
||||
ScreenName: fromUser,
|
||||
Count: 1,
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
if httpResp.Status != "200 OK" {
|
||||
c.Red(httpResp.Status)
|
||||
}
|
||||
//fmt.Println(friends.Users)
|
||||
//c.Green("@" + friends.Users[0].ScreenName)
|
||||
return friends.Users[0].ScreenName
|
||||
}
|
||||
|
||||
func followUser(client *twitter.Client, screenName string) {
|
||||
user, _, _ := client.Friendships.Create(&twitter.FriendshipCreateParams{
|
||||
ScreenName: screenName,
|
||||
})
|
||||
fmt.Print("followed: ")
|
||||
c.Green("@" + user.ScreenName + " - " + user.Description)
|
||||
}
|
||||
|
||||
func followRandom(client *twitter.Client, nFollow int, screenName string) {
|
||||
fmt.Println("Starting to follow " + strconv.Itoa(nFollow) + " users")
|
||||
//screenName := firstScreenName
|
||||
for i := 0; i < nFollow; i++ {
|
||||
userToFollow := getUserToFollowFromUser(client, screenName)
|
||||
followUser(client, userToFollow)
|
||||
screenName = userToFollow
|
||||
waitTime(1)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func optionFollowRandom(client *twitter.Client) {
|
||||
c.Red("how many accounts to follow?")
|
||||
newcommand := bufio.NewReader(os.Stdin)
|
||||
answer, _ := newcommand.ReadString('\n')
|
||||
answer = strings.TrimSpace(answer)
|
||||
fmt.Print("Number of users to follow: ")
|
||||
c.Purple(answer)
|
||||
nFollow, err := strconv.Atoi(answer)
|
||||
if err != nil {
|
||||
fmt.Println("incorrect entry, need a positive number")
|
||||
}
|
||||
|
||||
fmt.Print("entry @username of a user, to get a 1st user to follow, that will be a user that the 1st user is following, and the 2nd user will be a user that the 3rd user is following): @")
|
||||
newcommand = bufio.NewReader(os.Stdin)
|
||||
firstScreenName, _ := newcommand.ReadString('\n')
|
||||
firstScreenName = strings.TrimSpace(firstScreenName)
|
||||
fmt.Print("first user to follow: @")
|
||||
c.Purple(firstScreenName)
|
||||
|
||||
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")
|
||||
followRandom(client, nFollow, firstScreenName)
|
||||
break
|
||||
default:
|
||||
fmt.Println("Operation cancelled")
|
||||
break
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user