function copy_followers($connection, $db, $myScreenName, $count, $targetCount, $debug, $cursorTarget, $twitterUser, $date, $email, $debugEmails, $name) { $followersComprehensive = get_followers($connection, $myScreenName, 5000, $debug, true, false); echo '<br>Retrieved your followers. . .'; $friendsComprehensive = im_following($connection, $myScreenName, $count, $debug, 'ids'); echo '<br>Retrieved who you\'re following. . .'; // Following logic $numberOfFollowers = number_of_followers($connection, $myScreenName, true); $numberOfFriends = number_of_followers($connection, $myScreenName, false); echo "<br>{$myScreenName} has {$numberOfFollowers} followers"; echo "<br>{$myScreenName} has {$numberOfFriends} friends"; $numberOfRequests_USER = (int) ($numberOfFollowers + $numberOfFriends) / 5000; //echo "<br>Number of Twitter API requests made on $myScreenName: $numberOfRequests_USER"; $numberOfRequests = (int) 15 - ceil($numberOfRequests_USER); // Request as many followers from the user as possible //echo "<br>Number of requests to make on $twitterUser: $numberOfRequests_target"; $targetFollowersComprehensive = get_followers($connection, $twitterUser, 5000, $debug, false, $numberOfRequests); echo '<br>Targeted followers to follow.'; $targetFollowersNarrowed = array_diff($targetFollowersComprehensive, $followersComprehensive, $friendsComprehensive); if ($debug) { echo '<br>NARROWED TARGET FOLLOWERS:<BR>'; print_r($targetFollowersNarrowed); } echo "<br>Narrowed target followers."; $message = ''; $i = 1; foreach ($targetFollowersNarrowed as $targetFollower) { $isFollowing = in_array($targetFollower, $followersComprehensive); $imFollowing = in_array($targetFollower, $friendsComprehensive); //echo "$targetFollower: ".( $isFollowing ? 'OK' : '!!!' )."<br/>"; if (!$isFollowing && !$imfollowing) { $parameters = array('user_id' => $targetFollower); $userID = $parameters['user_id']; //if($debug){echo "Possible follower detected: ".$userID."<br>";} //Investigate User Before Following $userInvestigationURL = "https://api.twitter.com/1.1/users/lookup.json?user_id={$userID}"; $userInvestigation_json = $connection->get("{$userInvestigationURL}"); $errorObject = $userInvestigation_json->errors; $ErrorCode = $errorObject[0]->code; $ErrorMessage = $errorObject[0]->message; if ($ErrorMessage != '') { if ($debug) { echo "<div class='errorMessage'>Could not research potential user. " . $ErrorMessage . ".</div>"; } break; } $userInvestigation_array = $userInvestigation_json[0]; $requestScreenName = $userInvestigation_array->screen_name; $followRequestSent = $userInvestigation_array->follow_request_sent; $followingUser = $userInvestigation_array->following; $followersCount = $userInvestigation_array->followers_count; $friendsCount = $userInvestigation_array->friends_count; $favoritesCount = $userInvestigation_array->favourites_count; if (!$debug) { $message .= '<small id=' . $userID . ' class="user_info">'; $message .= "Screen Name: {$requestScreenName}<br>"; //echo "UserID: $userID<br>"; $message .= "Follow Request Sent: "; if ($followRequestSent) { $message .= 'Yes'; } else { $message .= 'No'; } $message .= '<br>'; $message .= "Already Following: "; if ($followingUser) { $message .= 'Yes'; } else { $message .= 'No'; } $message .= '<br>'; $message .= "Following more than followed: "; if ($friendsCount > $followersCount) { $message .= 'Yes'; } else { $message .= 'No'; } $message .= '<br>'; $message .= "Active (more than 10 favorites): "; if ($favoritesCount > 10) { $message .= 'Yes'; } else { $message .= 'No'; } $message .= '<br>'; $message .= '</small>'; } // if ((!$followRequestSent) && (!$followingUser) && ($friendsCount > $followersCount) && ($favoritesCount > 10)) { if (!$followRequestSent && !$followingUser && $favoritesCount > 10) { $followUsers_json = $connection->post("https://api.twitter.com/1.1/friendships/create.json?user_id={$userID}&follow=true"); // DB work /* $query = "SELECT userID FROM users WHERE screenName like '$myScreenName';"; $result = $db->query("$query"); $myDBUserID = $result->current_field; $query = "INSERT INTO followers (`userID`, `followerID`) VALUES ('$myDBUserID', '$userID');"; $result = $db->query("$query"); */ if ($debug) { echo '<small>'; print_r($followUsers_json); echo '</small><br>'; } $followingUser = $followUsers_json->following; $errorObject = $followUsers_json->errors; $error = $errorObject[0]->code; if ($followingUser && $error != '160' || $followingUser && $error != '161') { /* echo "<div class='followed'>"; echo "<h4>$i accounts followed.</h4><br>"; echo '</div>'; echo "<br><hr><br><br>"; */ } $i++; } } if ($error == '161') { break; } } $messageDebug = $message; $k = $i - 1; echo "<div class='followed'>"; echo "<strong>{$k} accounts followed.</strong> To follow more, wait 15 minutes past: "; $date = new DateTime(); echo $date->format('h:i:s'); echo '</div>'; echo '<br>'; if ($k < 5) { $date = new DateTime(); $time = $date->format('h:i:s m-d-Y'); // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "To: {$name}" . "\r\n"; $headers .= 'From: Scavenger App <*****@*****.**>' . "\r\n"; // The message $message = "<html><head><title>Scavenger App Mail</title></head><body>"; $message .= "<div>@{$myScreenName} followed only {$k} of @{$twitterUser}'s followers. The app might have reached all of their followers. If you see this same email a couple more times, go to <a href='http://scavenger-app.com/scavenger/set-user.php'>Set User</a> to follow a different user list!</div><br>"; $message .= "<h2>Debugging - {$time}</h2><br>"; $message .= "<small>{$messageDebug}</small>"; $message .= "<br><br>Sincerely,<br>The Scavenger App"; $message .= "</body></html>"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70, "\r\n"); // Send mail($email, "@{$myScreenName} Followed < 5 of @{$twitterUser}'s Users", $message, $headers); } else { $date = new DateTime(); $time = $date->format('h:i:s m-d-Y'); if ($debugEmails) { // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "To: {$name}" . "\r\n"; $headers .= 'From: Scavenger App <*****@*****.**>' . "\r\n"; // The message $message = "<html><head><title>Scavenger App Mail</title></head><body>"; // The message $message .= "<div>@{$myScreenName} followed {$k} people who follow @{$twitterUser} and finished at {$time}.</div>"; $message .= "</body></html>"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70, "\r\n"); // Send mail($email, "@{$myScreenName} Followed @{$twitterUser}'s Users", $message, $headers); } } return $cursorTarget; }
$file = "$dataFileDirectory/user-cursor.php"; $directory = "$path/*"; if (!$frustratingHosting) { chmod ( $file , 0600 ); } $current_date = date(d); if ($current_date = 13) { unlink($file); $myfile = fopen("$file", "w") or die("Unable to open file!"); fclose($myfile); } */ $followingArrayIDs = im_following($connection, $screenName, $count, $debug, 'ids'); $followingArrayScreenNames = im_following($connection, $screenName, $count, $debug, 'screen-names'); var_dump($followingArrayIDs); echo '<br><br><hr><br><br>'; var_dump($followingArrayScreenNames); foreach ($followingArrayIDs as $whitelistedUser) { //userLookup($connection, $debug, $whitelistedUser); whitelist($dataFileDirectory, $whitelistedUser, 'ids'); } foreach ($followingArrayScreenNames as $whitelistedUser) { //userLookup($connection, $debug, $whitelistedUser); whitelist($dataFileDirectory, $whitelistedUser, 'screen-names'); } /* $getRateLimit = "https://api.twitter.com/1.1/application/rate_limit_status.json"; $rateLimit = $connection->get("$getRateLimit");