Фоллоуить людей в твиттере автоматом? Легко!

Берём поисковый таймлайн по слову, к примеру, ru_followfriday и френдим всех кого ещё не френдим. В минуту в среднем можно делать 2-3 запроса — поэтому спим с рандомчиком.

#!/usr/bin/perl -w
use strict;
use WWW::Curl::Easy;

my $login = q[skazkin];
my $password = q[];

my $href = qq[http://search.twitter.com/search.atom?lang=en&q=ru_followfriday&rpp=100];
my $result = callTwitter ({href=>$href});
my (@toFollow, $followed);
if ($result->{content}){
while ($result->{content} =~ /@([a-z0-9_]+)/ig){
my $name = $1;
while (1){
$followed = callTwitter ({href=>qq[http://twitter.com/friendships/show.xml?source_screen_name=$name&target_screen_name=$login]});
if ($followed->{content}=~/150 requests/){
print qq[Rate limit exceeded - sleep for one hour.\n];
sleep (3600);
}
last;
}
sleep (25+rand (5));
$followed->{content} =~ s/\n//g;
my $following_status = q[];
$following_status = $1 if $followed->{content} =~ /$login.*?([^<]+)<\/following>/i;
print $name." — «.$following_status.»\n";
push (@toFollow,$name) if $following_status eq q[false];
}
print qq[Ready to follow ].($#toFollow+1).qq[ pupils\n];
foreach (@toFollow){
print qq[Following $_\n];
callTwitter ({href=>qq[http://twitter.com/friendships/create/$_.xml?follow=true],post=>1});
sleep (25+rand (5));
}
}

sub callTwitter {
my $params = shift;
my ($result, $retcode, $curl) = ('false',undef,undef);
$curl = new WWW::Curl::Easy;
$curl->setopt (CURLOPT_URL, $params->{href});
$curl->setopt (CURLOPT_USERPWD, $login.q[:].$password);
$curl->setopt (CURLOPT_POST, 1) if $params->{post};
$curl->setopt (CURLOPT_POSTFIELDS, $params->{post}) if ($params->{post} && $params->{post}=~/=/);
open (my $tmp_for_curl, ">", \$result);
$curl->setopt (CURLOPT_FILE,$tmp_for_curl);
$retcode = $curl->perform;
return {retcode => $retcode, content => $result};
}

Ещё не проверял — пока тестил — выбрал 150 часовых запросов.

Комментировать

Войдите чтобы оставить комментарий.