Exemple #1
0
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;
}
Exemple #2
0
$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");