X-Git-Url: https://git.sommitrealweird.co.uk/twirssi-net-twitter-lite.git/blobdiff_plain/20f3d445b86fefb0b81d6ce8a3d04a7fca410488..a17c2c86ade0d01178561a5048bb1861b31842ef:/twirssi.pl?ds=sidebyside diff --git a/twirssi.pl b/twirssi.pl index 6a19972..3496cfc 100644 --- a/twirssi.pl +++ b/twirssi.pl @@ -6,12 +6,13 @@ use HTML::Entities; use File::Temp; use LWP::Simple; use Data::Dumper; +use Encode; $Data::Dumper::Indent = 1; use vars qw($VERSION %IRSSI); $VERSION = "2.2.5beta"; -my ($REV) = '$Rev: 659 $' =~ /(\d+)/; +my ($REV) = '$Rev: 675 $' =~ /(\d+)/; %IRSSI = ( authors => 'Dan Boger', contact => 'zigdon@gmail.com', @@ -20,7 +21,7 @@ my ($REV) = '$Rev: 659 $' =~ /(\d+)/; . 'Can optionally set your bitlbee /away message to same', license => 'GNU GPL v2', url => 'http://twirssi.com', - changed => '$Date: 2009-07-02 12:48:40 -0700 (Thu, 02 Jul 2009) $', + changed => '$Date: 2009-07-22 10:06:58 -0700 (Wed, 22 Jul 2009) $', ); my $window; @@ -758,7 +759,7 @@ sub get_updates { my $pid = fork(); if ($pid) { # parent - Irssi::timeout_add_once( 5000, 'monitor_child', [ $filename, 0 ] ); + Irssi::timeout_add_once( 5000, 'monitor_child', [ "$filename.done", 0 ] ); Irssi::pidwait_add($pid); } elsif ( defined $pid ) { # child close STDIN; @@ -800,6 +801,7 @@ sub get_updates { print $fh "-- $new_poll"; } close $fh; + rename $filename, "$filename.done"; exit; } else { &ccrap("Failed to fork for updating: $!"); @@ -852,7 +854,7 @@ sub do_updates { foreach my $t ( reverse @$tweets ) { my $text = decode_entities( $t->{text} ); - $text = &hilight($text); + $text =~ s/[\n\r]/ /g; my $reply = "tweet"; if ( Irssi::settings_get_bool("show_reply_context") and $t->{in_reply_to_screen_name} ne $username @@ -872,7 +874,7 @@ sub do_updates { if ($context) { my $ctext = decode_entities( $context->{text} ); - $ctext = &hilight($ctext); + $ctext =~ s/[\n\r]/ /g; if ( $context->{truncated} and ref($obj) ne 'Net::Identica' ) { $ctext .= " -- http://twitter.com/$context->{user}{screen_name}" @@ -921,7 +923,7 @@ sub do_updates { if exists $friends{ $t->{user}{screen_name} }; my $text = decode_entities( $t->{text} ); - $text = &hilight($text); + $text =~ s/[\n\r]/ /g; if ( $t->{truncated} ) { $text .= " -- http://twitter.com/$t->{user}{screen_name}" . "/status/$t->{id}"; @@ -952,7 +954,7 @@ sub do_updates { foreach my $t ( reverse @$tweets ) { my $text = decode_entities( $t->{text} ); - $text = &hilight($text); + $text =~ s/[\n\r]/ /g; printf $fh "id:%u account:%s nick:%s type:dm %s\n", $t->{id}, $username, $t->{sender_screen_name}, $text; $new_poll_id = $t->{id} if $new_poll_id < $t->{id}; @@ -992,7 +994,7 @@ sub do_updates { foreach my $t ( reverse @{ $search->{results} } ) { my $text = decode_entities( $t->{text} ); - $text = &hilight($text); + $text =~ s/[\n\r]/ /g; printf $fh "id:%u account:%s nick:%s type:search topic:%s %s\n", $t->{id}, $username, $t->{from_user}, $topic, $text; $new_poll_id = $t->{id} @@ -1167,7 +1169,8 @@ sub monitor_child { $window->printformat( $line->[0], "twirssi_" . $line->[1], - @$line[ 2 .. $#$line ] + @$line[ 2 .. $#$line-1 ], + &hilight($line->[-1]) ); } } @@ -1428,7 +1431,7 @@ sub shorten { } } - return $data; + return decode "utf8", $data; } sub normalize_username {