X-Git-Url: https://git.sommitrealweird.co.uk/twirssi-net-twitter-lite.git/blobdiff_plain/e33e788f3297033d43489e8b95b5c9f04df463ea..2931223071f48e8a92e9a2353694ef534a44d295:/twirssi.pl diff --git a/twirssi.pl b/twirssi.pl index 281c124..1f0f895 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: 663 $' =~ /(\d+)/; +my ($REV) = '$Rev: 687 $' =~ /(\d+)/; %IRSSI = ( authors => 'Dan Boger', contact => 'zigdon@gmail.com', @@ -20,7 +21,7 @@ my ($REV) = '$Rev: 663 $' =~ /(\d+)/; . 'Can optionally set your bitlbee /away message to same', license => 'GNU GPL v2', url => 'http://twirssi.com', - changed => '$Date: 2009-07-08 16:25:21 -0700 (Wed, 08 Jul 2009) $', + changed => '$Date: 2009-08-07 01:24:53 -0700 (Fri, 07 Aug 2009) $', ); my $window; @@ -182,7 +183,8 @@ sub cmd_retweet_as { unless ( $twits{$username}->update( { - status => $data, + status => $data, + # in_reply_to_status_id => $id_map{ lc $nick }[$id] } ) @@ -493,7 +495,8 @@ sub cmd_login { $twit = "Net::$service"->new( username => $user, password => $pass, - source => "twirssi" + source => "twirssi", + ssl => Irssi::settings_get_bool("twirssi_avoid_ssl") ? 0 : 1, ); unless ( $twit->verify_credentials() ) { @@ -662,10 +665,17 @@ sub cmd_upgrade { ¬ice("Downloading twirssi from $URL"); LWP::Simple::getstore( $URL, "$loc.upgrade" ); + unless ( -s "$loc.upgrade" ) { + ¬ice("Failed to save $loc.upgrade." + . " Check that /set twirssi_location is set to the correct location." + ); + return; + } + unless ( $data or Irssi::settings_get_bool("twirssi_upgrade_beta") ) { unless ( open( NEW, "$loc.upgrade" ) ) { - ¬ice( -"Failed to read $loc.upgrade. Check that /set twirssi_location is set to the correct location." + ¬ice("Failed to read $loc.upgrade." + . " Check that /set twirssi_location is set to the correct location." ); return; } @@ -758,7 +768,8 @@ 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 +811,7 @@ sub get_updates { print $fh "-- $new_poll"; } close $fh; + rename $filename, "$filename.done"; exit; } else { &ccrap("Failed to fork for updating: $!"); @@ -1020,6 +1032,7 @@ sub monitor_child { # pretend if ( open FILE, $filename ) { + bindmode FILE, ":utf8"; my @lines; my %new_cache; while () { @@ -1167,8 +1180,8 @@ sub monitor_child { $window->printformat( $line->[0], "twirssi_" . $line->[1], - @$line[ 2 .. $#$line-1 ], - &hilight($line->[-1]) + @$line[ 2 .. $#$line - 1 ], + &hilight( $line->[-1] ) ); } } @@ -1429,7 +1442,7 @@ sub shorten { } } - return $data; + return decode "utf8", $data; } sub normalize_username { @@ -1502,6 +1515,7 @@ Irssi::settings_add_bool( "twirssi", "twirssi_notify_timeouts", 1 ); Irssi::settings_add_bool( "twirssi", "twirssi_hilights", 1 ); Irssi::settings_add_bool( "twirssi", "twirssi_always_shorten", 0 ); Irssi::settings_add_bool( "twirssi", "tweet_window_input", 0 ); +Irssi::settings_add_bool( "twirssi", "twirssi_avoid_ssl", 0 ); $last_poll = time - &get_poll_time; $window = Irssi::window_find_name( Irssi::settings_get_str('twitter_window') );