append a session's history on shell exit and unlimited history list
[lab.git] / Dev / twitter / show_status.pl
index 1c76079..0d2ecac 100755 (executable)
@@ -9,26 +9,37 @@ use utf8;
 # it throws a Net::Twitter::Lite::Error object. 
 # You can catch and process these exceptions by using eval blocks and testing $@
 ## from http://search.cpan.org/perldoc?Net::Twitter::Lite#ERROR_HANDLING
-use Net::Twitter::Lite;
+use Net::Twitter::Lite::WithAPIv1_1;
 use Data::Dumper;
 
-my $bot = Net::Twitter::Lite->new;
+my $bot = Net::Twitter::Lite::WithAPIv1_1->new(
+    legacy_lists_api => 0,
+);
+
+my $dump;
+if (defined $ARGV[0] and $ARGV[0] eq "-d") {
+    $dump = shift @ARGV;
+}
 
 eval {
     foreach my $id (@ARGV) {
+        $id =~ /\/?(\d+)$/;
+        $id = $1;
         my $res = $bot->show_status($id);
         foreach my $line (split /\n/, Dumper $res) {
             if ($line =~ /undef/) { next; }
-            unless ($line =~ / => {/
-                ||  $line =~ / = /
-                ||  $line =~ /status/
-                ||  $line =~ /'text'/
-                ||  $line =~ /created/
-                ||  $line =~ /'id'/
-                ||  $line =~ /name/
-                ||  $line =~ / },/
-                ||  $line =~ / };/
-            ) { next; }
+            if (! $dump) {
+                unless ($line =~ / => {/
+                    ||  $line =~ / = /
+                    ||  $line =~ /status/
+                    ||  $line =~ /'text'/
+                    ||  $line =~ /created/
+                    ||  $line =~ /'id'/
+                    ||  $line =~ /name/
+                    ||  $line =~ / },/
+                    ||  $line =~ / };/
+                ) { next; }
+            }
             print $line, "\n";
         }
     }
@@ -36,7 +47,6 @@ eval {
 if ($@) {
     evalrescue($@);
 }
-print "truncated output done\n";
 
 
 sub evalrescue {
@@ -47,12 +57,18 @@ sub evalrescue {
     if (blessed $@ && $@->isa('Net::Twitter::Lite::Error')) {
         warn $@->error;
         if ($@->twitter_error) {
-            my %twitter_error = %{$@->twitter_error};
-            map {
-                $twitter_error{"$_ => "} = $twitter_error{$_} . "\n";
-                delete $twitter_error{$_}
-            } keys %twitter_error;
-            warn join("", %twitter_error);
+            my $twitter_error = $@->twitter_error;
+            if (defined $twitter_error->{errors}) {
+                foreach my $error (@{$twitter_error->{errors}}) {
+                    warn "code => "   , $error->{code}, "\n";
+                    warn "message => ", $error->{message}, "\n";
+                }
+            }
+            else {
+                # unknown HASH structure
+                use Data::Dumper;
+                warn Dumper $twitter_error;
+            }
         }
     }
     else {