use vars qw($VERSION %IRSSI);
-$VERSION = "2.0.6";
-my ($REV) = '$Rev: 487 $' =~ /(\d+)/;
+$VERSION = "2.1.1beta";
+my ($REV) = '$Rev: 492 $' =~ /(\d+)/;
%IRSSI = (
authors => 'Dan Boger',
contact => 'zigdon@gmail.com',
. 'Can optionally set your bitlbee /away message to same',
license => 'GNU GPL v2',
url => 'http://twirssi.com',
- changed => '$Date: 2009-02-24 11:27:26 -0800 (Tue, 24 Feb 2009) $',
+ changed => '$Date: 2009-02-25 14:39:58 -0800 (Wed, 25 Feb 2009) $',
);
my $window;
}
%nicks = %friends;
$nicks{$user} = 0;
- &get_updates;
+ return 1;
} else {
¬ice("Login failed");
}
}
my $md5;
- unless ($data) {
+ unless ( $data or Irssi::settings_get_bool("twirssi_upgrade_beta") ) {
eval { use Digest::MD5; };
if ($@) {
}
}
- my $URL = "http://twirssi.com/twirssi.pl";
+ my $URL =
+ Irssi::settings_get_bool("twirssi_upgrade_beta")
+ ? "http://github.com/zigdon/twirssi/raw/master/twirssi.pl"
+ : "http://twirssi.com/twirssi.pl";
¬ice("Downloading twirssi from $URL");
LWP::Simple::getstore( $URL, "$loc.upgrade" );
print scalar localtime, " - checking child log at $filename ($attempt)"
if &debug;
my $new_last_poll;
+
+ # first time we run we don't want to print out *everything*, so we just
+ # pretend
+ my $suppress = 0;
+ $suppress = 1 unless keys %tweet_cache;
+
if ( open FILE, $filename ) {
my @lines;
+ my %new_cache;
while (<FILE>) {
chomp;
last if /^__friends__/;
}
if ( not $meta{type} or $meta{type} ne 'searchid' ) {
- next if exists $meta{id} and exists $tweet_cache{ $meta{id} };
- $tweet_cache{ $meta{id} } = time;
+ if ( exists $meta{id} and exists $new_cache{ $meta{id} } ) {
+ next;
+ }
+
+ $new_cache{ $meta{id} } = time;
+
+ if ( exists $meta{id} and exists $tweet_cache{ $meta{id} } ) {
+ next;
+ }
}
my $account = "";
$meta{type}, $account, $meta{topic},
$meta{nick}, $marker, $_
];
- if ( $meta{id} >
+ if (
+ exists $id_map{__searches}{ $meta{account} }{ $meta{topic} }
+ and $meta{id} >
$id_map{__searches}{ $meta{account} }{ $meta{topic} } )
{
$id_map{__searches}{ $meta{account} }{ $meta{topic} } =
];
} elsif ( $meta{type} eq 'searchid' ) {
print "Search '$meta{topic}' returned id $meta{id}" if &debug;
- if ( $meta{id} >=
+ if (
+ exists $id_map{__searches}{ $meta{account} }{ $meta{topic} }
+ and $meta{id} >=
$id_map{__searches}{ $meta{account} }{ $meta{topic} } )
{
$id_map{__searches}{ $meta{account} }{ $meta{topic} } =
if ($new_last_poll) {
print "new last_poll = $new_last_poll" if &debug;
- for my $line (@lines) {
- $window->printformat(
- $line->[0],
- "twirssi_" . $line->[1],
- @$line[ 2 .. $#$line ]
- );
+ if ($suppress) {
+ print "First call, not printing updates" if &debug;
+ } else {
+ foreach my $line (@lines) {
+ $window->printformat(
+ $line->[0],
+ "twirssi_" . $line->[1],
+ @$line[ 2 .. $#$line ]
+ );
+ }
}
close FILE;
or warn "Failed to remove $filename: $!"
unless &debug;
+ # commit the pending cache lines to the actual cache, now that
+ # we've printed our output
+ %tweet_cache = ( %tweet_cache, %new_cache );
+
# keep enough cached tweets, to make sure we don't show duplicates.
foreach ( keys %tweet_cache ) {
next if $tweet_cache{$_} >= $last_poll - 3600;
".irssi/scripts/twirssi.json" );
Irssi::settings_add_str( "twirssi", "twirssi_nick_color", "%B" );
Irssi::settings_add_str( "twirssi", "twirssi_topic_color", "%r" );
+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 );
Irssi::settings_add_bool( "twirssi", "show_own_tweets", 1 );
print "nicks: ", join ", ", sort keys %nicks;
print "searches: ", Dumper \%{ $id_map{__searches} };
print "last poll: $last_poll";
+ if ( open DUMP, ">/tmp/twirssi.cache.txt" ) {
+ print DUMP Dumper \%tweet_cache;
+ close DUMP;
+ print "cache written out to /tmp/twirssi.cache.txt";
+ }
}
);
Irssi::command_bind(
my $num = keys %{ $id_map{__indexes} };
¬ice( sprintf "Loaded old replies from %d contact%s.",
$num, ( $num == 1 ? "" : "s" ) );
+ &cmd_list_search;
};
} else {
¬ice("Failed to load old replies from $file: $!");
and my $autopass = Irssi::settings_get_str("twitter_passwords") )
{
&cmd_login();
+ &get_updates;
}
} else {