From 154968d81d69403431dbd4ba220598ff36314872 Mon Sep 17 00:00:00 2001 From: arnaucode Date: Wed, 19 Apr 2017 01:32:49 +0200 Subject: [PATCH] unfollowAll (count 200), and followRandom implemented. But twitter api blocks after few petitions --- deleteTweets.go | 2 +- followRandom.go | 34 ++++++++++++++++++++++++---------- unfollowAll.go | 23 ++++++++++++++++++++--- 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/deleteTweets.go b/deleteTweets.go index 72c0b37..53cfed9 100644 --- a/deleteTweets.go +++ b/deleteTweets.go @@ -39,7 +39,7 @@ func printUserData(user *twitter.User) { 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) diff --git a/followRandom.go b/followRandom.go index 531c72e..b11ee31 100644 --- a/followRandom.go +++ b/followRandom.go @@ -14,21 +14,35 @@ import ( }*/ -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 @@ func optionFollowRandom(client *twitter.Client) { 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) diff --git a/unfollowAll.go b/unfollowAll.go index 9c9852c..c1cf8d4 100644 --- a/unfollowAll.go +++ b/unfollowAll.go @@ -16,12 +16,29 @@ func printUserFollowsData(user *twitter.User) { 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 @@ func optionUnfollowAll(client *twitter.Client) { switch answer { case "y": fmt.Println("ok, you are sure") - unfollowFollowingUsers(client, user) + getFollowingUsers(client, user) break default: fmt.Println("Operation cancelled")