X-Git-Url: https://git.sommitrealweird.co.uk/twirssi-net-twitter-lite.git/blobdiff_plain/58fa79277e8853a34e2982b994d7fb9b93a265c3..a66a6f421e3cd0f4537f5868b2bc95acd021e8fe:/twirssi.pl diff --git a/twirssi.pl b/twirssi.pl index 2375ba9..0d2a1b2 100644 --- a/twirssi.pl +++ b/twirssi.pl @@ -10,8 +10,8 @@ $Data::Dumper::Indent = 1; use vars qw($VERSION %IRSSI); -$VERSION = "2.2.1beta"; -my ($REV) = '$Rev: 607 $' =~ /(\d+)/; +$VERSION = "2.2.3beta"; +my ($REV) = '$Rev: 616 $' =~ /(\d+)/; %IRSSI = ( authors => 'Dan Boger', contact => 'zigdon@gmail.com', @@ -20,7 +20,7 @@ my ($REV) = '$Rev: 607 $' =~ /(\d+)/; . 'Can optionally set your bitlbee /away message to same', license => 'GNU GPL v2', url => 'http://twirssi.com', - changed => '$Date: 2009-04-09 21:22:55 -0700 (Thu, 09 Apr 2009) $', + changed => '$Date: 2009-04-21 12:20:40 -0700 (Tue, 21 Apr 2009) $', ); my $window; @@ -30,6 +30,7 @@ my $user; my $defservice; my $poll; my $last_poll; +my $last_friends_poll = time; my %nicks; my %friends; my %tweet_cache; @@ -552,12 +553,12 @@ sub cmd_add_search { return; } - if ( exists $id_map{__searches}{$user}{$data} ) { + if ( exists $id_map{__searches}{"$user\@$defservice"}{$data} ) { ¬ice("Already had a subscription for '$data'"); return; } - $id_map{__searches}{$user}{$data} = 1; + $id_map{__searches}{"$user\@$defservice"}{$data} = 1; ¬ice("Added subscription for '$data'"); } @@ -577,12 +578,12 @@ sub cmd_del_search { return; } - unless ( exists $id_map{__searches}{$user}{$data} ) { + unless ( exists $id_map{__searches}{"$user\@$defservice"}{$data} ) { ¬ice("No subscription found for '$data'"); return; } - delete $id_map{__searches}{$user}{$data}; + delete $id_map{__searches}{"$user\@$defservice"}{$data}; ¬ice("Removed subscription for '$data'"); } @@ -770,14 +771,22 @@ sub get_updates { $error++ unless &do_updates( $fh, $_, $twits{$_}, \%context_cache ); } - my ( $added, $removed ) = &load_friends($fh); - if ( $added + $removed ) { - print $fh "type:debug %R***%n Friends list updated: ", - join( ", ", - sprintf( "%d added", $added ), - sprintf( "%d removed", $removed ) ), - "\n"; + if ( + time - $last_friends_poll > + Irssi::settings_get_int('twitter_friends_poll') ) + { + my ( $added, $removed ) = &load_friends($fh); + if ( $added + $removed ) { + print $fh "type:debug %R***%n Friends list updated: ", + join( ", ", + sprintf( "%d added", $added ), + sprintf( "%d removed", $removed ) ), + "\n"; + } + + $last_friends_poll = time; } + print $fh "__friends__\n"; foreach ( sort keys %friends ) { print $fh "$_ $friends{$_}\n"; @@ -810,8 +819,7 @@ sub do_updates { eval { if ( $id_map{__last_id}{$username}{timeline} ) { - $tweets = $obj->friends_timeline( - { since_id => $id_map{__last_id}{$username}{timeline} } ); + $tweets = $obj->friends_timeline( { count => 100 } ); } else { $tweets = $obj->friends_timeline(); } @@ -1311,6 +1319,13 @@ sub sig_complete { keys %{ $id_map{__indexes} }; } + if ( $linestart =~ /^\/twitter_unfriend\s*$/ ) + { # /twitter_unfriend gets a nick + $word =~ s/^@//; + push @$complist, grep /^\Q$word/i, + sort { $nicks{$b} <=> $nicks{$a} } keys %nicks; + } + # /tweet, /tweet_as, /dm, /dm_as - complete @nicks (and nicks as the first # arg to dm) if ( $linestart =~ /^\/(?:tweet|dm)/ ) { @@ -1455,6 +1470,9 @@ Irssi::settings_add_str( "twirssi", "twirssi_location", ".irssi/scripts/twirssi.pl" ); Irssi::settings_add_str( "twirssi", "twirssi_replies_store", ".irssi/scripts/twirssi.json" ); + +Irssi::settings_add_int( "twirssi", "twitter_friends_poll", 600 ); + Irssi::settings_add_bool( "twirssi", "twirssi_upgrade_beta", 0 ); Irssi::settings_add_bool( "twirssi", "tweet_to_away", 0 ); Irssi::settings_add_bool( "twirssi", "show_reply_context", 0 );