#!/Perl5.8/bin/perl.exe # Title = twemo2 # Para = -h-r # Output use LWP::Simple; use HTML::Entities; use Encode; use Date::Parse; use Date::Format; my $opt = shift(@ARGV); # get options my $screen_name = 'jscripter';# -s[screen_name] option: setup a screen_name my $opth = 0; # -h option: add hyperlink tags my $count = 20; # -c[number] option: a number of viewing statuses my $rev = 0; # -r option: reverse statuses with time-order if($opt =~ /-s([^-]+)/i){ $screen_name = $1;# set a screen name: screen_name after -s } if($opt =~ /-h/i){ $opth = 1;# output hyperlinks of urls: 1 } if($opt =~ /-c(\d{1,3})/i){ $count = $1;# set a count: single digit to triple digits after -c } if($opt =~ /-r/i){ $rev = 1;# reverse mode: 1 } my $user_statuses = get("http://twitter.com/statuses/user_timeline.xml" . "?screen_name=$screen_name&count=$count"); my %statuses = (); while( $user_statuses =~ /.*? (.*?)<\/created_at>.*? (.*?)<\/text>.+? <\/status>/sgix ){ my @lt = localtime(str2time($1)); my $timestr = strftime("%c %z", @lt); ($statuses{$timestr} = $2) =~ s/\n/ /sg; } my @sorted_keys = (); if($rev){ @sorted_keys = reverse sort keys %statuses; }else{ @sorted_keys = sort keys %statuses; } foreach my $created_at (@sorted_keys){ print "${created_at}: "; # -h option if($opth){ $statuses{$created_at} =~ s/(http:\/\/[^\s]+)\s*$/$1<\/a>/g; } my $status = encode('cp932', decode_entities($statuses{$created_at})); print "$status\n"; } __END__