arnaucube
arnaucube/argosPublic Self-hosted repository
unfollowAll (count 200), and followRandom implemented. But twitter api blocks after few petitions
arnaucode idoctnef@openmailbox.org
Wed, 19 Apr 2017 01:32:49 +0200
commit

154968d81d69403431dbd4ba220598ff36314872

parent

a86377a5947fea85fea964fd60d3d9cec904e9c3

3 files changed, 45 insertions(+), 14 deletions(-)

jump to
M deleteTweets.go → deleteTweets.go

@@ -39,7 +39,7 @@ }

func deleteTweets(client *twitter.Client, user *twitter.User) { tweets := getTweets(client, user.ScreenName, iterationsCount) count := 0 - fmt.Println(tweets) + //fmt.Println(tweets) for _, v := range tweets { c.Red("deleting: [id: " + v.IDStr + "] " + v.Text) deleted, _, _ := client.Statuses.Destroy(v.ID, nil)
M followRandom.go → followRandom.go

@@ -14,21 +14,35 @@ /*func getUserByScreenName(ScreenName string) *twitter.User{

}*/ -func getUserFollower(client *twitter.Client) string { - ScreenName := "username" - return ScreenName +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) { - +func followUser(client *twitter.Client, screenName string) { + _, _, _ = client.Friendships.Create(&twitter.FriendshipCreateParams{ + ScreenName: screenName, + }) } -func followRandom(client *twitter.Client, nFollow int, ScreenName string) { +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++ { - ScreenName = getUserFollower(client) - followUser(client, ScreenName) + userToFollow := getUserToFollowFromUser(client, screenName) + followUser(client, userToFollow) + screenName = userToFollow } }

@@ -50,7 +64,7 @@ newcommand = bufio.NewReader(os.Stdin)

firstScreenName, _ := newcommand.ReadString('\n') firstScreenName = strings.TrimSpace(firstScreenName) fmt.Print("first user to follow: @") - c.Purple(answer) + c.Purple(firstScreenName) c.Red("Are you sure? [y/n]") newcommand = bufio.NewReader(os.Stdin)
M unfollowAll.go → unfollowAll.go

@@ -16,12 +16,29 @@ c.Cyan(strconv.Itoa(user.FollowersCount))

fmt.Print("following: ") c.Cyan(strconv.Itoa(user.FriendsCount)) } -func unfollowFollowingUsers(client *twitter.Client, user *twitter.User) { - following, _, _ := client.Friends.List(&twitter.FriendListParams{ +func unfollowUser(client *twitter.Client, screenName string) { + _, httpResp, _ := client.Friendships.Destroy(&twitter.FriendshipDestroyParams{ + ScreenName: screenName, + }) + if httpResp.Status != "200 OK" { + c.Red(httpResp.Status) + } +} +func getFollowingUsers(client *twitter.Client, user *twitter.User) { + following, httpResp, err := client.Friends.List(&twitter.FriendListParams{ ScreenName: user.ScreenName, Count: 200, }) + if err != nil { + fmt.Println(err) + } + if httpResp.Status != "200 OK" { + c.Red(httpResp.Status) + } fmt.Println(following) + for _, k := range following.Users { + unfollowUser(client, k.ScreenName) + } } func optionUnfollowAll(client *twitter.Client) { fmt.Println("Getting user data...")

@@ -35,7 +52,7 @@ answer = strings.TrimSpace(answer)

switch answer { case "y": fmt.Println("ok, you are sure") - unfollowFollowingUsers(client, user) + getFollowingUsers(client, user) break default: fmt.Println("Operation cancelled")