if ( $twits{$username}
->new_direct_message( { user => $target, text => $text } ) )
{
- ¬ice("DM sent to $target");
+ ¬ice("DM sent to $target: $text");
$nicks{$target} = time;
} else {
my $error;
sub load_friends {
my $fh = shift;
+ my $cursor = -1;
my $page = 1;
my %new_friends;
eval {
- while (1)
+ while ($page < 11 and $cursor ne "0")
{
print $fh "type:debug Loading friends page $page...\n"
if ( $fh and &debug );
- my $friends = $twit->friends( { page => $page } );
- last unless $friends;
+ my $friends;
+ if (ref $twit =~ /^Net::Twitter/) {
+ $friends = $twit->friends( { cursor => $cursor } );
+ last unless $friends;
+ $cursor = $friends->{next_cursor};
+ $friends = $friends->{users};
+ } else {
+ $friends = $twit->friends( { page => $page } );
+ last unless $friends;
+ }
$new_friends{ $_->{screen_name} } = time foreach @$friends;
$page++;
- last if @$friends == 0 or $page == 10;
}
};
# make sure the pid is removed from the waitpid list
Irssi::pidwait_remove($child_pid);
+ # and that we don't leave any zombies behind, somehow
+ wait();
+
# save id_map hash
if ( keys %id_map
and my $file =
} else {
print "Giving up on polling $filename" if &debug;
Irssi::pidwait_remove($child_pid);
+ wait();
unlink $filename unless &debug;
return unless Irssi::settings_get_bool("twirssi_notify_timeouts");